package com.terra.system.service.all; import com.terra.system.entity.all.*; import com.terra.system.entity.sys.MenuEntity; import com.terra.system.mapper.all.PermsMapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; import java.util.concurrent.TimeUnit; /** * 授权服务 * @author WWW */ @Service public class PermsService implements PermsMapper { @Resource PermsMapper permsMapper; @Resource RedisService redisService; @Override public List selectRes(String uid) { String key = RedisCacheKey.permsResKey(uid); Object obj = redisService.get(key); if (obj instanceof List) { return (List) obj; } List list = permsMapper.selectRes(uid); if (list != null && list.size() > 0) { redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES); } return list; } @Override public List selectMenus(String uid) { String key = RedisCacheKey.permsMenusKey(uid); Object obj = redisService.get(key); if (obj instanceof List) { return (List) obj; } List list = permsMapper.selectMenus(uid); if (list != null && list.size() > 0) { redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES); } return list; } @Override public List selectPerms(String uid) { String key = RedisCacheKey.permsPermsKey(uid); Object obj = redisService.get(key); if (obj instanceof List) { return (List) obj; } List list = permsMapper.selectPerms(uid); if (list != null && list.size() > 0) { redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES); } return list; } @Override public List selectPermsEntity(String uid) { String key = RedisCacheKey.permsPermsEntityKey(uid); Object obj = redisService.get(key); if (obj instanceof List) { return (List) obj; } List list = permsMapper.selectPermsEntity(uid); if (list != null && list.size() > 0) { redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES); } return list; } @Override public List selectRoles(String uid) { return permsMapper.selectRoles(uid); } @Override public List selectMenuRecursive(int id, String uid) { return permsMapper.selectMenuRecursive(id, uid); } /** * 清除授权缓存 */ public void clearPermsCache() { redisService.clearKeys(RedisCacheKey.permsRootKey()); } /** * 清除所有缓存 */ public void clearAllCache() { redisService.clearAll(); } }