From 7264d09d329cf0ff533d59fa6b7a01c605fa5b8c Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期五, 14 七月 2023 14:36:26 +0800
Subject: [PATCH] 添加查询图层的缓存功能

---
 src/main/java/com/lf/server/controller/data/PublishController.java |   18 ++++++++-
 src/main/java/com/lf/server/service/data/LayerService.java         |   28 ++++++++++++-
 src/main/java/com/lf/server/controller/data/LayerController.java   |   18 +++++++++
 src/main/java/com/lf/server/service/all/PermsService.java          |    5 +-
 src/main/java/com/lf/server/entity/all/RedisCacheKey.java          |    7 +++
 5 files changed, 69 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/lf/server/controller/data/LayerController.java b/src/main/java/com/lf/server/controller/data/LayerController.java
index 91e96d0..08c1f42 100644
--- a/src/main/java/com/lf/server/controller/data/LayerController.java
+++ b/src/main/java/com/lf/server/controller/data/LayerController.java
@@ -139,6 +139,9 @@
             }
 
             int count = layerService.insert(entity);
+            if (count > 0) {
+                layerService.clearCache();
+            }
 
             return success(count);
         } catch (Exception ex) {
@@ -162,6 +165,9 @@
             }
 
             int count = layerService.inserts(list);
+            if (count > 0) {
+                layerService.clearCache();
+            }
 
             return success(count);
         } catch (Exception ex) {
@@ -178,6 +184,9 @@
     public ResponseMsg<Integer> delete(int id) {
         try {
             int count = layerService.delete(id);
+            if (count > 0) {
+                layerService.clearCache();
+            }
 
             return success(count);
         } catch (Exception ex) {
@@ -198,6 +207,9 @@
             }
 
             int count = layerService.deletes(ids);
+            if (count > 0) {
+                layerService.clearCache();
+            }
 
             return success(count);
         } catch (Exception ex) {
@@ -220,6 +232,9 @@
             }
 
             int count = layerService.update(entity);
+            if (count > 0) {
+                layerService.clearCache();
+            }
 
             return success(count);
         } catch (Exception ex) {
@@ -244,6 +259,9 @@
             }
 
             int count = layerService.updates(list);
+            if (count > 0) {
+                layerService.clearCache();
+            }
 
             return success(count);
         } catch (Exception ex) {
diff --git a/src/main/java/com/lf/server/controller/data/PublishController.java b/src/main/java/com/lf/server/controller/data/PublishController.java
index b28ab65..bd61d51 100644
--- a/src/main/java/com/lf/server/controller/data/PublishController.java
+++ b/src/main/java/com/lf/server/controller/data/PublishController.java
@@ -9,6 +9,7 @@
 import com.lf.server.entity.sys.UserEntity;
 import com.lf.server.helper.StringHelper;
 import com.lf.server.helper.WebHelper;
+import com.lf.server.service.data.LayerService;
 import com.lf.server.service.data.PublishService;
 import com.lf.server.service.sys.TokenService;
 import io.swagger.annotations.Api;
@@ -18,6 +19,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 
@@ -29,11 +31,14 @@
 @RestController
 @RequestMapping("/publish")
 public class PublishController extends BaseController {
-    @Autowired
+    @Resource
     PublishService publishService;
 
-    @Autowired
+    @Resource
     TokenService tokenService;
+
+    @Resource
+    LayerService layerService;
 
     @SysLog()
     @ApiOperation(value = "鍒嗛〉鏌ヨ鍏冩暟鎹�")
@@ -190,6 +195,9 @@
 
             String method = getConvertMethod(entity.getType());
             long count = publishService.postForPub(entity, method, req);
+            if (count > 0) {
+                layerService.clearCache();
+            }
 
             return success(count);
         } catch (Exception ex) {
@@ -241,6 +249,9 @@
 
             publishService.deleteFiles(list);
             int count = publishService.deletes(ids, req);
+            if (count > 0) {
+                layerService.clearCache();
+            }
 
             return success(count);
         } catch (Exception ex) {
@@ -263,6 +274,9 @@
             }
 
             int count = publishService.update(entity);
+            if (count > 0) {
+                layerService.clearCache();
+            }
 
             return success(count);
         } catch (Exception ex) {
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 27bff13..0699458 100644
--- a/src/main/java/com/lf/server/entity/all/RedisCacheKey.java
+++ b/src/main/java/com/lf/server/entity/all/RedisCacheKey.java
@@ -41,6 +41,13 @@
     }
 
     /**
+     * 鍥惧眰鎺堟潈閿�
+     */
+    public static String permsLayerKey(String key) {
+        return "perms:layer:" + key;
+    }
+
+    /**
      * 鑿滃崟鎺堟潈閿�
      */
     public static String permsMenusKey(String 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 4b62e45..3292b96 100644
--- a/src/main/java/com/lf/server/service/all/PermsService.java
+++ b/src/main/java/com/lf/server/service/all/PermsService.java
@@ -6,6 +6,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
@@ -15,10 +16,10 @@
  */
 @Service
 public class PermsService implements PermsMapper {
-    @Autowired
+    @Resource
     PermsMapper permsMapper;
 
-    @Autowired
+    @Resource
     RedisService redisService;
 
     @Override
diff --git a/src/main/java/com/lf/server/service/data/LayerService.java b/src/main/java/com/lf/server/service/data/LayerService.java
index bbb6aa5..25cfe10 100644
--- a/src/main/java/com/lf/server/service/data/LayerService.java
+++ b/src/main/java/com/lf/server/service/data/LayerService.java
@@ -1,12 +1,16 @@
 package com.lf.server.service.data;
 
+import com.lf.server.entity.all.RedisCacheKey;
+import com.lf.server.entity.all.SettingData;
 import com.lf.server.entity.data.LayerEntity;
 import com.lf.server.helper.StringHelper;
 import com.lf.server.mapper.data.LayerMapper;
-import org.springframework.beans.factory.annotation.Autowired;
+import com.lf.server.service.all.RedisService;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 /**
  * 鍥惧眰
@@ -14,8 +18,11 @@
  */
 @Service
 public class LayerService implements LayerMapper {
-    @Autowired
+    @Resource
     LayerMapper layerMapper;
+
+    @Resource
+    RedisService redisService;
 
     @Override
     public Integer selectCount(String cnName) {
@@ -33,7 +40,22 @@
 
     @Override
     public List<LayerEntity> selectAll() {
-        return layerMapper.selectAll();
+        String key = RedisCacheKey.permsLayerKey("");
+        Object obj = redisService.get(key);
+        if (obj instanceof List<?>) {
+            return (List<LayerEntity>) obj;
+        }
+
+        List<LayerEntity> list = layerMapper.selectAll();
+        if (list != null && list.size() > 0) {
+            redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES);
+        }
+
+        return list;
+    }
+
+    public void clearCache() {
+        redisService.clearKeys(RedisCacheKey.permsLayerKey(""));
     }
 
     @Override

--
Gitblit v1.9.3