wangliang hace 4 años
padre
commit
1e59b4659f

+ 16 - 9
themis-admin/src/main/java/com/qmth/themis/admin/api/TIeInvigilateController.java

@@ -138,8 +138,8 @@ public class TIeInvigilateController {
                 monitorVideoSourceList = Arrays.asList(examCacheBean.getMonitorVideoSource().trim().toUpperCase().replaceAll(" ", "").split(","));
             }
             if (Objects.nonNull(invigilateListVideoBeanList) && invigilateListVideoBeanList.size() > 0) {
-                List<String> finalMonitorVideoSourceList = monitorVideoSourceList;
                 ExamCacheBean finalExamCacheBean = examCacheBean;
+                List<String> finalMonitorVideoSourceList = monitorVideoSourceList;
                 invigilateListVideoBeanList.forEach(s -> {
                     if (Objects.nonNull(finalMonitorVideoSourceList) && finalMonitorVideoSourceList.size() > 0) {
                         finalMonitorVideoSourceList.forEach(l -> {
@@ -160,12 +160,12 @@ public class TIeInvigilateController {
                             }
                         });
                     }
-                    MonitorVideoSourceEnum source = MonitorVideoSourceEnum.CLIENT_CAMERA;
-                    if (Objects.nonNull(monitorVideoSource)) {
-                        source = MonitorVideoSourceEnum.valueOf(monitorVideoSource);
+                    if (Objects.nonNull(finalMonitorVideoSourceList) && finalMonitorVideoSourceList.contains(MonitorVideoSourceEnum.CLIENT_CAMERA)) {
+                        String monitorLiveUrl = SystemConstant.setStreamId(dictionaryConfig.monitorDomain().getPrefix(), s.getExamRecordId(), MonitorVideoSourceEnum.CLIENT_CAMERA);
+                        if (Objects.nonNull(monitorLiveUrl)) {
+                            s.setMonitorLiveUrl(monitorLiveUrl);
+                        }
                     }
-                    String monitorLiveUrl = SystemConstant.setStreamId(dictionaryConfig.monitorDomain().getPrefix(), s.getExamRecordId(), source);
-                    s.setMonitorLiveUrl(monitorLiveUrl);
                     WebsocketStatusEnum websocketStatusEnum = ExamRecordCacheUtil.getClientWebsocketStatus(s.getExamRecordId());
                     if (Objects.nonNull(websocketStatusEnum)) {
                         s.setClientWebsocketStatus(websocketStatusEnum);
@@ -204,11 +204,18 @@ public class TIeInvigilateController {
             if (Objects.nonNull(examId)) {
                 examCacheBean = teExamService.getExamCacheBean(examId);
             }
+            List<String> monitorVideoSourceList = null;
+            if (Objects.nonNull(examCacheBean) && Objects.nonNull(examCacheBean.getMonitorVideoSource()) && !Objects.equals(examCacheBean.getMonitorVideoSource().toString().trim().replaceAll(" ", ""), "")) {
+                monitorVideoSourceList = Arrays.asList(examCacheBean.getMonitorVideoSource().trim().toUpperCase().replaceAll(" ", "").split(","));
+            }
             ExamCacheBean finalExamCacheBean = examCacheBean;
+            List<String> finalMonitorVideoSourceList = monitorVideoSourceList;
             invigilateListVideoBeanList.forEach(s -> {
-                String monitorLiveUrl = SystemConstant.setStreamId(dictionaryConfig.monitorDomain().getPrefix(), s.getExamRecordId(), MonitorVideoSourceEnum.CLIENT_CAMERA);
-                if (Objects.nonNull(monitorLiveUrl)) {
-                    s.setMonitorLiveUrl(monitorLiveUrl);
+                if (Objects.nonNull(finalMonitorVideoSourceList) && finalMonitorVideoSourceList.contains(MonitorVideoSourceEnum.CLIENT_CAMERA)) {
+                    String monitorLiveUrl = SystemConstant.setStreamId(dictionaryConfig.monitorDomain().getPrefix(), s.getExamRecordId(), MonitorVideoSourceEnum.CLIENT_CAMERA);
+                    if (Objects.nonNull(monitorLiveUrl)) {
+                        s.setMonitorLiveUrl(monitorLiveUrl);
+                    }
                 }
                 WebsocketStatusEnum websocketStatusEnum = ExamRecordCacheUtil.getClientWebsocketStatus(s.getExamRecordId());
                 if (Objects.nonNull(websocketStatusEnum)) {