wangliang hace 1 año
padre
commit
7a2b1525c0

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

@@ -3,10 +3,16 @@ package com.qmth.themis.exam.api;
 import com.qmth.themis.business.bean.exam.FaceVerifyBean;
 import com.qmth.themis.business.bean.exam.FaceVerifyParamBean;
 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.service.MqDtoService;
+import com.qmth.themis.business.service.TEExamService;
+import com.qmth.themis.business.service.TOeExamRecordService;
 import com.qmth.themis.business.service.TOeFaceVerifyHistoryService;
 import com.qmth.themis.business.util.MqUtil;
 import com.qmth.themis.business.util.ServletUtil;
@@ -28,6 +34,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * 人脸验证
@@ -50,6 +57,12 @@ public class TEFaceController {
     @Resource
     MqUtil mqUtil;
 
+    @Resource
+    TEExamService teExamService;
+
+    @Resource
+    TOeExamRecordService tOeExamRecordService;
+
     @ApiOperation(value = "人脸验证结果")
     @RequestMapping(value = "/verify", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "人脸验证信息")})
@@ -96,6 +109,20 @@ public class TEFaceController {
         //mq发送消息start
         MqDto mqDto = new MqDto(mqUtil.getTopic(), MqTagEnum.FACE_VERIFY_SAVE.name(), transMap, MqTagEnum.FACE_VERIFY_SAVE, param.getRecordId().toString(), ip);
         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());
+                }
+            }
+            tOeExamRecordService.sendExamRecordDataSaveMq(param.getRecordId(), timestamp);
+        }
         return ResultUtil.ok(ret);
     }
 

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

@@ -3,10 +3,16 @@ package com.qmth.themis.exam.api;
 import com.qmth.themis.business.bean.exam.LivenessVerifyBean;
 import com.qmth.themis.business.bean.exam.LivenessVerifyParamBean;
 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.service.MqDtoService;
+import com.qmth.themis.business.service.TEExamService;
+import com.qmth.themis.business.service.TOeExamRecordService;
 import com.qmth.themis.business.service.TOeLivenessVerifyHistoryService;
 import com.qmth.themis.business.util.MqUtil;
 import com.qmth.themis.business.util.ServletUtil;
@@ -28,6 +34,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * 活体验证
@@ -50,6 +57,12 @@ public class TELivenessController {
     @Resource
     MqUtil mqUtil;
 
+    @Resource
+    TEExamService teExamService;
+
+    @Resource
+    TOeExamRecordService tOeExamRecordService;
+
     @ApiOperation(value = "活体验证结果")
     @RequestMapping(value = "/verify", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "活体验证信息")})
@@ -95,6 +108,20 @@ public class TELivenessController {
         MqDto mqDto = new MqDto(mqUtil.getTopic(), MqTagEnum.LIVENESS_VERIFY_SAVE.name(), transMap,
                 MqTagEnum.LIVENESS_VERIFY_SAVE, param.getRecordId().toString(), ip);
         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());
+                }
+            }
+            tOeExamRecordService.sendExamRecordDataSaveMq(param.getRecordId(), timestamp);
+        }
         return ResultUtil.ok(ret);
     }