数据字典,及格分数控制

beetlsql3-dev
malx
parent 7cd4985fbc
commit 70cca54e92

@ -1,9 +1,12 @@
package com.ibeetl.admin.core.service;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.ibeetl.admin.core.dao.CoreDictDao;
import com.ibeetl.admin.core.entity.CoreDict;
import com.ibeetl.admin.core.util.BeetlSqlKit;
import com.ibeetl.admin.core.util.enums.DelFlagEnum;
import com.ibeetl.starter.ObjectMapperJsonUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -12,6 +15,7 @@ import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -204,6 +208,25 @@ public class CoreDictService extends CoreBaseService<CoreDict> {
return dictDao.findTypeList(DelFlagEnum.NORMAL.getValue());
}
/**
*
*
* @param type
* @param defaultValue
* @return
*/
public String getOrDefault(String type, String defaultValue) {
List<CoreDict> passRateList = findAllByType(type);
if (ObjectUtil.isNotEmpty(passRateList)) {
String passRateValue = passRateList.stream().sorted(((o1, o2) -> o2.getSort() - o1.getSort())).findFirst().get().getValue();
if (ObjectUtil.isNotEmpty(passRateValue)) {
return passRateValue;
}
}
return defaultValue;
}

@ -11,8 +11,10 @@ import cn.hutool.core.util.ReUtil;
import cn.jlw.util.ToolUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ibeetl.admin.core.entity.CoreDict;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.service.CoreDictService;
import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.util.TimeTool;
import com.ibeetl.admin.core.web.JsonResult;
@ -81,6 +83,7 @@ public class GeneralQuestionLogService extends CoreBaseService<GeneralQuestionLo
@Autowired private GeneralResourcesQuestionSnapshotDao generalResourcesQuestionSnapshotDao;
@Autowired private StudentDao studentDao;
@Autowired private QuestionLogSummaryService questionLogSummaryService;
@Autowired private CoreDictService coreDictService;
@Autowired @Lazy
private GeneralQuestionSettingService generalQuestionSettingService;
@ -770,8 +773,13 @@ public class GeneralQuestionLogService extends CoreBaseService<GeneralQuestionLo
myTotalScore = myTotalScore.add(questionLog.getStudentScore());
idsSet.add(questionLog.getGeneralQuestionLogId().toString());
}
// 是否通过及格率 TODO 及格率要查询数据库 这里先写死
// 及格分值比率
BigDecimal passRateSetting = new BigDecimal("0.6");
// 查询数据字典配置项
String passRateVal = coreDictService.getOrDefault("pass_rate", "0.6");
if (NumberUtil.isNumber(passRateVal)) {
passRateSetting = new BigDecimal(passRateVal);
}
boolean isPass = NumberUtil.isGreaterOrEqual(myTotalScore, NumberUtil.mul(questionTotalScore, passRateSetting));
questionLogSummary.setQuestionSettingId(questionSettingId);

@ -13,6 +13,7 @@ import cn.jlw.util.ToolUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.service.CoreDictService;
import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.admin.core.web.JsonReturnCode;
@ -80,6 +81,7 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
private TeacherOpenCourseQuestionSettingService teacherOpenCourseQuestionSettingService;
@Autowired private TeacherOpenCourseQuestionLogWrongService teacherOpenCourseQuestionLogWrongService;
@Autowired private QuestionLogSummaryService questionLogSummaryService;
@Autowired private CoreDictService coreDictService;
public PageQuery<TeacherOpenCourseQuestionLog>queryByCondition(PageQuery query){
PageQuery ret = teacherOpenCourseQuestionLogDao.queryByCondition(query);
queryListAfter(ret.getList());
@ -598,8 +600,13 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
myTotalScore = myTotalScore.add(questionLog.getStudentScore());
idsSet.add(questionLog.getTeacherOpenCourseQuestionLogId().toString());
}
// 是否通过及格率 TODO 及格率要查询数据库 这里先写死
// 及格分值比率
BigDecimal passRateSetting = new BigDecimal("0.6");
// 查询数据字典配置项
String passRateVal = coreDictService.getOrDefault("pass_rate", "0.6");
if (NumberUtil.isNumber(passRateVal)) {
passRateSetting = new BigDecimal(passRateVal);
}
boolean isPass = NumberUtil.isGreaterOrEqual(myTotalScore, NumberUtil.mul(questionTotalScore, passRateSetting));
questionLogSummary.setQuestionSettingId(questionSettingId);
questionLogSummary.setQuestionSettingName(questionSettingName);

Loading…
Cancel
Save