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