From ab849f796bdc17236a95ea5fe5c166fb8f24a75c Mon Sep 17 00:00:00 2001
From: sws <15810472099@163.com>
Date: 星期六, 26 十一月 2022 16:12:02 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/service/all/PermsService.java |  117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 117 insertions(+), 0 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
new file mode 100644
index 0000000..8c47fa1
--- /dev/null
+++ b/src/main/java/com/lf/server/service/all/PermsService.java
@@ -0,0 +1,117 @@
+package com.lf.server.service.all;
+
+import com.lf.server.entity.all.*;
+import com.lf.server.helper.StringHelper;
+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;
+
+/**
+ * 鎺堟潈鏈嶅姟
+ * @author WWW
+ */
+@Service
+public class PermsService implements PermsMapper {
+    @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;
+        }
+
+        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;
+        }
+
+        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<String> selectPerms(String uid) {
+        if (StringHelper.isEmpty(uid)) {
+            return null;
+        }
+
+        String key = RedisCacheKey.permsPermsKey(uid);
+        Object obj = redisService.get(key);
+        if (obj instanceof List<?>) {
+            return (List<String>) obj;
+        }
+
+        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<PermsAuthEntity> selectPermsEntity(String uid) {
+        if (StringHelper.isEmpty(uid)) {
+            return null;
+        }
+
+        String key = RedisCacheKey.permsPermsEntityKey(uid);
+        Object obj = redisService.get(key);
+        if (obj instanceof List<?>) {
+            return (List<PermsAuthEntity>) obj;
+        }
+
+        List<PermsAuthEntity> list = permsMapper.selectPermsEntity(uid);
+        if (list != null && list.size() > 0) {
+            redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES);
+        }
+
+        return list;
+    }
+
+    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