Explorar o código

通讯故障bug fix

wangliang %!s(int64=4) %!d(string=hai) anos
pai
achega
2bf407a2e0

+ 5 - 1
themis-admin/src/main/java/com/qmth/themis/admin/api/TIeInvigilateController.java

@@ -118,6 +118,10 @@ public class TIeInvigilateController {
                             @ApiParam(value = "预警量max", required = false) @RequestParam(required = false) Integer maxWarningCount,
                             @ApiParam(value = "客户端网络通信状态", required = false) @RequestParam(required = false) String clientWebsocketStatus,
                             @ApiParam(value = "监控设备来源", required = false) @RequestParam(required = false) String monitorVideoSource,
+                            @ApiParam(value = "摄像头监控设备推流状态('START'or'STOP')", required = false) @RequestParam(required = false) String cameraMonitorStatus,
+                            @ApiParam(value = "屏幕监控设备推流状态('START'or'STOP')", required = false) @RequestParam(required = false) String screenMonitorStatus,
+                            @ApiParam(value = "手机端主机位监控设备推流状态('START'or'STOP')", required = false) @RequestParam(required = false) String mobileFirstMonitorStatus,
+                            @ApiParam(value = "手机端辅机位监控设备推流状态('START'or'STOP')", required = false) @RequestParam(required = false) String mobileSecondMonitorStatus,
                             @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber,
                             @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
@@ -127,7 +131,7 @@ public class TIeInvigilateController {
         if (authDto.getRoleCodes().toString().contains(RoleEnum.INVIGILATE.name())) {
             userId = tbUser.getId();
         }
-        IPage<InvigilateListVideoBean> invigilateListVideoBeanIPage = tOeExamRecordService.invigilatePageListVideo(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, paperDownload, status, name, identity, minWarningCount, maxWarningCount, clientWebsocketStatus, userId, tbUser.getOrgId());
+        IPage<InvigilateListVideoBean> invigilateListVideoBeanIPage = tOeExamRecordService.invigilatePageListVideo(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, paperDownload, status, name, identity, minWarningCount, maxWarningCount, clientWebsocketStatus, cameraMonitorStatus, screenMonitorStatus, mobileFirstMonitorStatus, mobileSecondMonitorStatus, userId, tbUser.getOrgId());
         if (Objects.nonNull(invigilateListVideoBeanIPage)) {
             List<InvigilateListVideoBean> invigilateListVideoBeanList = invigilateListVideoBeanIPage.getRecords();
             ExamCacheBean examCacheBean = null;

+ 8 - 0
themis-business/src/main/java/com/qmth/themis/business/dao/TOeExamRecordMapper.java

@@ -85,6 +85,10 @@ public interface TOeExamRecordMapper extends BaseMapper<TOeExamRecord> {
      * @param minWarningCount
      * @param maxWarningCount
      * @param clientWebsocketStatus
+     * @param cameraMonitorStatus
+     * @param screenMonitorStatus
+     * @param mobileFirstMonitorStatus
+     * @param mobileSecondMonitorStatus
      * @param userId
      * @param orgId
      * @return
@@ -99,6 +103,10 @@ public interface TOeExamRecordMapper extends BaseMapper<TOeExamRecord> {
                                                                   @Param("minWarningCount") Integer minWarningCount,
                                                                   @Param("maxWarningCount") Integer maxWarningCount,
                                                                   @Param("clientWebsocketStatus") String clientWebsocketStatus,
+                                                                  @Param("cameraMonitorStatus") String cameraMonitorStatus,
+                                                                  @Param("screenMonitorStatus") String screenMonitorStatus,
+                                                                  @Param("mobileFirstMonitorStatus") String mobileFirstMonitorStatus,
+                                                                  @Param("mobileSecondMonitorStatus") String mobileSecondMonitorStatus,
                                                                   @Param("userId") Long userId,
                                                                   @Param("orgId") Long orgId);
 

+ 48 - 0
themis-business/src/main/java/com/qmth/themis/business/entity/TOeExamRecord.java

@@ -254,6 +254,54 @@ public class TOeExamRecord implements Serializable {
     @TableField(value = "mobile_second_websocket_id")
     private String mobileSecondWebsocketId;
 
+    @ApiModelProperty(name = "电脑摄像头通信状态")
+    @TableField(value = "camera_monitor_status")
+    private MonitorStatusSourceEnum cameraMonitorStatus;
+
+    @ApiModelProperty(name = "电脑屏幕通信状态")
+    @TableField(value = "screen_monitor_status")
+    private MonitorStatusSourceEnum screenMonitorStatus;
+
+    @ApiModelProperty(name = "手机主机位通信状态")
+    @TableField(value = "mobile_first_monitor_status")
+    private MonitorStatusSourceEnum mobileFirstMonitorStatus;
+
+    @ApiModelProperty(name = "手机辅机位监控通信状态")
+    @TableField(value = "mobile_second_monitor_status")
+    private MonitorStatusSourceEnum mobileSecondMonitorStatus;
+
+    public MonitorStatusSourceEnum getCameraMonitorStatus() {
+        return cameraMonitorStatus;
+    }
+
+    public void setCameraMonitorStatus(MonitorStatusSourceEnum cameraMonitorStatus) {
+        this.cameraMonitorStatus = cameraMonitorStatus;
+    }
+
+    public MonitorStatusSourceEnum getScreenMonitorStatus() {
+        return screenMonitorStatus;
+    }
+
+    public void setScreenMonitorStatus(MonitorStatusSourceEnum screenMonitorStatus) {
+        this.screenMonitorStatus = screenMonitorStatus;
+    }
+
+    public MonitorStatusSourceEnum getMobileFirstMonitorStatus() {
+        return mobileFirstMonitorStatus;
+    }
+
+    public void setMobileFirstMonitorStatus(MonitorStatusSourceEnum mobileFirstMonitorStatus) {
+        this.mobileFirstMonitorStatus = mobileFirstMonitorStatus;
+    }
+
+    public MonitorStatusSourceEnum getMobileSecondMonitorStatus() {
+        return mobileSecondMonitorStatus;
+    }
+
+    public void setMobileSecondMonitorStatus(MonitorStatusSourceEnum mobileSecondMonitorStatus) {
+        this.mobileSecondMonitorStatus = mobileSecondMonitorStatus;
+    }
+
     public WebsocketStatusEnum getMobileFirstWebsocketStatus() {
         return mobileFirstWebsocketStatus;
     }

+ 8 - 0
themis-business/src/main/java/com/qmth/themis/business/service/TOeExamRecordService.java

@@ -111,6 +111,10 @@ public interface TOeExamRecordService extends IService<TOeExamRecord> {
      * @param minWarningCount
      * @param maxWarningCount
      * @param clientWebsocketStatus
+     * @param cameraMonitorStatus
+     * @param screenMonitorStatus
+     * @param mobileFirstMonitorStatus
+     * @param mobileSecondMonitorStatus
      * @param userId
      * @param orgId
      * @return
@@ -125,6 +129,10 @@ public interface TOeExamRecordService extends IService<TOeExamRecord> {
                                                                   Integer minWarningCount,
                                                                   Integer maxWarningCount,
                                                                   String clientWebsocketStatus,
+                                                                  String cameraMonitorStatus,
+                                                                  String screenMonitorStatus,
+                                                                  String mobileFirstMonitorStatus,
+                                                                  String mobileSecondMonitorStatus,
                                                                   Long userId,
                                                                   Long orgId);
 

+ 18 - 2
themis-business/src/main/java/com/qmth/themis/business/service/impl/TOeExamRecordServiceImpl.java

@@ -545,6 +545,11 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
             String mobileSecondWebsocketId = ExamRecordCacheUtil.getMobileSecondWebsocketId(recordId);
             WebsocketStatusEnum mobileSecondWebsocketStatus = ExamRecordCacheUtil.getMobileSecondWebsocketStatus(recordId);
 
+            MonitorStatusSourceEnum cameraMonitorStatus = ExamRecordCacheUtil.getMonitorStatus(recordId, MonitorVideoSourceEnum.CLIENT_CAMERA);
+            MonitorStatusSourceEnum screenMonitorStatus = ExamRecordCacheUtil.getMonitorStatus(recordId, MonitorVideoSourceEnum.CLIENT_SCREEN);
+            MonitorStatusSourceEnum mobileFirstMonitorStatus = ExamRecordCacheUtil.getMonitorStatus(recordId, MonitorVideoSourceEnum.MOBILE_FIRST);
+            MonitorStatusSourceEnum mobileSecondMonitorStatus = ExamRecordCacheUtil.getMonitorStatus(recordId, MonitorVideoSourceEnum.MOBILE_SECOND);
+
             TOeExamRecord er = new TOeExamRecord();
             er.setId(recordId);
             er.setExamId(examId);
@@ -601,6 +606,10 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
             er.setInProcessLivenessFixedRange(inProcessLivenessFixedRange);
             er.setInProcessLivenessJudgePolicy(InProcessLivenessJudgePolicyEnum.valueOf(inProcessLivenessJudgePolicy));
             er.setMonitorVideoSource(monitorVideoSource);
+            er.setCameraMonitorStatus(cameraMonitorStatus);
+            er.setScreenMonitorStatus(screenMonitorStatus);
+            er.setMobileFirstMonitorStatus(mobileFirstMonitorStatus);
+            er.setMobileSecondMonitorStatus(mobileSecondMonitorStatus);
             this.saveOrUpdate(er);
         }
     }
@@ -660,6 +669,10 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
      * @param minWarningCount
      * @param maxWarningCount
      * @param clientWebsocketStatus
+     * @param cameraMonitorStatus
+     * @param screenMonitorStatus
+     * @param mobileFirstMonitorStatus
+     * @param mobileSecondMonitorStatus
      * @param userId
      * @param orgId
      * @return
@@ -668,10 +681,13 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
     @Override
     public IPage<InvigilateListVideoBean> invigilatePageListVideo(IPage<Map> iPage, Long examId, Long examActivityId,
                                                                   String roomCode, Integer paperDownload, String status, String name, String identity,
-                                                                  Integer minWarningCount, Integer maxWarningCount, String clientWebsocketStatus, Long userId, Long orgId) {
+                                                                  Integer minWarningCount, Integer maxWarningCount, String clientWebsocketStatus, String cameraMonitorStatus,
+                                                                  String screenMonitorStatus,
+                                                                  String mobileFirstMonitorStatus,
+                                                                  String mobileSecondMonitorStatus, Long userId, Long orgId) {
         return tOeExamRecordMapper
                 .invigilatePageListVideo(iPage, examId, examActivityId, roomCode, paperDownload, status, name, identity,
-                        minWarningCount, maxWarningCount, clientWebsocketStatus, userId, orgId);
+                        minWarningCount, maxWarningCount, clientWebsocketStatus, cameraMonitorStatus, screenMonitorStatus, mobileFirstMonitorStatus, mobileSecondMonitorStatus, userId, orgId);
     }
 
     /**

+ 12 - 0
themis-business/src/main/resources/mapper/TOeExamRecordMapper.xml

@@ -243,6 +243,18 @@
 		<if test="status == null or status == ''">
 			and (t.status = 'FIRST_PREPARE' or t.status = 'ANSWERING' or t.status = 'BREAK_OFF' or t.status = 'RESUME_PREPARE')
 		</if>
+		<if test="cameraMonitorStatus != null and cameraMonitorStatus != ''">
+			and t.camera_monitor_status = upper(#{cameraMonitorStatus})
+		</if>
+		<if test="screenMonitorStatus != null and screenMonitorStatus != ''">
+			and t.screen_monitor_status = upper(#{screenMonitorStatus})
+		</if>
+		<if test="mobileFirstMonitorStatus != null and mobileFirstMonitorStatus != ''">
+			and t.mobile_first_monitor_status = upper(#{mobileFirstMonitorStatus})
+		</if>
+		<if test="mobileSecondMonitorStatus != null and mobileSecondMonitorStatus != ''">
+			and t.mobile_second_monitor_status = upper(#{mobileSecondMonitorStatus})
+		</if>
 		) t,
 		(SELECT @i := 0) as i
 		order by t.warningNew desc

+ 2 - 2
themis-common/src/main/java/com/qmth/themis/common/contanst/Constants.java

@@ -4,9 +4,9 @@ import java.nio.charset.Charset;
 
 public interface Constants {
 
-    public static final int SIGNATURE_EXPIRE_SECONDS = 30;
+    public static final int SIGNATURE_EXPIRE_SECONDS = 20;
 
-    public static final int SIGNATURE_AHEAD_SECONDS = 5;
+    public static final int SIGNATURE_AHEAD_SECONDS = 20;
 
     public static final int VERIFY_TOKEN_EXPIRE_SECONDS = 30;