|
@@ -134,18 +134,23 @@ public class ExamSimulateServiceImpl extends ServiceImpl<ExamSimulateMapper, Exa
|
|
|
|
|
|
ExamSimulateQueryBo qk4Bo = new ExamSimulateQueryBo(); //判断题选知识点
|
|
|
qk4Bo.setExamId(exam.getExamId());
|
|
|
- qk4Bo.setKnowledIds(simulateConfig.getCaseQuestion().getKnowledIds());
|
|
|
- qk4Bo.setKnum(simulateConfig.getCaseQuestion().getKnum());
|
|
|
+ qk4Bo.setKnowledIds(simulateConfig.getTrueFalseQuestion().getKnowledIds());
|
|
|
+ qk4Bo.setKnum(simulateConfig.getTrueFalseQuestion().getKnum());
|
|
|
qk4Bo.setType(3);
|
|
|
qk4Bo.setOrderGoodsId(bo.getOrderGoodsId());
|
|
|
qk4Bo.setFromType(bo.getFrom());
|
|
|
List<Long> qk4 = baseMapper.getKnowledQuestionList(qk4Bo);
|
|
|
|
|
|
+ List<Long> w1 = getWrongQuestion(bo.getOrderGoodsId(),bo.getExamId(),bo.getFrom(),simulateConfig.getType(),(simulateConfig.getSingleChoice().getQnum()-qk1.size()),qk1,1);//单选错题
|
|
|
+ List<Long> w2 = getWrongQuestion(bo.getOrderGoodsId(),bo.getExamId(),bo.getFrom(),simulateConfig.getType(),(simulateConfig.getMultipleChoice().getQnum()-qk2.size()),qk2,2);//多选错题
|
|
|
+ List<Long> w3 = getWrongQuestion(bo.getOrderGoodsId(),bo.getExamId(),bo.getFrom(),simulateConfig.getType(),(simulateConfig.getCaseQuestion().getQnum()-qk3.size()),qk3,4);//案例错题
|
|
|
+ List<Long> w4 = getWrongQuestion(bo.getOrderGoodsId(),bo.getExamId(),bo.getFrom(),simulateConfig.getType(),(simulateConfig.getTrueFalseQuestion().getQnum()-qk4.size()),qk4,3);//判断错题
|
|
|
|
|
|
ExamSimulateQueryBo q1Bo = new ExamSimulateQueryBo(); //单选
|
|
|
q1Bo.setExamId(exam.getExamId());
|
|
|
q1Bo.setKnowledQuestionIds(qk1);
|
|
|
- q1Bo.setQnum(simulateConfig.getSingleChoice().getQnum()-qk1.size());
|
|
|
+ q1Bo.setWrongQuestionIds(w1);
|
|
|
+ q1Bo.setQnum(simulateConfig.getSingleChoice().getQnum()-qk1.size()-w1.size());
|
|
|
q1Bo.setRandomNum(simulateConfig.getType());
|
|
|
q1Bo.setType(1);
|
|
|
q1Bo.setOrderGoodsId(bo.getOrderGoodsId());
|
|
@@ -155,7 +160,8 @@ public class ExamSimulateServiceImpl extends ServiceImpl<ExamSimulateMapper, Exa
|
|
|
ExamSimulateQueryBo q2Bo = new ExamSimulateQueryBo(); //多选
|
|
|
q2Bo.setExamId(exam.getExamId());
|
|
|
q2Bo.setKnowledQuestionIds(qk2);
|
|
|
- q2Bo.setQnum(simulateConfig.getMultipleChoice().getQnum()-qk2.size());
|
|
|
+ q2Bo.setWrongQuestionIds(w2);
|
|
|
+ q2Bo.setQnum(simulateConfig.getMultipleChoice().getQnum()-qk2.size()- w2.size());
|
|
|
q2Bo.setRandomNum(simulateConfig.getType());
|
|
|
q2Bo.setType(2);
|
|
|
q2Bo.setOrderGoodsId(bo.getOrderGoodsId());
|
|
@@ -165,7 +171,8 @@ public class ExamSimulateServiceImpl extends ServiceImpl<ExamSimulateMapper, Exa
|
|
|
ExamSimulateQueryBo q3Bo = new ExamSimulateQueryBo(); //案例选
|
|
|
q3Bo.setExamId(exam.getExamId());
|
|
|
q3Bo.setKnowledQuestionIds(qk3);
|
|
|
- q3Bo.setQnum(simulateConfig.getCaseQuestion().getQnum()-qk3.size());
|
|
|
+ q3Bo.setWrongQuestionIds(w3);
|
|
|
+ q3Bo.setQnum(simulateConfig.getCaseQuestion().getQnum()-qk3.size()- w3.size());
|
|
|
q3Bo.setType(4);
|
|
|
q3Bo.setOrderGoodsId(bo.getOrderGoodsId());
|
|
|
q3Bo.setFromType(bo.getFrom());
|
|
@@ -174,15 +181,23 @@ public class ExamSimulateServiceImpl extends ServiceImpl<ExamSimulateMapper, Exa
|
|
|
ExamSimulateQueryBo q4Bo = new ExamSimulateQueryBo(); //判断题
|
|
|
q4Bo.setExamId(exam.getExamId());
|
|
|
q4Bo.setKnowledQuestionIds(qk4);
|
|
|
- q4Bo.setQnum(simulateConfig.getCaseQuestion().getQnum()-qk4.size());
|
|
|
+ q4Bo.setWrongQuestionIds(w4);
|
|
|
+ q4Bo.setQnum(simulateConfig.getTrueFalseQuestion().getQnum()-qk4.size()- w4.size());
|
|
|
q4Bo.setType(3);
|
|
|
q4Bo.setOrderGoodsId(bo.getOrderGoodsId());
|
|
|
q4Bo.setFromType(bo.getFrom());
|
|
|
List<Long> q4 = baseMapper.getQuestionList(q4Bo);
|
|
|
|
|
|
+ qk1.addAll(w1);
|
|
|
qk1.addAll(q1);
|
|
|
+
|
|
|
+ qk2.addAll(w2);
|
|
|
qk2.addAll(q2);
|
|
|
+
|
|
|
+ qk3.addAll(w3);
|
|
|
qk3.addAll(q3);
|
|
|
+
|
|
|
+ qk4.addAll(w4);
|
|
|
qk4.addAll(q4);
|
|
|
List<Long> allQ = new ArrayList<>();
|
|
|
if(simulateConfig.getSingleChoice().getRandomNum()==1){ //题型顺序
|
|
@@ -297,4 +312,23 @@ public class ExamSimulateServiceImpl extends ServiceImpl<ExamSimulateMapper, Exa
|
|
|
public List<QuestionVo> queryBatchList(ExamSimulateQueryBo bo) {
|
|
|
return this.baseMapper.queryBatchList(bo);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ private List<Long> getWrongQuestion(Long orderGoodsId,Long examId,Integer fromType,Integer orderType,Integer maxQnum,List<Long> knowledQuestionIds,Integer qType){
|
|
|
+ if(orderType==2){
|
|
|
+ int num = (int)(maxQnum*Math.random()) + 1;
|
|
|
+ ExamSimulateQueryBo queryBo = new ExamSimulateQueryBo();
|
|
|
+ queryBo.setOrderGoodsId(orderGoodsId);
|
|
|
+ queryBo.setExamId(examId);
|
|
|
+ queryBo.setFromType(fromType);
|
|
|
+ queryBo.setKnowledQuestionIds(knowledQuestionIds);
|
|
|
+ queryBo.setType(qType);
|
|
|
+ queryBo.setQnum(num);
|
|
|
+ queryBo.setRandomNum(2);
|
|
|
+ List<Long> questionlist = baseMapper.getWrongQuestionList(queryBo);
|
|
|
+ return questionlist;
|
|
|
+ }else {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|