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