|
@@ -1,9 +1,6 @@
|
|
|
package com.qmth.themis.business.cache;
|
|
|
|
|
|
-import com.qmth.themis.business.bean.status.ClientWebsocketStatusBean;
|
|
|
-import com.qmth.themis.business.bean.status.ExamStatusBean;
|
|
|
-import com.qmth.themis.business.bean.status.MonitorCallStatusBean;
|
|
|
-import com.qmth.themis.business.bean.status.MonitorStatusBean;
|
|
|
+import com.qmth.themis.business.bean.status.*;
|
|
|
import com.qmth.themis.business.cache.bean.ExamActivityCacheBean;
|
|
|
import com.qmth.themis.business.cache.bean.ExamCacheBean;
|
|
|
import com.qmth.themis.business.constant.SpringContextHolder;
|
|
@@ -296,6 +293,32 @@ public class ExamRecordCacheUtil {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public static MobileWebsocketStatusBean getMobileFirstWebsocketStatusBean(Long recordId) {
|
|
|
+ return Objects.nonNull(redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.mobile_first_websocket_status.getCode())) ? (MobileWebsocketStatusBean) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.mobile_first_websocket_status.getCode()) : null;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static WebsocketStatusEnum getMobileFirstWebsocketStatus(Long recordId) {
|
|
|
+ MobileWebsocketStatusBean mobileFirstWebsocketStatusBean = getMobileFirstWebsocketStatusBean(recordId);
|
|
|
+ if (Objects.isNull(mobileFirstWebsocketStatusBean)) {
|
|
|
+ return null;
|
|
|
+ } else {
|
|
|
+ return mobileFirstWebsocketStatusBean.getWebsocketStatusEnum();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public static MobileWebsocketStatusBean getMobileSecondWebsocketStatusBean(Long recordId) {
|
|
|
+ return Objects.nonNull(redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.mobile_second_websocket_status.getCode())) ? (MobileWebsocketStatusBean) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.mobile_second_websocket_status.getCode()) : null;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static WebsocketStatusEnum getMobileSecondWebsocketStatus(Long recordId) {
|
|
|
+ MobileWebsocketStatusBean mobileSecondWebsocketStatusBean = getMobileSecondWebsocketStatusBean(recordId);
|
|
|
+ if (Objects.isNull(mobileSecondWebsocketStatusBean)) {
|
|
|
+ return null;
|
|
|
+ } else {
|
|
|
+ return mobileSecondWebsocketStatusBean.getWebsocketStatusEnum();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public static ClientWebsocketStatusBean getClientWebsocketStatusBean(Long recordId) {
|
|
|
return Objects.nonNull(redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.client_websocket_status.getCode())) ? (ClientWebsocketStatusBean) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.client_websocket_status.getCode()) : null;
|
|
|
}
|
|
@@ -313,8 +336,12 @@ public class ExamRecordCacheUtil {
|
|
|
return (String) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.client_websocket_id.getCode());
|
|
|
}
|
|
|
|
|
|
- public static String getMobileWebsocketId(Long recordId, MonitorVideoSourceEnum monitorVideoSourceEnum) {
|
|
|
- return (String) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.mobile_websocket_id.getCode() + "_" + monitorVideoSourceEnum.name());
|
|
|
+ public static String getMobileFirstWebsocketId(Long recordId) {
|
|
|
+ return (String) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.mobile_first_websocket_id.getCode());
|
|
|
+ }
|
|
|
+
|
|
|
+ public static String getMobileSecondWebsocketId(Long recordId) {
|
|
|
+ return (String) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.mobile_second_websocket_id.getCode());
|
|
|
}
|
|
|
|
|
|
public static void setClientWebsocketStatus(Long recordId, WebsocketStatusEnum websocketStatusEnum, Long timestamp) {
|
|
@@ -340,8 +367,42 @@ public class ExamRecordCacheUtil {
|
|
|
redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.client_websocket_id.getCode(), id);
|
|
|
}
|
|
|
|
|
|
- public static void setMobileWebsocketId(Long recordId, String id, MonitorVideoSourceEnum monitorVideoSourceEnum) {
|
|
|
- redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.mobile_websocket_id.getCode() + "_" + monitorVideoSourceEnum.name(), id);
|
|
|
+ public static void setMobileFirstWebsocketId(Long recordId, String id) {
|
|
|
+ redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.mobile_first_websocket_id.getCode(), id);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void setMobileSecondWebsocketId(Long recordId, String id) {
|
|
|
+ redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.mobile_second_websocket_id.getCode(), id);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void setMobileFirstWebsocketStatus(Long recordId, WebsocketStatusEnum websocketStatusEnum, Long timestamp) {
|
|
|
+ MobileWebsocketStatusBean mobileFirstWebsocketStatusBean = getMobileFirstWebsocketStatusBean(recordId);
|
|
|
+ if (Objects.isNull(mobileFirstWebsocketStatusBean)) {
|
|
|
+ mobileFirstWebsocketStatusBean = new MobileWebsocketStatusBean(websocketStatusEnum, timestamp);
|
|
|
+ } else {
|
|
|
+ if (Objects.nonNull(mobileFirstWebsocketStatusBean.getTimestamp()) && mobileFirstWebsocketStatusBean.getTimestamp().longValue() < timestamp.longValue()) {
|
|
|
+ mobileFirstWebsocketStatusBean.setWebsocketStatusEnum(websocketStatusEnum);
|
|
|
+ mobileFirstWebsocketStatusBean.setTimestamp(timestamp);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(getStatus(recordId))) {
|
|
|
+ redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.mobile_first_websocket_status.getCode(), mobileFirstWebsocketStatusBean);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void setMobileSecondWebsocketStatus(Long recordId, WebsocketStatusEnum websocketStatusEnum, Long timestamp) {
|
|
|
+ MobileWebsocketStatusBean mobileSecondWebsocketStatusBean = getMobileSecondWebsocketStatusBean(recordId);
|
|
|
+ if (Objects.isNull(mobileSecondWebsocketStatusBean)) {
|
|
|
+ mobileSecondWebsocketStatusBean = new MobileWebsocketStatusBean(websocketStatusEnum, timestamp);
|
|
|
+ } else {
|
|
|
+ if (Objects.nonNull(mobileSecondWebsocketStatusBean.getTimestamp()) && mobileSecondWebsocketStatusBean.getTimestamp().longValue() < timestamp.longValue()) {
|
|
|
+ mobileSecondWebsocketStatusBean.setWebsocketStatusEnum(websocketStatusEnum);
|
|
|
+ mobileSecondWebsocketStatusBean.setTimestamp(timestamp);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(getStatus(recordId))) {
|
|
|
+ redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.mobile_second_websocket_status.getCode(), mobileSecondWebsocketStatusBean);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public static void setClientLastSyncTime(Long recordId, Long date) {
|