From d910a3e7ad5bc3a5e5443f506d05bbb9e83a4c8e Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 31 十月 2024 17:14:33 +0800
Subject: [PATCH] 生成试卷时如果题目列表为空,则不反悔这个题型的数据

---
 src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java |   29 +++++++++++++++++------------
 1 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
index e80229d..d375fe4 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
@@ -255,9 +255,9 @@
                 .one();
         if (Objects.nonNull(hasJoin)) {
             // 鍏佽鎻愪氦鍚庣户缁綔绛�
-//            if(ExamSubmitTempStatusEnum.finish.equals(hasJoin.getStatus())){
-//                throw new RuntimeException("鎮ㄥ凡鎻愪氦璇曞嵎锛岃鍕块噸澶嶄綔绛�");
-//            }
+            if(ExamSubmitTempStatusEnum.finish.equals(hasJoin.getStatus())){
+                throw new RuntimeException("鎮ㄥ凡鎻愪氦璇曞嵎锛岃鍕块噸澶嶄綔绛�");
+            }
             StartExamVO startExamVO = new StartExamVO();
             startExamVO.setExamName(exam.getExamName());
             startExamVO.setId(hasJoin.getExamId());
@@ -300,6 +300,9 @@
                 for (PaperSettingItem settingItem : settingList) {
                     Integer num = settingItem.getNum();
                     Integer difficult = settingItem.getDifficult();
+                    if(difficult == 0){
+                        difficult = null;
+                    }
                     //闇�瑕侀厤缃殑棰樼洰鏁伴噺涓�0鍒欒烦杩�
                     if (num == null || num == 0) continue;
                     List<Question> questions = questionMapper.getRandomQuestion(settingItem.getSubjectId(), paperSetting.getQuestionType(), difficult, settingItem.getNum());
@@ -344,7 +347,9 @@
                     childQuestionList.addAll(childQuestions);
                 }
                 paperFixQuestionVO.setQuestionList(childQuestionList);
-                examData.add(paperFixQuestionVO);
+                if (! CollectionUtils.isEmpty(childQuestionList)) {
+                    examData.add(paperFixQuestionVO);
+                }
             }
         }
         ExamSubmitTemp examSubmitTemp = new ExamSubmitTemp();
@@ -382,7 +387,6 @@
                 doQuestionVO.setQuestionType(item.getQuestionType());
                 //澧炲姞棰樼洰鍒嗘暟
                 doQuestionVO.setQuestionScore(question.getScore());
-
                 // 棰樼洰鍓湰
                 QuestionAnswerCopyVO copy = new QuestionAnswerCopyVO();
                 copy.setId(question.getId());
@@ -515,7 +519,6 @@
         ExamSubmitTemp one = new LambdaQueryChainWrapper<>(examSubmitTempMapper)
                 .eq(ExamSubmitTemp::getExamId, submitData.getId())
                 .eq(ExamSubmitTemp::getUserId, webContext.getCurrentUser().getId())
-                .eq(ExamSubmitTemp::getDeleted, 0)
                 .one();
 
         if (Objects.nonNull(one)) {
@@ -635,12 +638,14 @@
         for (PaperFixQuestionVO titleItem : titleItems) {
             for (DoQuestionVO doQuestionVO : titleItem.getQuestionList()) {
                 Integer questionId = doQuestionVO.getId();
-                Optional<QuestionAnswerCopyVO> first = answerList.stream().filter(answer -> questionId.equals(answer.getId())).findFirst();
-                if (first.isPresent()) {
-                    QuestionAnswerCopyVO answerCopyVO = first.get();
-                    doQuestionVO.setQuestionAnswer(answerCopyVO.getCorrect());
-                    doQuestionVO.setAnalyze(answerCopyVO.getAnalyze());
-                    doQuestionVO.setDifficult(answerCopyVO.getDifficult());
+                if(questionId!=null) {
+                    Optional<QuestionAnswerCopyVO> first = answerList.stream().filter(answer -> questionId.equals(answer.getId())).findFirst();
+                    if (first.isPresent()) {
+                        QuestionAnswerCopyVO answerCopyVO = first.get();
+                        doQuestionVO.setQuestionAnswer(answerCopyVO.getCorrect());
+                        doQuestionVO.setAnalyze(answerCopyVO.getAnalyze());
+                        doQuestionVO.setDifficult(answerCopyVO.getDifficult());
+                    }
                 }
             }
         }

--
Gitblit v1.8.0