From cb9fbcd27a288d0c61d85fa13ff5fc8eb1f4deab Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 18 三月 2023 16:44:56 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/service/all/PermsService.java |   90 ++++++++++++++++++++++++++++++++++++---------
 1 files changed, 72 insertions(+), 18 deletions(-)

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 682ed80..4b62e45 100644
--- a/src/main/java/com/lf/server/service/all/PermsService.java
+++ b/src/main/java/com/lf/server/service/all/PermsService.java
@@ -1,14 +1,13 @@
 package com.lf.server.service.all;
 
-import com.lf.server.entity.all.MenusAuthEntity;
-import com.lf.server.entity.all.PermsAuthEntity;
-import com.lf.server.entity.all.ResAuthEntity;
-import com.lf.server.helper.StringHelper;
+import com.lf.server.entity.all.*;
+import com.lf.server.entity.sys.MenuEntity;
 import com.lf.server.mapper.all.PermsMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 /**
  * 鎺堟潈鏈嶅姟
@@ -19,39 +18,94 @@
     @Autowired
     PermsMapper permsMapper;
 
+    @Autowired
+    RedisService redisService;
+
     @Override
     public List<ResAuthEntity> selectRes(String uid) {
-        if (StringHelper.isEmpty(uid)) {
-            return null;
+        String key = RedisCacheKey.permsResKey(uid);
+        Object obj = redisService.get(key);
+        if (obj instanceof List<?>) {
+            return (List<ResAuthEntity>) obj;
         }
 
-        return permsMapper.selectRes(uid);
+        List<ResAuthEntity> list = permsMapper.selectRes(uid);
+        if (list != null && list.size() > 0) {
+            redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES);
+        }
+
+        return list;
     }
 
     @Override
     public List<MenusAuthEntity> selectMenus(String uid) {
-        if (StringHelper.isEmpty(uid)) {
-            return null;
+        String key = RedisCacheKey.permsMenusKey(uid);
+        Object obj = redisService.get(key);
+        if (obj instanceof List<?>) {
+            return (List<MenusAuthEntity>) obj;
         }
 
-        return permsMapper.selectMenus(uid);
+        List<MenusAuthEntity> list = permsMapper.selectMenus(uid);
+        if (list != null && list.size() > 0) {
+            redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES);
+        }
+
+        return list;
     }
 
     @Override
-    public List<PermsAuthEntity> selectPerms(String uid) {
-        if (StringHelper.isEmpty(uid)) {
-            return null;
+    public List<String> selectPerms(String uid) {
+        String key = RedisCacheKey.permsPermsKey(uid);
+        Object obj = redisService.get(key);
+        if (obj instanceof List<?>) {
+            return (List<String>) obj;
         }
 
-        return permsMapper.selectPerms(uid);
+        List<String> list = permsMapper.selectPerms(uid);
+        if (list != null && list.size() > 0) {
+            redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES);
+        }
+
+        return list;
     }
 
     @Override
-    public List<String> selectPerms2(String uid) {
-        if (StringHelper.isEmpty(uid)) {
-            return null;
+    public List<PermsAuthEntity> selectPermsEntity(String uid) {
+        String key = RedisCacheKey.permsPermsEntityKey(uid);
+        Object obj = redisService.get(key);
+        if (obj instanceof List<?>) {
+            return (List<PermsAuthEntity>) obj;
         }
 
-        return permsMapper.selectPerms2(uid);
+        List<PermsAuthEntity> list = permsMapper.selectPermsEntity(uid);
+        if (list != null && list.size() > 0) {
+            redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES);
+        }
+
+        return list;
+    }
+
+    @Override
+    public List<Integer> selectRoles(String uid) {
+        return permsMapper.selectRoles(uid);
+    }
+
+    @Override
+    public List<MenuEntity> selectMenuRecursive(int id, String uid) {
+        return permsMapper.selectMenuRecursive(id, uid);
+    }
+
+    public void clearResCache() {
+        redisService.clearKeys(RedisCacheKey.permsResKey(""));
+    }
+
+    public void clearPermsCache() {
+        redisService.clearKeys(RedisCacheKey.permsMenusKey(""));
+        redisService.clearKeys(RedisCacheKey.permsPermsKey(""));
+        redisService.clearKeys(RedisCacheKey.permsPermsEntityKey(""));
+    }
+
+    public void clearAllCache() {
+        redisService.clearKeys(RedisCacheKey.permsRootKey());
     }
 }

--
Gitblit v1.9.3