Эх сурвалжийг харах

新增统计考试信息缓存

wangliang 1 жил өмнө
parent
commit
f7a7cd8183

+ 2 - 0
themis-business/src/main/java/com/qmth/themis/business/constant/SystemConstant.java

@@ -540,6 +540,8 @@ public class SystemConstant {
 
 
     public static final String sysConfigCache = "sys:config:cache";
     public static final String sysConfigCache = "sys:config:cache";
 
 
+    public static final String examSummaryCache = "exam:summary:cache";
+
     //    /**
     //    /**
     //     * ehcache配置
     //     * ehcache配置
     //     */
     //     */

+ 78 - 0
themis-business/src/main/java/com/qmth/themis/business/service/ThemisCacheService.java

@@ -362,4 +362,82 @@ public interface ThemisCacheService {
      * @return
      * @return
      */
      */
     public void removeTodayExamListCache(Long examId);
     public void removeTodayExamListCache(Long examId);
+
+    /**
+     * 获取考试统计缓存
+     *
+     * @param examId
+     * @return
+     */
+    public List<TEExamSummary> addExamSummaryCache(Long examId);
+
+    /**
+     * 获取考试统计缓存
+     *
+     * @param examId
+     * @param examActivityId
+     * @return
+     */
+    public List<TEExamSummary> addExamSummaryCache(Long examId, Long examActivityId);
+
+    /**
+     * 获取考试统计缓存
+     *
+     * @param examId
+     * @param examActivityId
+     * @param roomCode
+     * @return
+     */
+    public List<TEExamSummary> addExamSummaryCache(Long examId, Long examActivityId, String roomCode);
+
+    /**
+     * 修改考试统计缓存
+     *
+     * @param examId
+     * @return
+     */
+    public List<TEExamSummary> updateExamSummaryCache(Long examId);
+
+    /**
+     * 修改考试统计缓存
+     *
+     * @param examId
+     * @param examActivityId
+     * @return
+     */
+    public List<TEExamSummary> updateExamSummaryCache(Long examId, Long examActivityId);
+
+    /**
+     * 修改考试统计缓存
+     *
+     * @param examId
+     * @param examActivityId
+     * @param roomCode
+     * @return
+     */
+    public List<TEExamSummary> updateExamSummaryCache(Long examId, Long examActivityId, String roomCode);
+
+    /**
+     * 删除考试统计缓存
+     *
+     * @param examId
+     */
+    public void removeExamSummaryCache(Long examId);
+
+    /**
+     * 删除考试统计缓存
+     *
+     * @param examId
+     * @param examActivityId
+     */
+    public void removeExamSummaryCache(Long examId, Long examActivityId);
+
+    /**
+     * 删除考试统计缓存
+     *
+     * @param examId
+     * @param examActivityId
+     * @param roomCode
+     */
+    public void removeExamSummaryCache(Long examId, Long examActivityId, String roomCode);
 }
 }

+ 137 - 0
themis-business/src/main/java/com/qmth/themis/business/service/impl/ThemisCacheServiceImpl.java

@@ -87,6 +87,9 @@ public class ThemisCacheServiceImpl implements ThemisCacheService {
     @Resource
     @Resource
     TEExamStudentService teExamStudentService;
     TEExamStudentService teExamStudentService;
 
 
+    @Resource
+    TEExamSummaryService teExamSummaryService;
+
     /**
     /**
      * 添加机构缓存
      * 添加机构缓存
      *
      *
@@ -702,4 +705,138 @@ public class ThemisCacheServiceImpl implements ThemisCacheService {
     public void removeTodayExamListCache(Long examId) {
     public void removeTodayExamListCache(Long examId) {
         redisUtil.removeSet(SystemConstant.TODAY_EXAM_ID_LIST_CACHE, examId);
         redisUtil.removeSet(SystemConstant.TODAY_EXAM_ID_LIST_CACHE, examId);
     }
     }
+
+    /**
+     * 查询考试统计信息公用
+     *
+     * @param examId
+     * @param examActivityId
+     * @param roomCode
+     * @return
+     */
+    protected List<TEExamSummary> examSummaryQueryCommon(Long examId, Long examActivityId, String roomCode) {
+        QueryWrapper<TEExamSummary> teExamSummaryQueryWrapper = new QueryWrapper<>();
+        teExamSummaryQueryWrapper.lambda().eq(TEExamSummary::getExamId, examId);
+        if (Objects.nonNull(examActivityId)) {
+            teExamSummaryQueryWrapper.lambda().eq(TEExamSummary::getExamActivityId, examActivityId);
+        }
+        if (Objects.nonNull(roomCode)) {
+            teExamSummaryQueryWrapper.lambda().eq(TEExamSummary::getRoomCode, roomCode);
+        }
+        return teExamSummaryService.list(teExamSummaryQueryWrapper);
+    }
+
+    /**
+     * 获取考试统计缓存
+     *
+     * @param examId
+     * @return
+     */
+    @Override
+    @Cacheable(value = SystemConstant.examSummaryCache, key = "#p0", unless = "#result == null")
+    public List<TEExamSummary> addExamSummaryCache(Long examId) {
+        return this.examSummaryQueryCommon(examId, null, null);
+    }
+
+    /**
+     * 获取考试统计缓存
+     *
+     * @param examId
+     * @param examActivityId
+     * @return
+     */
+    @Override
+    @Cacheable(value = SystemConstant.examSummaryCache, key = "#p0 + '-' + #p1", unless = "#result == null")
+    public List<TEExamSummary> addExamSummaryCache(Long examId, Long examActivityId) {
+        return this.examSummaryQueryCommon(examId, examActivityId, null);
+    }
+
+    /**
+     * 获取考试统计缓存
+     *
+     * @param examId
+     * @param examActivityId
+     * @param roomCode
+     * @return
+     */
+    @Override
+    @Cacheable(value = SystemConstant.examSummaryCache, key = "#p0 + '-' + #p1 + '-' + #p2", unless = "#result == null")
+    public List<TEExamSummary> addExamSummaryCache(Long examId, Long examActivityId, String roomCode) {
+        return this.examSummaryQueryCommon(examId, examActivityId, roomCode);
+    }
+
+    /**
+     * 修改考试统计缓存
+     *
+     * @param examId
+     * @return
+     */
+    @Override
+    @CachePut(value = SystemConstant.examSummaryCache, key = "#p0", condition = "#result != null")
+    public List<TEExamSummary> updateExamSummaryCache(Long examId) {
+        return this.examSummaryQueryCommon(examId, null, null);
+    }
+
+    /**
+     * 修改考试统计缓存
+     *
+     * @param examId
+     * @param examActivityId
+     * @return
+     */
+    @Override
+    @CachePut(value = SystemConstant.examSummaryCache, key = "#p0 + '-' + #p1", condition = "#result != null")
+    public List<TEExamSummary> updateExamSummaryCache(Long examId, Long examActivityId) {
+        return this.examSummaryQueryCommon(examId, examActivityId, null);
+    }
+
+    /**
+     * 修改考试统计缓存
+     *
+     * @param examId
+     * @param examActivityId
+     * @param roomCode
+     * @return
+     */
+    @Override
+    @CachePut(value = SystemConstant.examSummaryCache, key = "#p0 + '-' + #p1 + '-' + #p2", condition = "#result != null")
+    public List<TEExamSummary> updateExamSummaryCache(Long examId, Long examActivityId, String roomCode) {
+        return this.examSummaryQueryCommon(examId, examActivityId, roomCode);
+    }
+
+    /**
+     * 删除考试统计缓存
+     *
+     * @param examId
+     */
+    @Override
+    @CacheEvict(value = SystemConstant.examSummaryCache, key = "#p0")
+    public void removeExamSummaryCache(Long examId) {
+
+    }
+
+    /**
+     * 删除考试统计缓存
+     *
+     * @param examId
+     * @param examActivityId
+     */
+    @Override
+    @CacheEvict(value = SystemConstant.examSummaryCache, key = "#p0 + '-' + #p1")
+    public void removeExamSummaryCache(Long examId, Long examActivityId) {
+
+    }
+
+    /**
+     * 删除考试统计缓存
+     *
+     * @param examId
+     * @param examActivityId
+     * @param roomCode
+     */
+    @Override
+    @CacheEvict(value = SystemConstant.examSummaryCache, key = "#p0 + '-' + #p1 + '-' + #p2")
+    public void removeExamSummaryCache(Long examId, Long examActivityId, String roomCode) {
+
+    }
 }
 }