From 95237ea233dcbecd2132cbb94f73c46fcd9c952b Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期四, 31 十月 2024 17:09:24 +0800
Subject: [PATCH] 优化考试

---
 src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java |   30 ++++++++++++++----------------
 1 files changed, 14 insertions(+), 16 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 becc1df..3b8eda9 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
@@ -91,8 +91,6 @@
     @Override
     public Result add(ExamForm form) {
         Exam entity = ExamForm.getEntityByForm(form, null);
-        form.getStartTime().setTime(form.getStartTime().getTime() - 8 * 60 * 60 * 1000);
-        form.getEndTime().setTime(form.getEndTime().getTime() - 8 * 60 * 60 * 1000);
         entity.setStatus(ExamStatusEnum.getStatusByTime(form.getStartTime(), form.getEndTime(), null));
         entity.setTeacherId(webContext.getCurrentUser().getId());
         // 璁剧疆涔愯閿佺増鏈�
@@ -118,9 +116,6 @@
         if (!ExamStatusEnum.NOT_START.equals(entity.getStatus())) {
             throw new RuntimeException("鍙兘淇敼杩樻湭寮�濮嬬殑鑰冭瘯");
         }
-        // 灏嗗紑濮嬭�冭瘯鏃堕棿鎯冲墠鎺�8灏忔椂
-        form.getStartTime().setTime(form.getStartTime().getTime() - 8 * 60 * 60 * 1000);
-        form.getEndTime().setTime(form.getEndTime().getTime() - 8 * 60 * 60 * 1000);
         BeanUtils.copyProperties(form, entity);
         entity.setStatus(ExamStatusEnum.getStatusByTime(form.getStartTime(), form.getEndTime(), new Date()));
         // 濡傛灉淇敼鎴愬姛鍙戦�乵q娑堟伅
@@ -260,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());
@@ -305,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());
@@ -387,7 +385,6 @@
                 doQuestionVO.setQuestionType(item.getQuestionType());
                 //澧炲姞棰樼洰鍒嗘暟
                 doQuestionVO.setQuestionScore(question.getScore());
-
                 // 棰樼洰鍓湰
                 QuestionAnswerCopyVO copy = new QuestionAnswerCopyVO();
                 copy.setId(question.getId());
@@ -520,7 +517,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)) {
@@ -640,12 +636,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