|
@@ -9,6 +9,7 @@ import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
|
|
|
import cn.com.qmth.examcloud.core.questions.dao.*;
|
|
|
import cn.com.qmth.examcloud.core.questions.dao.entity.*;
|
|
|
import cn.com.qmth.examcloud.core.questions.service.*;
|
|
|
+import cn.com.qmth.examcloud.core.questions.service.bean.extract.ExtractConfigPaper;
|
|
|
import cn.com.qmth.examcloud.core.questions.service.config.UpYunProperty;
|
|
|
import cn.com.qmth.examcloud.question.commons.core.paper.DefaultPaper;
|
|
|
import cn.com.qmth.examcloud.question.commons.core.paper.DefaultQuestionGroup;
|
|
@@ -70,41 +71,42 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
|
|
|
private UpYunProperty upYunProperty;
|
|
|
|
|
|
@Override
|
|
|
- public Map<String, Object> getDefaultPaper(Long examId, String courseCode, String groupCode) {
|
|
|
- Map<String, Object> map = new HashMap<String, Object>();
|
|
|
+ public ExtractConfigPaper getDefaultPaper(Long examId, String courseCode, String groupCode) {
|
|
|
log.debug("调卷开始...");
|
|
|
- long startTime = System.currentTimeMillis();
|
|
|
+
|
|
|
log.debug("开始根据examId:" + examId + "和courseCode:" + courseCode + "获取调卷规则");
|
|
|
ExtractConfig extractConfig = extractConfigService.findConfig(new ExtractConfig(examId, courseCode));
|
|
|
if (extractConfig == null) {
|
|
|
log.error("该课程调卷规则未制定,请联系学校");
|
|
|
throw new StatusException("Q-020101", "该课程调卷规则未制定,请联系学校");
|
|
|
}
|
|
|
- long configFinishTime = System.currentTimeMillis();
|
|
|
- log.debug("获取调卷规则共耗时:" + (configFinishTime - startTime) + "ms");
|
|
|
+
|
|
|
+
|
|
|
log.debug("根据调卷规则中设置的概率获取类型为" + groupCode + "的试卷");
|
|
|
Map<String, Paper> paperMap = this.getExamPaperByProbability(extractConfig.getExamPaperList());
|
|
|
if (paperMap.isEmpty()) {
|
|
|
log.error("该考试和课程下调卷规则中试卷不存在,请检查调卷规则,调卷程序退出");
|
|
|
throw new StatusException("Q-020109", "该考试和课程下调卷规则中试卷不存在,请重新制定调卷规则");
|
|
|
}
|
|
|
- long paperMapFinishTime = System.currentTimeMillis();
|
|
|
- log.debug("获取类型为" + groupCode + "的试卷共耗时:" + (paperMapFinishTime - configFinishTime) + "ms");
|
|
|
+
|
|
|
Paper basePaper = paperMap.get(groupCode);
|
|
|
if (basePaper == null) {
|
|
|
log.error("该考试和课程下调卷规则中该类型试卷不存在,请检查调卷规则,调卷程序退出");
|
|
|
throw new StatusException("Q-020116", "该考试和课程下调卷规则中试卷不存在,请重新制定调卷规则");
|
|
|
}
|
|
|
- log.debug("将原始试卷:" + basePaper.getId() + "根据规则重新组卷");
|
|
|
- Short upSetQuestionOrder = extractConfig.getScrambling_the_question_order();
|
|
|
- Short upSetOptionOrder = extractConfig.getScrambling_the_option_order();
|
|
|
- map.put("upSetQuestionOrder", upSetQuestionOrder);
|
|
|
- map.put("upSetOptionOrder", upSetOptionOrder);
|
|
|
- map.put("paperId", basePaper.getId());
|
|
|
- //构建试卷结构
|
|
|
- DefaultPaper defaultPaper = buildDefaultByBasePaper(basePaper, String.valueOf(examId), courseCode, groupCode);
|
|
|
- map.put("defaultPaper", defaultPaper);
|
|
|
- return map;
|
|
|
+
|
|
|
+ log.debug("将原始试卷:" + basePaper.getId() + "根据规则构建试卷结构");
|
|
|
+ DefaultPaper defaultPaper = this.buildDefaultByBasePaper(basePaper, String.valueOf(examId), courseCode, groupCode);
|
|
|
+
|
|
|
+ Short questionOrder = extractConfig.getScrambling_the_question_order();
|
|
|
+ Short optionOrder = extractConfig.getScrambling_the_option_order();
|
|
|
+
|
|
|
+ ExtractConfigPaper result = new ExtractConfigPaper();
|
|
|
+ result.setPaperId(basePaper.getOrgId());
|
|
|
+ result.setSortQuestionOrder(questionOrder == 0 ? false : true);
|
|
|
+ result.setSortOptionOrder(optionOrder == 0 ? false : true);
|
|
|
+ result.setDefaultPaper(defaultPaper);
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
/**
|