| | |
| | | import java.util.List; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | /** |
| | | * 授权服务 |
| | | * @author WWW |
| | | */ |
| | | @Service |
| | | @SuppressWarnings("ALL") |
| | | public class PermsService implements PermsMapper { |
| | | @Resource |
| | | PermsMapper permsMapper; |
| | |
| | | |
| | | @Override |
| | | 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<ResEntity>) obj; |
| | | } |
| | | |
| | | List<ResEntity> 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); |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<ResEntity> selectAllRes() { |
| | | return permsMapper.selectAllRes(); |
| | | 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); |
| | | } |
| | | |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | |
| | | return permsMapper.selectMenuRecursive(id, uid); |
| | | } |
| | | |
| | | /** |
| | | * 清除资源缓存 |
| | | */ |
| | | public void clearResCache() { |
| | | redisService.clearKeys(RedisCacheKey.permsResKey("")); |
| | | } |
| | | |
| | | /** |
| | | * 清除图层缓存 |
| | | */ |
| | | public void clearLayerCache() { |
| | | redisService.clearKeys(RedisCacheKey.permsLayerKey("")); |
| | | } |
| | | |
| | | /** |
| | | * 清除授权缓存 |
| | | */ |
| | | public void clearPermsCache() { |
| | | redisService.clearKeys(RedisCacheKey.permsRootKey()); |
| | | } |
| | | |
| | | /** |
| | | * 清除所有缓存 |
| | | */ |
| | | public void clearAllCache() { |
| | | redisService.clearAll(); |
| | | } |