From 83024eccacc54be0e60eee14d19d03bf9d63ba78 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 11 七月 2024 11:41:54 +0800
Subject: [PATCH] 调整session、caffeine存活时间

---
 src/main/java/com/ycl/jxkg/job/StudyRecordJob.java           |   39 ++++++++++++++++++++-------------------
 src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java |   11 ++++++-----
 src/main/java/com/ycl/jxkg/config/CaffeineConfig.java        |    4 ++--
 src/main/resources/application.yml                           |    2 +-
 4 files changed, 29 insertions(+), 27 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/config/CaffeineConfig.java b/src/main/java/com/ycl/jxkg/config/CaffeineConfig.java
index 118a563..f07dd64 100644
--- a/src/main/java/com/ycl/jxkg/config/CaffeineConfig.java
+++ b/src/main/java/com/ycl/jxkg/config/CaffeineConfig.java
@@ -17,8 +17,8 @@
     @Bean
     public Cache<String, Object> caffeineCache() {
         Cache<String, Object> caffeineCache = Caffeine.newBuilder()
-                // 璁剧疆鏈�鍚庝竴娆″啓鍏ユ垨璁块棶鍚庣粡杩囧浐瀹氭椂闂磋繃鏈�
-                .expireAfterWrite(600, TimeUnit.SECONDS)
+                // 璁剧疆鏈�鍚庝竴娆″啓鍏ユ垨璁块棶鍚庣粡杩囧浐瀹氭椂闂�(12灏忔椂)杩囨湡
+                .expireAfterWrite(43200, TimeUnit.SECONDS)
                 // 鍒濆鐨勭紦瀛樼┖闂村ぇ灏�
                 .initialCapacity(10)
                 // 缂撳瓨鐨勬渶澶ф潯鏁�
diff --git a/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java b/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java
index ee588fc..c901abd 100644
--- a/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java
+++ b/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java
@@ -38,30 +38,31 @@
         log.info("寮�濮嬪瓨瀛︿範鏃堕暱");
         List<StudyRecord> cacheList = new ArrayList<>();
         // 鍙栧嚭鎵�鏈夊涔犺褰曠紦瀛橀」
-        ConcurrentMap<String, Object> map = caffeineCache.asMap();
-        Map<String,StudyRecord> studyMap = (Map<String, StudyRecord>) map.get(CaffeineConstant.STUDY_RECORD);
-        for (Map.Entry<String, StudyRecord> entry : studyMap.entrySet()) {
-            cacheList.add(entry.getValue());
-        }
+        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.invalidate(CaffeineConstant.STUDY_RECORD);
         log.info("缁撴潫瀛樺涔犳椂闀�");
     }
 }
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
index 0f0e2f8..b7b26f0 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
@@ -597,11 +597,11 @@
 
     @Override
     public Result getMarkPaperInfo(Integer examId, Integer userId) {
+        User student = userMapper.getUserById(userId);
         //濡傛灉宸茬粡闃呰繃鍗蜂簡锛屾煡鎴愮哗琛�
-        Result<ExamPaperMarkVO> paperMarkVO1 = checkHasJudge(examId, userId);
+        Result<ExamPaperMarkVO> paperMarkVO1 = checkHasJudge(examId, student);
         if (paperMarkVO1 != null) return paperMarkVO1;
 
-        User student = userMapper.getUserById(userId);
         ExamVO exam = examMapper.getById(examId);
         //瀛︾敓绛旈琛�
         ExamSubmitTemp userExam = new LambdaQueryChainWrapper<>(examSubmitTempMapper)
@@ -643,11 +643,12 @@
     }
 
     //妫�鏌ユ槸鍚﹂槄鍗�
-    private Result<ExamPaperMarkVO> checkHasJudge(Integer examId, Integer userId) {
-        ExamPaperScore examPaperScore = examPaperScoreMapper.getByExamIdUserId(examId, userId);
+    private Result<ExamPaperMarkVO> checkHasJudge(Integer examId, User student) {
+        ExamPaperScore examPaperScore = examPaperScoreMapper.getByExamIdUserId(examId, student.getId());
         if (examPaperScore != null) {
             ExamPaperMarkVO paperMarkVO = new ExamPaperMarkVO();
             BeanUtils.copyProperties(examPaperScore, paperMarkVO);
+            paperMarkVO.setUserName(student.getRealName());
             paperMarkVO.setTotalScore(examPaperScore.getTotalScore() + "");
             paperMarkVO.setScore(examPaperScore.getScore() + "");
             if (!StringUtils.isEmpty(examPaperScore.getPaperContent())) {
@@ -841,7 +842,7 @@
             paperMarkVO.setTitleItems(JSON.parseArray(userExam.getExamSubmit(), PaperFixQuestionVO.class));
         } else {
             //缂鸿�冿紝瀛︾敓娌℃湁鍋氶淇℃伅
-            paperMarkVO.setExamId(exam.getExamPaperId());
+            paperMarkVO.setExamId(exam.getId());
             paperMarkVO.setUserId(student.getId());
             paperMarkVO.setScore(BigDecimal.ZERO + "");
             paperMarkVO.setDoTime(0);
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 0463e0e..7e33641 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,7 +1,7 @@
 server:
   servlet:
     session:
-      timeout: 7200
+      timeout: 18000
   port: 8000
   undertow:
     io-threads: 16

--
Gitblit v1.8.0