From e16f5fdfbc1c49f4c519f05b190e96e497253b51 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 13 十一月 2024 17:32:14 +0800 Subject: [PATCH] 1 --- src/main/java/com/moon/server/service/all/PermsService.java | 71 ++++++++++++++++++++++++++++++----- 1 files changed, 60 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/moon/server/service/all/PermsService.java b/src/main/java/com/moon/server/service/all/PermsService.java index af884db..c22b7ec 100644 --- a/src/main/java/com/moon/server/service/all/PermsService.java +++ b/src/main/java/com/moon/server/service/all/PermsService.java @@ -2,10 +2,11 @@ import com.moon.server.entity.all.*; import com.moon.server.entity.sys.MenuEntity; +import com.moon.server.entity.sys.ResEntity; import com.moon.server.mapper.all.PermsMapper; -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,21 +16,55 @@ */ @Service public class PermsService implements PermsMapper { - @Autowired + @Resource PermsMapper permsMapper; - @Autowired + @Resource RedisService redisService; @Override - public List<ResAuthEntity> selectRes(String uid) { + public List<ResEntity> selectRes(String uid) { + return selectResByUid(uid, false); + } + + @Override + public List<ResEntity> selectAllRes() { + return selectResByUid(StaticData.ADMIN, true); + } + + private List<ResEntity> selectResByUid(String uid, boolean isAll) { String key = RedisCacheKey.permsResKey(uid); Object obj = redisService.get(key); if (obj instanceof List<?>) { - return (List<ResAuthEntity>) obj; + return (List<ResEntity>) obj; } - List<ResAuthEntity> list = permsMapper.selectRes(uid); + List<ResEntity> list = isAll ? permsMapper.selectAllRes() : permsMapper.selectRes(uid); + if (list != null && list.size() > 0) { + redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES); + } + + return list; + } + + @Override + public List<String> selectTabs(String uid) { + return selectTabsByUid(uid, false); + } + + @Override + public List<String> selectAllTabs() { + return selectTabsByUid(StaticData.ADMIN, true); + } + + private List<String> selectTabsByUid(String uid, boolean isAll) { + String key = RedisCacheKey.permsGeoTabKey(uid); + Object obj = redisService.get(key); + if (obj instanceof List<?>) { + return (List<String>) obj; + } + + List<String> list = isAll ? permsMapper.selectAllTabs() : permsMapper.selectTabs(uid); if (list != null && list.size() > 0) { redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES); } @@ -95,17 +130,31 @@ 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 clearLayerCache() { + redisService.clearKeys(RedisCacheKey.permsLayerKey("")); } - public void clearAllCache() { + /** + * 娓呴櫎鎺堟潈缂撳瓨 + */ + public void clearPermsCache() { redisService.clearKeys(RedisCacheKey.permsRootKey()); } + + /** + * 娓呴櫎鎵�鏈夌紦瀛� + */ + public void clearAllCache() { + redisService.clearAll(); + } } -- Gitblit v1.9.3