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