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