Răsfoiți Sursa

加入清除考试缓存方法

wangliang 2 ani în urmă
părinte
comite
dfecec7d39

+ 21 - 2
themis-admin/src/main/java/com/qmth/themis/admin/api/TEExamController.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.themis.business.annotation.ApiJsonObject;
 import com.qmth.themis.business.annotation.ApiJsonProperty;
 import com.qmth.themis.business.bean.admin.CountStopBean;
+import com.qmth.themis.business.cache.ExamingDataCacheUtil;
+import com.qmth.themis.business.cache.RedisKeyHelper;
 import com.qmth.themis.business.cache.bean.ExamCacheBean;
 import com.qmth.themis.business.cache.bean.ExamStudentCacheBean;
 import com.qmth.themis.business.constant.SystemConstant;
@@ -742,8 +744,25 @@ public class TEExamController {
     public Result cleanExamFirstPrepareCache(@ApiParam(value = "考试批次ids") @RequestParam(required = false) Set<Long> examIds) {
         if (!CollectionUtils.isEmpty(examIds)) {
             List<Map> list = tOeExamRecordService.cleanExamFirstPrepareCache(examIds);
-            for (Map map : list) {
-                log.info("map:{}", JacksonUtil.parseJson(map));
+            if (!CollectionUtils.isEmpty(list)) {
+                Set<Long> examRecordIds = new HashSet<>();
+                for (Map map : list) {
+                    try {
+                        Long recordId = Long.parseLong(String.valueOf(map.get("examRecordId")));
+                        Long studentId = Long.parseLong(String.valueOf(map.get("studentId")));
+                        examRecordIds.add(recordId);
+                        ExamingDataCacheUtil.deleteUnFinishedRecordId(studentId);
+                        ExamingDataCacheUtil.deleteExamingRecordId(studentId);
+                        redisUtil.delete(RedisKeyHelper.examRecordCacheKey(recordId));
+                        redisUtil.delete(RedisKeyHelper.examAnswerKey(recordId));
+                        redisUtil.delete(RedisKeyHelper.audioLeftPlayCountKey(recordId));
+                        redisUtil.delete(RedisKeyHelper.livenessVerifyCacheKey(recordId));
+                        redisUtil.delete(RedisKeyHelper.faceVerifyCacheKey(recordId));
+                        redisUtil.delete(RedisKeyHelper.studentPaperStructKey(recordId));
+                    } catch (Exception e) {
+                    }
+                }
+                tOeExamRecordService.removeByIds(examRecordIds);
             }
         }
         return ResultUtil.ok(true);