Browse Source

修改视频列表主机位

wangliang 2 năm trước cách đây
mục cha
commit
50049676d8

+ 3 - 19
themis-admin/src/main/java/com/qmth/themis/admin/api/TIeInvigilateController.java

@@ -199,25 +199,9 @@ public class TIeInvigilateController {
                 if (Objects.nonNull(s.getMonitorVideoSource()) && !Objects.equals(s.getMonitorVideoSource().trim().replaceAll(" ", ""), "")) {
                     monitorVideoSourceList = Arrays.asList(s.getMonitorVideoSource().trim().toUpperCase().replaceAll(" ", "").split(","));
                 }
-                if (Objects.nonNull(monitorVideoSourceList) && (monitorVideoSourceList.contains(MonitorVideoSourceEnum.CLIENT_CAMERA.name())
-                        && monitorVideoSourceList.contains(MonitorVideoSourceEnum.MOBILE_FIRST.name())
-                        && monitorVideoSourceList.contains(MonitorVideoSourceEnum.MOBILE_SECOND.name()))) {
-                    s.setMonitorLiveUrl(SystemConstant.setStreamId(dictionaryConfig.monitorDomain().getPrefix(), s.getExamRecordId(), MonitorVideoSourceEnum.CLIENT_CAMERA));
-                } else if (Objects.nonNull(monitorVideoSourceList) && (monitorVideoSourceList.contains(MonitorVideoSourceEnum.CLIENT_CAMERA.name())
-                        && monitorVideoSourceList.contains(MonitorVideoSourceEnum.MOBILE_FIRST.name()))) {
-                    s.setMonitorLiveUrl(SystemConstant.setStreamId(dictionaryConfig.monitorDomain().getPrefix(), s.getExamRecordId(), MonitorVideoSourceEnum.CLIENT_CAMERA));
-                } else if (Objects.nonNull(monitorVideoSourceList) && (monitorVideoSourceList.contains(MonitorVideoSourceEnum.CLIENT_CAMERA.name())
-                        && monitorVideoSourceList.contains(MonitorVideoSourceEnum.MOBILE_SECOND.name()))) {
-                    s.setMonitorLiveUrl(SystemConstant.setStreamId(dictionaryConfig.monitorDomain().getPrefix(), s.getExamRecordId(), MonitorVideoSourceEnum.CLIENT_CAMERA));
-                } else if (Objects.nonNull(monitorVideoSourceList) && (monitorVideoSourceList.contains(MonitorVideoSourceEnum.MOBILE_FIRST.name())
-                        && monitorVideoSourceList.contains(MonitorVideoSourceEnum.MOBILE_SECOND.name()))) {
-                    s.setMonitorLiveUrl(SystemConstant.setStreamId(dictionaryConfig.monitorDomain().getPrefix(), s.getExamRecordId(), MonitorVideoSourceEnum.MOBILE_FIRST));
-                } else if (Objects.nonNull(monitorVideoSourceList) && monitorVideoSourceList.contains(MonitorVideoSourceEnum.CLIENT_CAMERA.name())) {
-                    s.setMonitorLiveUrl(SystemConstant.setStreamId(dictionaryConfig.monitorDomain().getPrefix(), s.getExamRecordId(), MonitorVideoSourceEnum.CLIENT_CAMERA));
-                } else if (Objects.nonNull(monitorVideoSourceList) && monitorVideoSourceList.contains(MonitorVideoSourceEnum.MOBILE_FIRST.name())) {
-                    s.setMonitorLiveUrl(SystemConstant.setStreamId(dictionaryConfig.monitorDomain().getPrefix(), s.getExamRecordId(), MonitorVideoSourceEnum.MOBILE_FIRST));
-                } else if (Objects.nonNull(monitorVideoSourceList) && monitorVideoSourceList.contains(MonitorVideoSourceEnum.MOBILE_SECOND.name())) {
-                    s.setMonitorLiveUrl(SystemConstant.setStreamId(dictionaryConfig.monitorDomain().getPrefix(), s.getExamRecordId(), MonitorVideoSourceEnum.MOBILE_SECOND));
+                MonitorVideoSourceEnum mainMonitorVideoSource = SystemConstant.getMainMonitor(monitorVideoSourceList);
+                if (Objects.nonNull(mainMonitorVideoSource)) {
+                    s.setMonitorLiveUrl(SystemConstant.setStreamId(dictionaryConfig.monitorDomain().getPrefix(), s.getExamRecordId(), mainMonitorVideoSource));
                 }
                 WebsocketStatusEnum websocketStatusEnum = ExamRecordCacheUtil.getClientWebsocketStatus(s.getExamRecordId());
                 if (Objects.nonNull(websocketStatusEnum)) {

+ 30 - 0
themis-business/src/main/java/com/qmth/themis/business/constant/SystemConstant.java

@@ -765,4 +765,34 @@ public class SystemConstant {
             }
         }
     }
+
+    /**
+     * 获取监控主机位
+     *
+     * @param monitorVideoSourceList
+     * @return
+     */
+    public static MonitorVideoSourceEnum getMainMonitor(List<String> monitorVideoSourceList) {
+        if (Objects.nonNull(monitorVideoSourceList) && (monitorVideoSourceList.contains(MonitorVideoSourceEnum.CLIENT_CAMERA.name())
+                && monitorVideoSourceList.contains(MonitorVideoSourceEnum.MOBILE_FIRST.name())
+                && monitorVideoSourceList.contains(MonitorVideoSourceEnum.MOBILE_SECOND.name()))) {
+            return MonitorVideoSourceEnum.CLIENT_CAMERA;
+        } else if (Objects.nonNull(monitorVideoSourceList) && (monitorVideoSourceList.contains(MonitorVideoSourceEnum.CLIENT_CAMERA.name())
+                && monitorVideoSourceList.contains(MonitorVideoSourceEnum.MOBILE_FIRST.name()))) {
+            return MonitorVideoSourceEnum.CLIENT_CAMERA;
+        } else if (Objects.nonNull(monitorVideoSourceList) && (monitorVideoSourceList.contains(MonitorVideoSourceEnum.CLIENT_CAMERA.name())
+                && monitorVideoSourceList.contains(MonitorVideoSourceEnum.MOBILE_SECOND.name()))) {
+            return MonitorVideoSourceEnum.CLIENT_CAMERA;
+        } else if (Objects.nonNull(monitorVideoSourceList) && (monitorVideoSourceList.contains(MonitorVideoSourceEnum.MOBILE_FIRST.name())
+                && monitorVideoSourceList.contains(MonitorVideoSourceEnum.MOBILE_SECOND.name()))) {
+            return MonitorVideoSourceEnum.MOBILE_FIRST;
+        } else if (Objects.nonNull(monitorVideoSourceList) && monitorVideoSourceList.contains(MonitorVideoSourceEnum.CLIENT_CAMERA.name())) {
+            return MonitorVideoSourceEnum.CLIENT_CAMERA;
+        } else if (Objects.nonNull(monitorVideoSourceList) && monitorVideoSourceList.contains(MonitorVideoSourceEnum.MOBILE_FIRST.name())) {
+            return MonitorVideoSourceEnum.MOBILE_FIRST;
+        } else if (Objects.nonNull(monitorVideoSourceList) && monitorVideoSourceList.contains(MonitorVideoSourceEnum.MOBILE_SECOND.name())) {
+            return MonitorVideoSourceEnum.MOBILE_SECOND;
+        }
+        return null;
+    }
 }

+ 11 - 3
themis-business/src/main/java/com/qmth/themis/business/entity/TEExam.java

@@ -5,12 +5,16 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.base.BaseEntity;
+import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dto.request.TEExamDto;
 import com.qmth.themis.business.enums.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.springframework.util.CollectionUtils;
 
+import java.util.LinkedHashSet;
 import java.util.Objects;
+import java.util.Set;
 
 /**
  * @Description: 考试批次
@@ -246,15 +250,19 @@ public class TEExam extends BaseEntity {
         this.ipAllow = teExamDto.getIpAllow();
         this.scoreStatus = teExamDto.getScoreStatus();
         this.objectiveScorePolicy = teExamDto.getObjectiveScorePolicy();
-        if (Objects.nonNull(teExamDto.getMonitorVideoSource()) && !Objects.equals(teExamDto.getMonitorVideoSource(), "") && teExamDto.getMonitorVideoSource().size() > 0) {
-            this.monitorVideoSource = teExamDto.getMonitorVideoSource().toString().trim().replace("[", "").replace("]", "").replaceAll(" ", "");
+        if (!CollectionUtils.isEmpty(teExamDto.getMonitorVideoSource())) {
+            MonitorVideoSourceEnum mainMonitorVideoSource = SystemConstant.getMainMonitor(teExamDto.getMonitorVideoSource());
+            Set<String> set = new LinkedHashSet<>();
+            set.add(mainMonitorVideoSource.name());
+            set.addAll(teExamDto.getMonitorVideoSource());
+            this.monitorVideoSource = set.toString().trim().replace("[", "").replace("]", "").replaceAll(" ", "");
             if (Objects.equals(this.monitorVideoSource.trim().replaceAll(" ", ""), "")) {
                 this.monitorVideoSource = null;
             }
         } else {
             this.monitorVideoSource = null;
         }
-        if (Objects.nonNull(teExamDto.getMonitorRecord()) && !Objects.equals(teExamDto.getMonitorRecord(), "") && teExamDto.getMonitorRecord().size() > 0) {
+        if (!CollectionUtils.isEmpty(teExamDto.getMonitorRecord())) {
             this.monitorRecord = teExamDto.getMonitorRecord().toString().trim().replace("[", "").replace("]", "").replaceAll(" ", "");
             if (Objects.equals(this.monitorRecord.trim().replaceAll(" ", ""), "")) {
                 this.monitorRecord = null;