wangliang il y a 4 ans
Parent
commit
87b267ef5c

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

@@ -224,7 +224,7 @@ public class TEStudentController {
             //获取断点时间
             Date lastBreakTime = ExamRecordCacheUtil.getLastBreakTime(recordId);
             //获取剩余断点次数
-            Integer alreadyBreakCount = ExamRecordCacheUtil.getAlreadyBreakCount(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)) {

+ 1 - 1
themis-exam/src/main/java/com/qmth/themis/exam/websocket/WebSocketOeServer.java

@@ -184,7 +184,7 @@ public class WebSocketOeServer implements Concurrently {
                 ExamCacheBean ec = teExamService.getExamCacheBean(ecExamId);//考试缓存
 
                 Integer durationSeconds = Objects.isNull(ExamRecordCacheUtil.getDurationSeconds(recordId)) ? 0 : ExamRecordCacheUtil.getDurationSeconds(recordId);
-                Integer alreadyBreakCount = ExamRecordCacheUtil.getAlreadyBreakCount(recordId);
+                Integer alreadyBreakCount = Objects.isNull(ExamRecordCacheUtil.getAlreadyBreakCount(recordId)) ? 0 : ExamRecordCacheUtil.getAlreadyBreakCount(recordId);
                 Integer leftBreakResumeCount = ec.getBreakResumeCount() - alreadyBreakCount;
                 if (leftBreakResumeCount < 0) {
                     teExamService.finish(examStudentCacheBean.getStudentId(), recordId, FinishTypeEnum.AUTO.name(), durationSeconds);

+ 2 - 2
themis-mq/src/main/java/com/qmth/themis/mq/service/impl/MqLogicServiceImpl.java

@@ -232,7 +232,7 @@ public class MqLogicServiceImpl implements MqLogicService {
         Long recordId = Long.parseLong(String.valueOf(tranMap.get("recordId")));
         Date clientLastSyncTime = ExamRecordCacheUtil.getClientLastSyncTime(recordId);
         ExamRecordStatusEnum status = ExamRecordCacheUtil.getStatus(recordId);
-        if (!Objects.equals(status, ExamRecordStatusEnum.BREAK_OFF) || !Objects.equals(status, ExamRecordStatusEnum.FINISHED)|| !Objects.equals(status, ExamRecordStatusEnum.PERSISTED)) {
+        if (!Objects.equals(status, ExamRecordStatusEnum.BREAK_OFF) || !Objects.equals(status, ExamRecordStatusEnum.FINISHED) || !Objects.equals(status, ExamRecordStatusEnum.PERSISTED)) {
             Map<String, Object> objectMap = redisUtil.getHashEntries(RedisKeyHelper.examRecordCacheKey(recordId));
             if (Objects.nonNull(objectMap)) {
                 Integer diff = 0;
@@ -251,7 +251,7 @@ public class MqLogicServiceImpl implements MqLogicService {
                 Long breakId = null;
                 if (!Objects.equals(status, ExamRecordStatusEnum.FIRST_PREPARE)) {
                     //增加断点记录,获取剩余断点次数
-                    Integer alreadyBreakCount = ExamRecordCacheUtil.getAlreadyBreakCount(recordId);
+                    Integer alreadyBreakCount = Objects.isNull(ExamRecordCacheUtil.getAlreadyBreakCount(recordId)) ? 0 : ExamRecordCacheUtil.getAlreadyBreakCount(recordId);
                     Integer leftBreakResumeCount = ec.getBreakResumeCount() - alreadyBreakCount;
                     if (leftBreakResumeCount < 0) {
                         Integer durationSeconds = Objects.isNull(ExamRecordCacheUtil.getDurationSeconds(recordId)) ? 0 : ExamRecordCacheUtil.getDurationSeconds(recordId);