|
@@ -1,14 +1,17 @@
|
|
|
package com.qmth.themis.exam.config;
|
|
|
|
|
|
+import com.qmth.themis.business.cache.ExamRecordCacheUtil;
|
|
|
import com.qmth.themis.business.constant.SpringContextHolder;
|
|
|
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.service.MqDtoService;
|
|
|
+import com.qmth.themis.business.service.TOeExamRecordService;
|
|
|
import com.qmth.themis.business.util.MqUtil;
|
|
|
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* @Description: 考试系统常量
|
|
@@ -34,6 +37,21 @@ public class ExamConstant {
|
|
|
if (clientStop) {
|
|
|
MqDto mqDto = new MqDto(mqUtil.getMqGroupDomain().getTopic(), MqTagEnum.OE_WEBSOCKET_EXAM_STOP.name(), recordId, MqTagEnum.OE_WEBSOCKET_EXAM_STOP, String.valueOf(recordId), mapParameter, String.valueOf(recordId));
|
|
|
mqDtoService.assembleSendOneOrderMsg(mqDto);
|
|
|
+ } else {//结束推流状态
|
|
|
+ String monitorVideoSource = ExamRecordCacheUtil.getMonitorVideoSource(recordId);
|
|
|
+ List<String> monitorVideoSourceList = null;
|
|
|
+ if (Objects.nonNull(monitorVideoSource) && !Objects.equals(monitorVideoSource.trim().replaceAll(" ", ""), "")) {
|
|
|
+ monitorVideoSourceList = Arrays.asList(monitorVideoSource.trim().toUpperCase().replaceAll(" ", "").split(","));
|
|
|
+ }
|
|
|
+ Long timestamp = System.currentTimeMillis();
|
|
|
+ if (Objects.nonNull(monitorVideoSourceList) && monitorVideoSourceList.contains(MonitorVideoSourceEnum.CLIENT_CAMERA.name())) {
|
|
|
+ ExamRecordCacheUtil.setMonitorStatus(recordId, MonitorVideoSourceEnum.CLIENT_CAMERA, MonitorStatusSourceEnum.STOP, timestamp);
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(monitorVideoSourceList) && monitorVideoSourceList.contains(MonitorVideoSourceEnum.CLIENT_SCREEN.name())) {
|
|
|
+ ExamRecordCacheUtil.setMonitorStatus(recordId, MonitorVideoSourceEnum.CLIENT_SCREEN, MonitorStatusSourceEnum.STOP, timestamp);
|
|
|
+ }
|
|
|
+ TOeExamRecordService toeExamRecordService = SpringContextHolder.getBean(TOeExamRecordService.class);
|
|
|
+ toeExamRecordService.sendExamRecordDataSaveMq(recordId, timestamp);
|
|
|
}
|
|
|
//移动端考试结束
|
|
|
if (mobileStop) {
|