Prechádzať zdrojové kódy

重考次数逻辑修改

wangliang 4 rokov pred
rodič
commit
30f0f1f4b8

+ 4 - 0
themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamReexamController.java

@@ -188,6 +188,10 @@ public class TEExamReexamController {
                                     Integer alreadyExamCount = Objects.nonNull(examStudentCacheBean.getAlreadyExamCount()) ? examStudentCacheBean.getAlreadyExamCount() : 0;
                                     if (alreadyExamCount > 0) {
                                         alreadyExamCount = alreadyExamCount - 1;
+                                        ExamCacheBean ec = teExamService.getExamCacheBean(teExamReexam.getExamId());//考试缓存
+                                        if (alreadyExamCount.intValue() >= ec.getExamCount().intValue()) {
+                                            alreadyExamCount = 0;
+                                        }
                                         UpdateWrapper<TEExamStudent> teExamStudentUpdateWrapper = new UpdateWrapper<>();
                                         teExamStudentUpdateWrapper.lambda().set(TEExamStudent::getAlreadyExamCount, alreadyExamCount)
                                                 .eq(TEExamStudent::getId, teExamReexam.getExamStudentId());

+ 1 - 1
themis-business/src/main/java/com/qmth/themis/business/cache/bean/ExamCacheBean.java

@@ -441,7 +441,7 @@ public class ExamCacheBean implements Serializable {
     }
 
     public Integer getExamCount() {
-        return examCount == null ? 0 : examCount;
+        return Objects.isNull(examCount) ? 0 : examCount;
     }
 
     public void setExamCount(Integer examCount) {

+ 0 - 7
themis-exam/src/main/java/com/qmth/themis/exam/api/TEStudentController.java

@@ -241,17 +241,10 @@ public class TEStudentController {
             Long ecExamId = ExamRecordCacheUtil.getExamId(recordId);
             Long examStudentId = ExamRecordCacheUtil.getExamStudentId(recordId);
             Long examActivityId = ExamRecordCacheUtil.getExamActivityId(recordId);
-            Integer durationSeconds = Objects.isNull(ExamRecordCacheUtil.getDurationSeconds(recordId)) ? 0 : ExamRecordCacheUtil.getDurationSeconds(recordId);
             ExamCacheBean ec = teExamService.getExamCacheBean(ecExamId);//考试缓存
-            Integer breakExpireSeconds = Objects.isNull(ec.getBreakExpireSeconds()) ? 0 : ec.getBreakExpireSeconds();
             ExamActivityCacheBean examActivityCacheBean = teExamActivityService.getExamActivityCacheBean(examActivityId);//考试场次缓存
             ExamStudentCacheBean examStudentCacheBean = teExamStudentService.getExamStudentCacheBean(examStudentId);
-
-            //获取断点时间
-            Long lastBreakTime = ExamRecordCacheUtil.getLastBreakTime(recordId);
-            //获取剩余断点次数
             Integer alreadyBreakCount = Objects.isNull(ExamRecordCacheUtil.getAlreadyBreakCount(recordId)) ? 0 : ExamRecordCacheUtil.getAlreadyBreakCount(recordId);
-            Integer leftBreakResumeCount = ec.getBreakResumeCount() - alreadyBreakCount;
             //如果断点时间大于整体断点时间,则强制交卷
             if (Objects.equals(status, ExamRecordStatusEnum.ANSWERING) || Objects.equals(status, ExamRecordStatusEnum.BREAK_OFF) || Objects.equals(status, ExamRecordStatusEnum.RESUME_PREPARE)) {
                 Boolean finished = tOeExamRecordService.sendExamBreakMsg(recordId, false);