wangliang 4 жил өмнө
parent
commit
3b561a2d9b

+ 1 - 3
themis-business/src/main/java/com/qmth/themis/business/service/TOeExamRecordService.java

@@ -407,11 +407,9 @@ public interface TOeExamRecordService extends IService<TOeExamRecord> {
     /**
      * 设置断点信息
      *
-     * @param alreadyBreakCount
      * @param recordId
-     * @param examActivityId
      */
-    void setExamBreak(Integer alreadyBreakCount, Long recordId, Long examActivityId);
+    void setExamBreak(Long recordId);
 
     /**
      * 发送断点信息

+ 4 - 4
themis-business/src/main/java/com/qmth/themis/business/service/impl/TOeExamRecordServiceImpl.java

@@ -949,16 +949,16 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
     /**
      * 设置断点信息
      *
-     * @param alreadyBreakCount
      * @param recordId
-     * @param examActivityId
      */
     @Override
     @Transactional
-    public void setExamBreak(Integer alreadyBreakCount, Long recordId, Long examActivityId) {
+    public void setExamBreak(Long recordId) {
         try {
             if (redisUtil.lock(SystemConstant.REDIS_LOCK_EXAM_BREAK_PREFIX + recordId, SystemConstant.REDIS_LOCK_EXAM_BREAK_TIME_OUT)) {
+                Integer alreadyBreakCount = Objects.isNull(ExamRecordCacheUtil.getAlreadyBreakCount(recordId)) ? 0 : ExamRecordCacheUtil.getAlreadyBreakCount(recordId);
                 alreadyBreakCount++;
+                Long examActivityId = ExamRecordCacheUtil.getExamActivityId(recordId);
                 Long breakId = Constants.idGen.next();
                 ExamRecordCacheUtil.setLastBreakId(recordId, breakId, false);
                 ExamRecordCacheUtil.setStatus(recordId, ExamRecordStatusEnum.BREAK_OFF, false);
@@ -1023,7 +1023,7 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
                         examService.finish(examStudentCacheBean.getStudentId(), recordId, FinishTypeEnum.AUTO.name(), durationSeconds);
                     } else {
                         if (setBreak) {
-                            this.setExamBreak(alreadyBreakCount, recordId, examStudentCacheBean.getExamActivityId());
+                            this.setExamBreak(recordId);
                         }
                     }
                 }

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

@@ -250,8 +250,7 @@ public class TEStudentController {
                 if (Objects.equals(status, ExamRecordStatusEnum.ANSWERING)) {
                     //先生成断点,再比较
                     ExamConstant.sendExamStopMsg(recordId, true);
-                    Integer alreadyBreakCount = Objects.isNull(ExamRecordCacheUtil.getAlreadyBreakCount(recordId)) ? 0 : ExamRecordCacheUtil.getAlreadyBreakCount(recordId);
-                    tOeExamRecordService.setExamBreak(alreadyBreakCount, recordId, examActivityId);
+                    tOeExamRecordService.setExamBreak(recordId);
                 }
                 Boolean finished = tOeExamRecordService.sendExamBreakMsg(recordId, false);
                 if (finished) {

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

@@ -243,10 +243,7 @@ public class MqLogicServiceImpl implements MqLogicService {
         ExamRecordStatusEnum status = ExamRecordCacheUtil.getStatus(recordId);
         WebsocketStatusEnum websocketStatusEnum = ExamRecordCacheUtil.getClientWebsocketStatus(recordId);
         if (Objects.nonNull(websocketStatusEnum) && !Objects.equals(websocketStatusEnum, WebsocketStatusEnum.ON_LINE) && (!Objects.equals(status, ExamRecordStatusEnum.FIRST_PREPARE) || !Objects.equals(status, ExamRecordStatusEnum.FINISHED) || !Objects.equals(status, ExamRecordStatusEnum.PERSISTED))) {
-            //先生成断点,再比较
-            Integer alreadyBreakCount = Objects.isNull(ExamRecordCacheUtil.getAlreadyBreakCount(recordId)) ? 0 : ExamRecordCacheUtil.getAlreadyBreakCount(recordId);
-            examRecordService.setExamBreak(alreadyBreakCount, recordId, ExamRecordCacheUtil.getExamActivityId(recordId));
-            examRecordService.sendExamBreakMsg(recordId, false);
+            examRecordService.sendExamBreakMsg(recordId, true);
             //更新客户端摄像头推流状态为stop
             MonitorStatusSourceEnum cameraStatusSourceEnum = ExamRecordCacheUtil.getMonitorStatus(recordId, MonitorVideoSourceEnum.CLIENT_CAMERA);
             if (Objects.nonNull(cameraStatusSourceEnum)) {