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 | 39 +++++++++++++++++++-------------------- 1 files changed, 19 insertions(+), 20 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 4997be2..3b8eda9 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java +++ b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java @@ -117,7 +117,7 @@ throw new RuntimeException("鍙兘淇敼杩樻湭寮�濮嬬殑鑰冭瘯"); } BeanUtils.copyProperties(form, entity); - entity.setStatus(ExamStatusEnum.getStatusByTime(form.getStartTime(), form.getEndTime(), null)); + entity.setStatus(ExamStatusEnum.getStatusByTime(form.getStartTime(), form.getEndTime(), new Date())); // 濡傛灉淇敼鎴愬姛鍙戦�乵q娑堟伅 if (baseMapper.updateById(entity) > 0) { this.sendMQ(entity, entity.getUpdateVersion()); @@ -214,6 +214,7 @@ item.setExamPaperId(null); } }); + // return Result.ok().data(page.getRecords()).total(page.getTotal()); } @@ -254,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()); @@ -299,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()); @@ -381,7 +385,6 @@ doQuestionVO.setQuestionType(item.getQuestionType()); //澧炲姞棰樼洰鍒嗘暟 doQuestionVO.setQuestionScore(question.getScore()); - // 棰樼洰鍓湰 QuestionAnswerCopyVO copy = new QuestionAnswerCopyVO(); copy.setId(question.getId()); @@ -514,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)) { @@ -634,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()); + } } } } @@ -954,7 +958,7 @@ /** * 浣滃簾 * - * @param examId + * @param id * @return {@link Result } * @author */ @@ -977,13 +981,8 @@ Date currentTime = new Date(); Date startTime = examInfo.getStartTime(); Date endTime = examInfo.getEndTime(); - if (currentTime.before(startTime)) { - examInfo.setStatus(ExamStatusEnum.NOT_START); - } else if (currentTime.after(startTime) && currentTime.before(endTime)) { - examInfo.setStatus(ExamStatusEnum.ING); - } else { - examInfo.setStatus(ExamStatusEnum.FINISHED); - } + ExamStatusEnum statusByTime = ExamStatusEnum.getStatusByTime(startTime, endTime, currentTime); + examInfo.setStatus(statusByTime); // 淇敼褰撳墠鐨勮�冭瘯鐘舵�� new LambdaUpdateChainWrapper<>(examMapper) .eq(Exam::getId, id) -- Gitblit v1.8.0