From 5272d770842a81e398f76a9729916fb6be6320e2 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 10 七月 2024 14:02:49 +0800 Subject: [PATCH] 学习记录缓存调整 --- src/main/java/com/ycl/jxkg/constants/CaffeineConstant.java | 5 +++++ src/main/java/com/ycl/jxkg/job/StudyRecordJob.java | 15 +++++++-------- src/main/java/com/ycl/jxkg/controller/student/SubjectController.java | 31 +++++++++++++++++++++++++++++++ src/main/java/com/ycl/jxkg/config/CaffeineConfig.java | 2 +- 4 files changed, 44 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/config/CaffeineConfig.java b/src/main/java/com/ycl/jxkg/config/CaffeineConfig.java index 527d080..118a563 100644 --- a/src/main/java/com/ycl/jxkg/config/CaffeineConfig.java +++ b/src/main/java/com/ycl/jxkg/config/CaffeineConfig.java @@ -26,7 +26,7 @@ .build(); // 鍒濆鍖栬璇佺紦瀛樸�佸涔犳椂闀跨紦瀛� caffeineCache.put(CaffeineConstant.AUTH, new HashMap<>(128)); - caffeineCache.put(CaffeineConstant.AUTH, new HashMap<>(128)); + caffeineCache.put(CaffeineConstant.STUDY_RECORD, new HashMap<>(128)); return caffeineCache; } } diff --git a/src/main/java/com/ycl/jxkg/constants/CaffeineConstant.java b/src/main/java/com/ycl/jxkg/constants/CaffeineConstant.java index 45e9081..99a3014 100644 --- a/src/main/java/com/ycl/jxkg/constants/CaffeineConstant.java +++ b/src/main/java/com/ycl/jxkg/constants/CaffeineConstant.java @@ -14,4 +14,9 @@ */ public final static String AUTH = "AUTH"; + /** + * 璁板綍瀛︿範鏃堕暱 + * + */ + public final static String STUDY_RECORD ="STUDY_RECORD"; } diff --git a/src/main/java/com/ycl/jxkg/controller/student/SubjectController.java b/src/main/java/com/ycl/jxkg/controller/student/SubjectController.java new file mode 100644 index 0000000..1c2c28a --- /dev/null +++ b/src/main/java/com/ycl/jxkg/controller/student/SubjectController.java @@ -0,0 +1,31 @@ +package com.ycl.jxkg.controller.student; + + +import com.github.pagehelper.PageInfo; +import com.ycl.jxkg.base.BaseApiController; +import com.ycl.jxkg.base.Result; +import com.ycl.jxkg.domain.entity.Subject; +import com.ycl.jxkg.domain.vo.admin.education.SubjectEditRequestVO; +import com.ycl.jxkg.domain.vo.admin.education.SubjectPageRequestVO; +import com.ycl.jxkg.domain.vo.admin.education.SubjectResponseVO; +import com.ycl.jxkg.service.SubjectService; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +@RequiredArgsConstructor +@RestController("StudentSubjectController") +@RequestMapping(value = "/api/student/subject") +public class SubjectController extends BaseApiController { + + private final SubjectService subjectService; + + @RequestMapping(value = "/list", method = RequestMethod.POST) + public Result<List<Subject>> list() { + List<Subject> subjects = subjectService.allSubject(); + return Result.ok(subjects); + } +} diff --git a/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java b/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java index 36eda18..ee588fc 100644 --- a/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java +++ b/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.benmanes.caffeine.cache.Cache; +import com.ycl.jxkg.constants.CaffeineConstant; import com.ycl.jxkg.domain.entity.StudyRecord; import com.ycl.jxkg.mapper.StudyRecordMapper; import com.ycl.jxkg.service.StudyRecordService; @@ -36,15 +37,13 @@ private void updateStudyRecord() { log.info("寮�濮嬪瓨瀛︿範鏃堕暱"); List<StudyRecord> cacheList = new ArrayList<>(); - // 鍙栧嚭鎵�鏈夌紦瀛橀」 + // 鍙栧嚭鎵�鏈夊涔犺褰曠紦瀛橀」 ConcurrentMap<String, Object> map = caffeineCache.asMap(); - for (Map.Entry<String, Object> entry : map.entrySet()) { - String key = entry.getKey(); - if (key.startsWith("STUDENT_")) { - StudyRecord studyRecord = (StudyRecord) entry.getValue(); - cacheList.add(studyRecord); - } + Map<String,StudyRecord> studyMap = (Map<String, StudyRecord>) map.get(CaffeineConstant.STUDY_RECORD); + for (Map.Entry<String, StudyRecord> entry : studyMap.entrySet()) { + cacheList.add(entry.getValue()); } + List<Integer> studentIds = cacheList.stream().map(StudyRecord::getStudentId).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(studentIds)) { //鏁版嵁搴撲腑宸茬粡瀛樺湪鐨勫鐢熸暟鎹� @@ -62,7 +61,7 @@ } studyRecordService.saveOrUpdateBatch(cacheList); } - caffeineCache.invalidateAll(map.keySet()); + caffeineCache.invalidate(CaffeineConstant.STUDY_RECORD); log.info("缁撴潫瀛樺涔犳椂闀�"); } } -- Gitblit v1.8.0