public UserDetails createLoginUser(SystemAdmin user) {
List<Integer> roles = Stream.of(user.getRoles().split(",")).map(Integer::valueOf).collect(Collectors.toList());
List<SystemMenu> menuList;
if (roles.contains(1)) {// 超级管理员
// 获取全部权限 ,优先从缓存中获取
List<SystemMenu> userMenuPermssionList = cacheService.getUserMenuPermssionList(user.getId());
if (userMenuPermssionList!=null){
menuList=userMenuPermssionList;
}else{
//缓存中没有,则从数据库中取,并且放入缓存中
menuList = systemMenuService.getAllPermissions();
cacheService.setUserMenuPermssionList(user.getId(),menuList);
}
} else {
// 获取全部权限 ,优先从缓存中获取
List<SystemMenu> userMenuPermssionList = cacheService.getUserMenuPermssionList(user.getId());
if (userMenuPermssionList!=null){
menuList=userMenuPermssionList;
}else{
//缓存中没有,则从数据库中取,并且放入缓存中
menuList = systemMenuService.findPermissionByUserId(user.getId());
cacheService.setUserMenuPermssionList(user.getId(),menuList);
}
}
menuList = menuList.stream().filter(e -> StrUtil.isNotEmpty(e.getPerms())).collect(Collectors.toList());
List<SystemPermissions> permissionsList = menuList.stream().map(e -> {
SystemPermissions permissions = new SystemPermissions();
permissions.setId(e.getId());
permissions.setPid(e.getPid());
permissions.setName(e.getName());
permissions.setPath(e.getPerms());
permissions.setSort(e.getSort());
return permissions;
}).collect(Collectors.toList());
return new AdminLoginUser(user, permissionsList);
}