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<ResEntity> selectRes(String uid) {
|
String key = RedisCacheKey.permsResKey(uid);
|
Object obj = redisService.get(key);
|
if (obj instanceof List<?>) {
|
return (List<ResEntity>) obj;
|
}
|
|
List<ResEntity> 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) {
|
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) {
|
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) {
|
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;
|
}
|
|
@Override
|
public List<Integer> selectRoles(String uid) {
|
return permsMapper.selectRoles(uid);
|
}
|
|
@Override
|
public List<MenuEntity> selectMenuRecursive(int id, String uid) {
|
return permsMapper.selectMenuRecursive(id, uid);
|
}
|
|
public void clearResCache() {
|
redisService.clearKeys(RedisCacheKey.permsResKey(""));
|
}
|
|
public void clearPermsCache() {
|
redisService.clearKeys(RedisCacheKey.permsRootKey());
|
}
|
|
public void clearAllCache() {
|
redisService.clearAll();
|
}
|
}
|