|
@@ -7,7 +7,6 @@ import com.qmth.themis.business.bean.status.MonitorStatusBean;
|
|
|
import com.qmth.themis.business.constant.SpringContextHolder;
|
|
|
import com.qmth.themis.business.constant.SystemConstant;
|
|
|
import com.qmth.themis.business.enums.*;
|
|
|
-import com.qmth.themis.business.service.TOeExamRecordService;
|
|
|
import com.qmth.themis.business.util.RedisUtil;
|
|
|
import com.qmth.themis.common.enums.ExceptionResultEnum;
|
|
|
import com.qmth.themis.common.exception.BusinessException;
|
|
@@ -49,7 +48,14 @@ public class ExamRecordCacheUtil {
|
|
|
}
|
|
|
|
|
|
public static void setStatus(Long recordId, ExamRecordStatusEnum status, Long timestamp) {
|
|
|
- redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.status.getCode(), new ExamStatusBean(status, timestamp));
|
|
|
+ ExamStatusBean examStatusBean = getStatusBean(recordId);
|
|
|
+ if (Objects.isNull(examStatusBean)) {
|
|
|
+ examStatusBean = new ExamStatusBean(status, timestamp);
|
|
|
+ } else {
|
|
|
+ examStatusBean.setExamRecordStatusEnum(status);
|
|
|
+ examStatusBean.setTimestamp(timestamp);
|
|
|
+ }
|
|
|
+ redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.status.getCode(), examStatusBean);
|
|
|
}
|
|
|
|
|
|
public static Long getFirstStartTime(Long recordId) {
|
|
@@ -245,7 +251,14 @@ public class ExamRecordCacheUtil {
|
|
|
}
|
|
|
|
|
|
public static void setMonitorStatus(Long recordId, MonitorVideoSourceEnum source, MonitorStatusSourceEnum statusSourceEnum, Long timestamp) {
|
|
|
- redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), SystemConstant.MONITOR_STATUS_ + source.name(), new MonitorStatusBean(statusSourceEnum, timestamp));
|
|
|
+ MonitorStatusBean monitorStatusBean = getMonitorStatusBean(recordId, source);
|
|
|
+ if (Objects.isNull(monitorStatusBean)) {
|
|
|
+ monitorStatusBean = new MonitorStatusBean(statusSourceEnum, timestamp);
|
|
|
+ } else {
|
|
|
+ monitorStatusBean.setMonitorStatusSourceEnum(statusSourceEnum);
|
|
|
+ monitorStatusBean.setTimestamp(timestamp);
|
|
|
+ }
|
|
|
+ redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), SystemConstant.MONITOR_STATUS_ + source.name(), monitorStatusBean);
|
|
|
}
|
|
|
|
|
|
public static MonitorCallStatusSourceEnum getMonitorCallStatus(Long recordId, MonitorVideoSourceEnum source) {
|
|
@@ -262,7 +275,14 @@ public class ExamRecordCacheUtil {
|
|
|
}
|
|
|
|
|
|
public static void setMonitorCallStatus(Long recordId, MonitorVideoSourceEnum source, MonitorCallStatusSourceEnum callStatusSourceEnum, Long timestamp) {
|
|
|
- redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), SystemConstant.MONITOR_CALL_STATUS_ + source.name(), new MonitorCallStatusBean(callStatusSourceEnum, timestamp));
|
|
|
+ MonitorCallStatusBean monitorCallStatusBean = getMonitorCallStatusBean(recordId, source);
|
|
|
+ if (Objects.isNull(monitorCallStatusBean)) {
|
|
|
+ monitorCallStatusBean = new MonitorCallStatusBean(callStatusSourceEnum, timestamp);
|
|
|
+ } else {
|
|
|
+ monitorCallStatusBean.setMonitorCallStatusSourceEnum(callStatusSourceEnum);
|
|
|
+ monitorCallStatusBean.setTimestamp(timestamp);
|
|
|
+ }
|
|
|
+ redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), SystemConstant.MONITOR_CALL_STATUS_ + source.name(), monitorCallStatusBean);
|
|
|
}
|
|
|
|
|
|
public static ClientWebsocketStatusBean getClientWebsocketStatusBean(Long recordId) {
|
|
@@ -283,7 +303,14 @@ public class ExamRecordCacheUtil {
|
|
|
}
|
|
|
|
|
|
public static void setClientWebsocketStatus(Long recordId, WebsocketStatusEnum websocketStatusEnum, Long timestamp) {
|
|
|
- redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.client_websocket_status.getCode(), new ClientWebsocketStatusBean(websocketStatusEnum, timestamp));
|
|
|
+ ClientWebsocketStatusBean clientWebsocketStatusBean = getClientWebsocketStatusBean(recordId);
|
|
|
+ if (Objects.isNull(clientWebsocketStatusBean)) {
|
|
|
+ clientWebsocketStatusBean = new ClientWebsocketStatusBean(websocketStatusEnum, timestamp);
|
|
|
+ } else {
|
|
|
+ clientWebsocketStatusBean.setWebsocketStatusEnum(websocketStatusEnum);
|
|
|
+ clientWebsocketStatusBean.setTimestamp(timestamp);
|
|
|
+ }
|
|
|
+ redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.client_websocket_status.getCode(), clientWebsocketStatusBean);
|
|
|
}
|
|
|
|
|
|
public static void setClientCurrentIp(Long recordId, String ip) {
|