From 870e42b9961f184f9fdfafb0fb18b15640b3813d Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期五, 01 三月 2024 13:52:18 +0800 Subject: [PATCH] 修改生成报告的缓存功能 --- src/main/java/com/lf/server/service/all/RedisService.java | 36 +++++++++++++++++ src/main/java/com/lf/server/service/all/PermsService.java | 4 -- src/main/java/com/lf/server/entity/all/RedisCacheKey.java | 16 +++++++ src/main/java/com/lf/server/service/sys/ReportService.java | 16 +++---- 4 files changed, 57 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/lf/server/entity/all/RedisCacheKey.java b/src/main/java/com/lf/server/entity/all/RedisCacheKey.java index 1e68645..d6992cc 100644 --- a/src/main/java/com/lf/server/entity/all/RedisCacheKey.java +++ b/src/main/java/com/lf/server/entity/all/RedisCacheKey.java @@ -83,9 +83,23 @@ } /** - * 鏁版嵁缁熻鎺堟潈閿� + * 鏁版嵁缁熻閿� */ public static String dataCountKey(String key) { return "data:count:" + key; } + + /** + * 鏁版嵁鐩綍閿� + */ + public static String dataDirKey(String key) { + return "data:dir:" + key; + } + + /** + * 鏁版嵁鍗曚綅閿� + */ + public static String dataDepKey(String key) { + return "data:dep:" + key; + } } diff --git a/src/main/java/com/lf/server/service/all/PermsService.java b/src/main/java/com/lf/server/service/all/PermsService.java index 101e540..5cb1c97 100644 --- a/src/main/java/com/lf/server/service/all/PermsService.java +++ b/src/main/java/com/lf/server/service/all/PermsService.java @@ -96,10 +96,6 @@ return permsMapper.selectMenuRecursive(id, uid); } - public void clearResCache() { - redisService.clearKeys(RedisCacheKey.permsResKey("")); - } - /** * 娓呴櫎鎺堟潈缂撳瓨 */ diff --git a/src/main/java/com/lf/server/service/all/RedisService.java b/src/main/java/com/lf/server/service/all/RedisService.java index 33c5d66..2324d03 100644 --- a/src/main/java/com/lf/server/service/all/RedisService.java +++ b/src/main/java/com/lf/server/service/all/RedisService.java @@ -1,9 +1,13 @@ package com.lf.server.service.all; +import com.lf.server.entity.all.SettingData; +import com.lf.server.entity.ctrl.CountEntity; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; @@ -13,7 +17,7 @@ */ @Service("redisService") public class RedisService { - @Autowired + @Resource private RedisTemplate<String, Object> redisTemplate; /** @@ -99,4 +103,34 @@ redisTemplate.delete(keys); } } + + /** + * 鏍规嵁Key鑾峰彇List闆嗗悎 + */ + public <T> List<T> getListByKey(String key) { + Object obj = get(key); + if (obj instanceof List<?>) { + return (List<T>) obj; + } + + return null; + } + + /** + * 鏍规嵁Key淇濆瓨鏁版嵁 + */ + public <T> void saveListByKey(String key, List<T> list) { + if (null != list && list.size() > 0) { + put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES); + } + } + + /** + * 鏍规嵁Key淇濆瓨鏁版嵁 + */ + public <T> void saveListByKey(String key, List<T> list, Integer minutes) { + if (null != list && list.size() > 0) { + put(key, list, minutes, TimeUnit.MINUTES); + } + } } diff --git a/src/main/java/com/lf/server/service/sys/ReportService.java b/src/main/java/com/lf/server/service/sys/ReportService.java index c61f3c6..d61a5f3 100644 --- a/src/main/java/com/lf/server/service/sys/ReportService.java +++ b/src/main/java/com/lf/server/service/sys/ReportService.java @@ -21,7 +21,6 @@ import javax.servlet.http.HttpServletResponse; import java.io.File; import java.util.*; -import java.util.concurrent.TimeUnit; /** * 鎶ュ憡妯℃澘 @@ -131,15 +130,11 @@ @Override public List<CountEntity> countExplorationPoints() { String key = RedisCacheKey.dataCountKey("countExplorationPoints"); - Object obj = redisService.get(key); - if (obj instanceof List<?>) { - return (List<CountEntity>) obj; - } - - List<CountEntity> list = reportMapper.countExplorationPoints(); - if (null != list && list.size() > 0) { + List<CountEntity> list = redisService.getListByKey(key); + if (null == list) { + list = reportMapper.countExplorationPoints(); countExplorationArea(list); - redisService.put(key, list, StaticData.I2, TimeUnit.MINUTES); + redisService.saveListByKey(key, list, StaticData.I2); } return list; @@ -154,6 +149,9 @@ * 缁熻閽诲瓟鐐归潰绉� */ private void countExplorationArea(List<CountEntity> list) { + if (null == list) { + return; + } for (CountEntity ce : list) { if (0 == ce.getCount()) { continue; -- Gitblit v1.9.3