|
@@ -8,6 +8,8 @@ import com.google.gson.Gson;
|
|
import com.qmth.themis.business.bean.admin.*;
|
|
import com.qmth.themis.business.bean.admin.*;
|
|
import com.qmth.themis.business.bean.status.ClientWebsocketStatusBean;
|
|
import com.qmth.themis.business.bean.status.ClientWebsocketStatusBean;
|
|
import com.qmth.themis.business.bean.status.ExamStatusBean;
|
|
import com.qmth.themis.business.bean.status.ExamStatusBean;
|
|
|
|
+import com.qmth.themis.business.bean.status.MobileWebsocketStatusBean;
|
|
|
|
+import com.qmth.themis.business.bean.status.MonitorStatusBean;
|
|
import com.qmth.themis.business.cache.ExamRecordCacheUtil;
|
|
import com.qmth.themis.business.cache.ExamRecordCacheUtil;
|
|
import com.qmth.themis.business.cache.RedisKeyHelper;
|
|
import com.qmth.themis.business.cache.RedisKeyHelper;
|
|
import com.qmth.themis.business.cache.bean.*;
|
|
import com.qmth.themis.business.cache.bean.*;
|
|
@@ -414,13 +416,37 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
|
|
//保存考试记录
|
|
//保存考试记录
|
|
Map<String, Object> record = redisUtil.getHashEntries(RedisKeyHelper.examRecordCacheKey(recordId));
|
|
Map<String, Object> record = redisUtil.getHashEntries(RedisKeyHelper.examRecordCacheKey(recordId));
|
|
Object o = redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.status.getCode());
|
|
Object o = redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.status.getCode());
|
|
- if (o instanceof ExamStatusBean) {
|
|
|
|
|
|
+ if (Objects.nonNull(o) && o instanceof ExamStatusBean) {
|
|
record.put(ExamRecordFieldEnum.status.getCode(), ((ExamStatusBean) o).getExamRecordStatusEnum());
|
|
record.put(ExamRecordFieldEnum.status.getCode(), ((ExamStatusBean) o).getExamRecordStatusEnum());
|
|
}
|
|
}
|
|
o = redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.client_websocket_status.getCode());
|
|
o = redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.client_websocket_status.getCode());
|
|
- if (o instanceof ClientWebsocketStatusBean) {
|
|
|
|
|
|
+ if (Objects.nonNull(o) && o instanceof ClientWebsocketStatusBean) {
|
|
record.put(ExamRecordFieldEnum.client_websocket_status.getCode(), ((ClientWebsocketStatusBean) o).getWebsocketStatusEnum());
|
|
record.put(ExamRecordFieldEnum.client_websocket_status.getCode(), ((ClientWebsocketStatusBean) o).getWebsocketStatusEnum());
|
|
}
|
|
}
|
|
|
|
+ o = redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.mobile_first_websocket_status.getCode());
|
|
|
|
+ if (Objects.nonNull(o) && o instanceof MobileWebsocketStatusBean) {
|
|
|
|
+ record.put(ExamRecordFieldEnum.mobile_first_websocket_status.getCode(), ((MobileWebsocketStatusBean) o).getWebsocketStatusEnum());
|
|
|
|
+ }
|
|
|
|
+ o = redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.mobile_second_websocket_status.getCode());
|
|
|
|
+ if (Objects.nonNull(o) && o instanceof MobileWebsocketStatusBean) {
|
|
|
|
+ record.put(ExamRecordFieldEnum.mobile_second_websocket_status.getCode(), ((MobileWebsocketStatusBean) o).getWebsocketStatusEnum());
|
|
|
|
+ }
|
|
|
|
+ o = redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.camera_monitor_status.getCode());
|
|
|
|
+ if (Objects.nonNull(o) && o instanceof MonitorStatusBean) {
|
|
|
|
+ record.put(ExamRecordFieldEnum.camera_monitor_status.getCode(), ((MonitorStatusBean) o).getMonitorStatusSourceEnum());
|
|
|
|
+ }
|
|
|
|
+ o = redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.screen_monitor_status.getCode());
|
|
|
|
+ if (Objects.nonNull(o) && o instanceof MonitorStatusBean) {
|
|
|
|
+ record.put(ExamRecordFieldEnum.screen_monitor_status.getCode(), ((MonitorStatusBean) o).getMonitorStatusSourceEnum());
|
|
|
|
+ }
|
|
|
|
+ o = redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.mobile_first_monitor_status.getCode());
|
|
|
|
+ if (Objects.nonNull(o) && o instanceof MonitorStatusBean) {
|
|
|
|
+ record.put(ExamRecordFieldEnum.mobile_first_monitor_status.getCode(), ((MonitorStatusBean) o).getMonitorStatusSourceEnum());
|
|
|
|
+ }
|
|
|
|
+ o = redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.mobile_second_monitor_status.getCode());
|
|
|
|
+ if (Objects.nonNull(o) && o instanceof MonitorStatusBean) {
|
|
|
|
+ record.put(ExamRecordFieldEnum.mobile_second_monitor_status.getCode(), ((MonitorStatusBean) o).getMonitorStatusSourceEnum());
|
|
|
|
+ }
|
|
Gson gson = new Gson();
|
|
Gson gson = new Gson();
|
|
TOeExamRecord er = gson.fromJson(gson.toJson(record), TOeExamRecord.class);
|
|
TOeExamRecord er = gson.fromJson(gson.toJson(record), TOeExamRecord.class);
|
|
er.setStatus(ExamRecordStatusEnum.PERSISTED);
|
|
er.setStatus(ExamRecordStatusEnum.PERSISTED);
|