From 247cb86585a1d1894596ed18a6c93efecb992946 Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期四, 14 十一月 2024 10:34:27 +0800
Subject: [PATCH] 班级成绩图表分析

---
 src/main/java/com/ycl/jxkg/job/StudyRecordJob.java |   46 +++++++++++++++++++++++-----------------------
 1 files changed, 23 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java b/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java
index 043daf9..c901abd 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;
@@ -32,37 +33,36 @@
     private final StudyRecordMapper studyRecordMapper;
     private final StudyRecordService studyRecordService;
 
-    @Scheduled(fixedRate = 120000) // 2鍒嗛挓鎵ц涓�娆�
+    @Scheduled(fixedRate = 1200000) // 2鍒嗛挓鎵ц涓�娆�
     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>) caffeineCache.getIfPresent(CaffeineConstant.STUDY_RECORD);
+        if (!CollectionUtils.isEmpty(studyMap)) {
+            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)) {
-            //鏁版嵁搴撲腑宸茬粡瀛樺湪鐨勫鐢熸暟鎹�
-            QueryWrapper<StudyRecord> wrapper = new QueryWrapper<>();
-            wrapper.in("student_id", studentIds);
-            List<StudyRecord> studyRecords = studyRecordMapper.selectList(wrapper);
-            for (StudyRecord record : studyRecords) {
-                for (StudyRecord cacheRecord : cacheList) {
-                    if (record.getStudentId().equals(cacheRecord.getStudentId())) {
-                        cacheRecord.setId(record.getId());
-                        cacheRecord.setStudyTime(record.getStudyTime() + cacheRecord.getStudyTime());
-                        cacheRecord.setMeetCount(record.getMeetCount());
+
+            List<Integer> studentIds = cacheList.stream().map(StudyRecord::getStudentId).collect(Collectors.toList());
+            if (!CollectionUtils.isEmpty(studentIds)) {
+                //鏁版嵁搴撲腑宸茬粡瀛樺湪鐨勫鐢熸暟鎹�
+                QueryWrapper<StudyRecord> wrapper = new QueryWrapper<>();
+                wrapper.in("student_id", studentIds);
+                List<StudyRecord> studyRecords = studyRecordMapper.selectList(wrapper);
+                for (StudyRecord record : studyRecords) {
+                    for (StudyRecord cacheRecord : cacheList) {
+                        if (record.getStudentId().equals(cacheRecord.getStudentId())) {
+                            cacheRecord.setId(record.getId());
+                            cacheRecord.setStudyTime(record.getStudyTime() + cacheRecord.getStudyTime());
+                            cacheRecord.setMeetCount(record.getMeetCount());
+                        }
                     }
                 }
+                studyRecordService.saveOrUpdateBatch(cacheList);
             }
-            studyRecordService.saveOrUpdateBatch(cacheList);
+            caffeineCache.invalidate(CaffeineConstant.STUDY_RECORD);
         }
-        caffeineCache.invalidateAll(map.keySet());
         log.info("缁撴潫瀛樺涔犳椂闀�");
     }
 }

--
Gitblit v1.8.0