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