package com.moon.server.service.all; 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 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 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 selectResList(String uid) { String key = RedisCacheKey.permsResListKey(uid); Object obj = redisService.get(key); if (obj instanceof List) { return (List) obj; } List list = permsMapper.selectResList(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 clearResCache() { redisService.clearKeys(RedisCacheKey.permsResKey("")); redisService.clearKeys(RedisCacheKey.permsResListKey("")); } public void clearPermsCache() { redisService.clearKeys(RedisCacheKey.permsRootKey()); } public void clearAllCache() { redisService.clearAll(); } }