Forráskód Böngészése

去除场次考试记录缓存

wangliang 4 éve
szülő
commit
ccfbb54c3f

+ 4 - 7
themis-admin/src/main/java/com/qmth/themis/admin/api/TIeInvigilateController.java

@@ -21,7 +21,10 @@ import com.qmth.themis.business.entity.*;
 import com.qmth.themis.business.enums.*;
 import com.qmth.themis.business.excel.ExportUtils;
 import com.qmth.themis.business.service.*;
-import com.qmth.themis.business.util.*;
+import com.qmth.themis.business.util.JacksonUtil;
+import com.qmth.themis.business.util.MqUtil;
+import com.qmth.themis.business.util.OssUtil;
+import com.qmth.themis.business.util.ServletUtil;
 import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.exception.BusinessException;
 import com.qmth.themis.common.util.Result;
@@ -57,9 +60,6 @@ public class TIeInvigilateController {
     @Resource
     TEExamBreachLogService teExamBreachLogService;
 
-    @Resource
-    RedisUtil redisUtil;
-
     @Resource
     TOeExamRecordService tOeExamRecordService;
 
@@ -87,9 +87,6 @@ public class TIeInvigilateController {
     @Resource
     TEExamService teExamService;
 
-    @Resource
-    TEStudentService teStudentService;
-
     @Resource
     OssUtil ossUtil;
 

+ 12 - 18
themis-business/src/main/java/com/qmth/themis/business/cache/ExamActivityRecordCacheUtil.java

@@ -1,12 +1,5 @@
 package com.qmth.themis.business.cache;
 
-import com.qmth.themis.business.bean.status.ExamStatusBean;
-import com.qmth.themis.business.cache.bean.ExamActivityRecordCacheBean;
-import com.qmth.themis.business.constant.SpringContextHolder;
-import com.qmth.themis.business.util.RedisUtil;
-
-import java.util.Objects;
-
 /**
  * 场次-考试记录hash值操作
  *
@@ -14,17 +7,18 @@ import java.util.Objects;
  * @Author: xiatian
  * @Date: 2020-07-29
  */
+@Deprecated
 public class ExamActivityRecordCacheUtil {
-    private static RedisUtil redisUtil = SpringContextHolder.getBean(RedisUtil.class);
-
-    public static void setExamRecordStatus(Long activityId, Long recordId) {
-        ExamStatusBean examStatusBean = ExamRecordCacheUtil.getStatusBean(recordId);
-        if (Objects.nonNull(examStatusBean) && Objects.nonNull(examStatusBean.getExamRecordStatusEnum())) {
-            redisUtil.set(RedisKeyHelper.examActivityRecordCacheKey(activityId), recordId.toString(), new ExamActivityRecordCacheBean(ExamRecordCacheUtil.getExamStudentId(recordId), examStatusBean.getExamRecordStatusEnum()));
-        }
-    }
+//    private static RedisUtil redisUtil = SpringContextHolder.getBean(RedisUtil.class);
 
-    public static void deleteExamRecordStatus(Long activityId, Long recordId) {
-        redisUtil.delete(RedisKeyHelper.examActivityRecordCacheKey(activityId), recordId.toString());
-    }
+//    public static void setExamRecordStatus(Long activityId, Long recordId) {
+//        ExamStatusBean examStatusBean = ExamRecordCacheUtil.getStatusBean(recordId);
+//        if (Objects.nonNull(examStatusBean) && Objects.nonNull(examStatusBean.getExamRecordStatusEnum())) {
+//            redisUtil.set(RedisKeyHelper.examActivityRecordCacheKey(activityId), recordId.toString(), new ExamActivityRecordCacheBean(ExamRecordCacheUtil.getExamStudentId(recordId), examStatusBean.getExamRecordStatusEnum()));
+//        }
+//    }
+//
+//    public static void deleteExamRecordStatus(Long activityId, Long recordId) {
+//        redisUtil.delete(RedisKeyHelper.examActivityRecordCacheKey(activityId), recordId.toString());
+//    }
 }

+ 4 - 7
themis-business/src/main/java/com/qmth/themis/business/service/impl/CommonServiceImpl.java

@@ -1,11 +1,8 @@
 package com.qmth.themis.business.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.qmth.themis.business.cache.ExamActivityRecordCacheUtil;
 import com.qmth.themis.business.cache.ExamRecordCacheUtil;
-import com.qmth.themis.business.cache.ExamingDataCacheUtil;
 import com.qmth.themis.business.cache.RedisKeyHelper;
-import com.qmth.themis.business.cache.bean.ExamStudentCacheBean;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dto.MqDto;
 import com.qmth.themis.business.entity.TOeExamBreakHistory;
@@ -83,7 +80,7 @@ public class CommonServiceImpl implements CommonService {
 //			ExamActivityRecordCacheUtil.removeActivityRecordCache(ExamRecordCacheUtil.getExamActivityId(recordId),
 //					recordId);
             Long examActivityId = ExamRecordCacheUtil.getExamActivityId(recordId);
-            Long examStudentId = ExamRecordCacheUtil.getExamStudentId(recordId);
+//            Long examStudentId = ExamRecordCacheUtil.getExamStudentId(recordId);
             redisUtil.delete(RedisKeyHelper.examRecordCacheKey(recordId));
             redisUtil.delete(RedisKeyHelper.examAnswerKey(recordId));
             redisUtil.delete(RedisKeyHelper.audioLeftPlayCountKey(recordId));
@@ -103,10 +100,10 @@ public class CommonServiceImpl implements CommonService {
                 });
             }
             //删除未完成的考试id
-            ExamStudentCacheBean examStudentCacheBean = teExamStudentService.getExamStudentCacheBean(examStudentId);
-            ExamingDataCacheUtil.deleteUnFinishedRecordId(examStudentCacheBean.getStudentId());
+//            ExamStudentCacheBean examStudentCacheBean = teExamStudentService.getExamStudentCacheBean(examStudentId);
+//            ExamingDataCacheUtil.deleteUnFinishedRecordId(examStudentCacheBean.getStudentId());
             //删除场次考试记录
-            ExamActivityRecordCacheUtil.deleteExamRecordStatus(examActivityId, recordId);
+//            ExamActivityRecordCacheUtil.deleteExamRecordStatus(examActivityId, recordId);
             log.info("end persisted,recordId:" + recordId);
         } finally {
             redisUtil.releaseLock(lockKey);

+ 11 - 6
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamServiceImpl.java

@@ -9,7 +9,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.gson.Gson;
 import com.qmth.themis.business.bean.admin.OpenExamBean;
 import com.qmth.themis.business.bean.exam.*;
-import com.qmth.themis.business.cache.*;
+import com.qmth.themis.business.cache.ExamBreakCacheUtil;
+import com.qmth.themis.business.cache.ExamRecordCacheUtil;
+import com.qmth.themis.business.cache.ExamingDataCacheUtil;
+import com.qmth.themis.business.cache.RedisKeyHelper;
 import com.qmth.themis.business.cache.bean.*;
 import com.qmth.themis.business.constant.SpringContextHolder;
 import com.qmth.themis.business.constant.SystemConstant;
@@ -318,7 +321,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
         // 更新考生缓存
         redisUtil.set(RedisKeyHelper.examStudentCacheKey(examStudentId), es);
         //更新场次-考试记录缓存
-        ExamActivityRecordCacheUtil.setExamRecordStatus(activityId, recordId);
+//        ExamActivityRecordCacheUtil.setExamRecordStatus(activityId, recordId);
         ExamingDataCacheUtil.setUnFinishedRecordId(studentId, recordId);
         //mq发送消息start
         //        TEStudentCacheDto teStudentCacheDto = (TEStudentCacheDto) redisUtil.getStudent(studentId);
@@ -486,7 +489,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
                         }
                         toeExamRecordService.sendExamRecordDataSaveMq(recordId, timestamp);
                         //更新场次-考试记录缓存
-                        ExamActivityRecordCacheUtil.setExamRecordStatus(activityId, recordId);
+//                        ExamActivityRecordCacheUtil.setExamRecordStatus(activityId, recordId);
                     } else {
                         throw new BusinessException(ExceptionResultEnum.EXAM_STATUS_ALREADY_UPDATE);
                     }
@@ -941,7 +944,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
                         }
                         toeExamRecordService.sendExamRecordDataSaveMq(recordId, lastPrepareTime);
                         //更新场次-考试记录缓存
-                        ExamActivityRecordCacheUtil.setExamRecordStatus(es.getExamActivityId(), recordId);
+//                        ExamActivityRecordCacheUtil.setExamRecordStatus(es.getExamActivityId(), recordId);
                     } else {
                         throw new BusinessException(ExceptionResultEnum.EXAM_STATUS_ALREADY_UPDATE);
                     }
@@ -1140,7 +1143,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
                             && examRecordStatusEnum == ExamRecordStatusEnum.FINISHED) {
                         toeExamRecordService.sendExamRecordDataSaveMq(recordId, finishTime);
                         //更新场次-考试记录缓存
-                        ExamActivityRecordCacheUtil.setExamRecordStatus(es.getExamActivityId(), recordId);
+//                        ExamActivityRecordCacheUtil.setExamRecordStatus(es.getExamActivityId(), recordId);
                     } else {
                         throw new BusinessException(ExceptionResultEnum.EXAM_STATUS_ALREADY_UPDATE);
                     }
@@ -1163,7 +1166,9 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
             throw new BusinessException(ExceptionResultEnum.EXAM_STATUS_UPDATE_ERROR);
         }
         //更新未完成考试记录id
-        TEStudentCacheDto teStudentCacheDto = cacheService.updateStudentAccountCache(es.getStudentId());
+        TEStudentCacheDto teStudentCacheDto = cacheService.addStudentAccountCache(es.getStudentId());
+        ExamingDataCacheUtil.deleteUnFinishedRecordId(studentId);
+
         MqDto mobileMqDto = new MqDto(mqUtil.getMqGroupDomain().getTopic(), MqTagEnum.EXAM_STOP.name(), recordId, MqTagEnum.EXAM_STOP, String.valueOf(recordId), Collections.singletonMap(SystemConstant.RECORD_ID, recordId), String.valueOf(recordId));
         mqDtoService.assembleSendOneOrderMsg(mobileMqDto);
         //异步持久化

+ 0 - 4
themis-business/src/main/java/com/qmth/themis/business/service/impl/TIeReportServiceImpl.java

@@ -15,7 +15,6 @@ import com.qmth.themis.business.entity.TEExamActivity;
 import com.qmth.themis.business.entity.TOeExamRecord;
 import com.qmth.themis.business.enums.*;
 import com.qmth.themis.business.service.*;
-import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.business.util.ServletUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateUtils;
@@ -63,9 +62,6 @@ public class TIeReportServiceImpl implements TIeReportService {
     @Resource
     TOeExamRecordMapper tOeExamRecordMapper;
 
-    @Resource
-    private RedisUtil redisUtil;
-
     @Resource
     TEExamStudentService teExamStudentService;
 

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

@@ -8,7 +8,6 @@ import com.google.gson.Gson;
 import com.qmth.themis.business.bean.admin.*;
 import com.qmth.themis.business.bean.status.ClientWebsocketStatusBean;
 import com.qmth.themis.business.bean.status.ExamStatusBean;
-import com.qmth.themis.business.cache.ExamActivityRecordCacheUtil;
 import com.qmth.themis.business.cache.ExamRecordCacheUtil;
 import com.qmth.themis.business.cache.RedisKeyHelper;
 import com.qmth.themis.business.cache.bean.*;
@@ -1138,7 +1137,7 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
                                 ec.getBreakExpireSeconds();
                         sendExamBreakMqDelayMsg(breakExpireSeconds, recordId);
                         //更新场次-考试记录缓存
-                        ExamActivityRecordCacheUtil.setExamRecordStatus(examActivityId, recordId);
+//                        ExamActivityRecordCacheUtil.setExamRecordStatus(examActivityId, recordId);
                     } else {
                         throw new BusinessException(ExceptionResultEnum.EXAM_STATUS_ALREADY_UPDATE);
                     }