Ver Fonte

压测修改

wangliang há 1 ano atrás
pai
commit
454f591522

+ 13 - 13
themis-exam/src/main/java/com/qmth/themis/exam/api/TEFaceController.java

@@ -6,10 +6,7 @@ import com.qmth.themis.business.cache.ExamRecordCacheUtil;
 import com.qmth.themis.business.cache.bean.ExamCacheBean;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dto.MqDto;
-import com.qmth.themis.business.enums.MonitorStatusSourceEnum;
-import com.qmth.themis.business.enums.MonitorVideoSourceEnum;
-import com.qmth.themis.business.enums.MqTagEnum;
-import com.qmth.themis.business.enums.WebsocketStatusEnum;
+import com.qmth.themis.business.enums.*;
 import com.qmth.themis.business.service.MqDtoService;
 import com.qmth.themis.business.service.TEExamService;
 import com.qmth.themis.business.service.TOeExamRecordService;
@@ -111,17 +108,20 @@ public class TEFaceController {
         mqDtoService.assembleSendAsyncMsg(mqDto);
 
         Long examId = ExamRecordCacheUtil.getExamId(param.getRecordId());
-        if(Objects.nonNull(examId)) {
-            Long timestamp = System.currentTimeMillis();
-            ExamRecordCacheUtil.setClientWebsocketStatus(param.getRecordId(), WebsocketStatusEnum.ON_LINE, timestamp);
-            ExamCacheBean exam = teExamService.getExamCacheBean(examId);
-            if (Objects.nonNull(exam.getMonitorVideoSource())) {
-                String[] strs = exam.getMonitorVideoSource().split(",");
-                for (int i = 0; i < strs.length; i++) {
-                    ExamRecordCacheUtil.setMonitorStatus(param.getRecordId(), MonitorVideoSourceEnum.valueOf(strs[i]), MonitorStatusSourceEnum.START, System.currentTimeMillis());
+        if (Objects.nonNull(examId)) {
+            ExamRecordStatusEnum statusEnum = ExamRecordCacheUtil.getStatus(param.getRecordId());
+            if (Objects.nonNull(statusEnum) && statusEnum == ExamRecordStatusEnum.ANSWERING) {
+                Long timestamp = System.currentTimeMillis();
+                ExamRecordCacheUtil.setClientWebsocketStatus(param.getRecordId(), WebsocketStatusEnum.ON_LINE, timestamp);
+                ExamCacheBean exam = teExamService.getExamCacheBean(examId);
+                if (Objects.nonNull(exam.getMonitorVideoSource())) {
+                    String[] strs = exam.getMonitorVideoSource().split(",");
+                    for (int i = 0; i < strs.length; i++) {
+                        ExamRecordCacheUtil.setMonitorStatus(param.getRecordId(), MonitorVideoSourceEnum.valueOf(strs[i]), MonitorStatusSourceEnum.START, System.currentTimeMillis());
+                    }
                 }
+                tOeExamRecordService.sendExamRecordDataSaveMq(param.getRecordId(), timestamp);
             }
-            tOeExamRecordService.sendExamRecordDataSaveMq(param.getRecordId(), timestamp);
         }
         return ResultUtil.ok(ret);
     }

+ 13 - 13
themis-exam/src/main/java/com/qmth/themis/exam/api/TELivenessController.java

@@ -6,10 +6,7 @@ import com.qmth.themis.business.cache.ExamRecordCacheUtil;
 import com.qmth.themis.business.cache.bean.ExamCacheBean;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dto.MqDto;
-import com.qmth.themis.business.enums.MonitorStatusSourceEnum;
-import com.qmth.themis.business.enums.MonitorVideoSourceEnum;
-import com.qmth.themis.business.enums.MqTagEnum;
-import com.qmth.themis.business.enums.WebsocketStatusEnum;
+import com.qmth.themis.business.enums.*;
 import com.qmth.themis.business.service.MqDtoService;
 import com.qmth.themis.business.service.TEExamService;
 import com.qmth.themis.business.service.TOeExamRecordService;
@@ -110,17 +107,20 @@ public class TELivenessController {
         mqDtoService.assembleSendAsyncMsg(mqDto);
 
         Long examId = ExamRecordCacheUtil.getExamId(param.getRecordId());
-        if(Objects.nonNull(examId)) {
-            Long timestamp = System.currentTimeMillis();
-            ExamRecordCacheUtil.setClientWebsocketStatus(param.getRecordId(), WebsocketStatusEnum.ON_LINE, timestamp);
-            ExamCacheBean exam = teExamService.getExamCacheBean(examId);
-            if (Objects.nonNull(exam.getMonitorVideoSource())) {
-                String[] strs = exam.getMonitorVideoSource().split(",");
-                for (int i = 0; i < strs.length; i++) {
-                    ExamRecordCacheUtil.setMonitorStatus(param.getRecordId(), MonitorVideoSourceEnum.valueOf(strs[i]), MonitorStatusSourceEnum.START, System.currentTimeMillis());
+        if (Objects.nonNull(examId)) {
+            ExamRecordStatusEnum statusEnum = ExamRecordCacheUtil.getStatus(param.getRecordId());
+            if (Objects.nonNull(statusEnum) && statusEnum == ExamRecordStatusEnum.ANSWERING) {
+                Long timestamp = System.currentTimeMillis();
+                ExamRecordCacheUtil.setClientWebsocketStatus(param.getRecordId(), WebsocketStatusEnum.ON_LINE, timestamp);
+                ExamCacheBean exam = teExamService.getExamCacheBean(examId);
+                if (Objects.nonNull(exam.getMonitorVideoSource())) {
+                    String[] strs = exam.getMonitorVideoSource().split(",");
+                    for (int i = 0; i < strs.length; i++) {
+                        ExamRecordCacheUtil.setMonitorStatus(param.getRecordId(), MonitorVideoSourceEnum.valueOf(strs[i]), MonitorStatusSourceEnum.START, System.currentTimeMillis());
+                    }
                 }
+                tOeExamRecordService.sendExamRecordDataSaveMq(param.getRecordId(), timestamp);
             }
-            tOeExamRecordService.sendExamRecordDataSaveMq(param.getRecordId(), timestamp);
         }
         return ResultUtil.ok(ret);
     }