Commit b3353794 by chamberone

feat: 用户信息接口返回权限相关信息

1 parent f495281b
...@@ -90,27 +90,7 @@ public class UserService { ...@@ -90,27 +90,7 @@ public class UserService {
long timestamp = System.currentTimeMillis() + LIVE_TIME_MILLIS; long timestamp = System.currentTimeMillis() + LIVE_TIME_MILLIS;
redisService.set(RedisKeyGroup.authToken + ":" + uuid, user, timestamp); redisService.set(RedisKeyGroup.authToken + ":" + uuid, user, timestamp);
UserLoginDTO userDTO = BeanUtil.copyProperties(user, UserLoginDTO.class); UserLoginDTO userDTO = convertToUserLoginDTO(user);
// 获取角色
List<UserRoleEntity> userRoles = userRoleDao.findByUserId(user.getId());
if (CollectionUtils.isNotEmpty(userRoles)) {
List<String> ids = userRoles.stream().map(r -> r.getRoleId()).collect(Collectors.toList());
List<RoleEntity> roles = roleDao.findAllById(ids);
if (CollectionUtils.isNotEmpty(roles)) {
userDTO.setRoles(roles.stream().map(r -> BeanUtil.copyProperties(r, RoleInfo.class))
.collect(Collectors.toList()));
// 获取资源
List<RoleResourceEntity> roleResources = roleResourceDao.findByRoleIdIn(ids);
if (CollectionUtils.isNotEmpty(roleResources)) {
List<String> resourceIds = roleResources.stream().map(r -> r.getResourceId())
.collect(Collectors.toList());
userDTO.setResources(resourceDao.findAllById(resourceIds).stream()
.map(r -> BeanUtil.copyProperties(r, ResourceInfo.class)).collect(Collectors.toList()));
}
}
}
userDTO.setToken(uuid); userDTO.setToken(uuid);
return Result.success(userDTO); return Result.success(userDTO);
} else { } else {
...@@ -118,9 +98,37 @@ public class UserService { ...@@ -118,9 +98,37 @@ public class UserService {
} }
} }
private UserLoginDTO convertToUserLoginDTO(UserEntity user) {
UserLoginDTO userDTO = BeanUtil.copyProperties(user, UserLoginDTO.class);
// 获取角色
List<UserRoleEntity> userRoles = userRoleDao.findByUserId(user.getId());
if (CollectionUtils.isNotEmpty(userRoles)) {
List<String> ids = userRoles.stream().map(r -> r.getRoleId()).collect(Collectors.toList());
List<RoleEntity> roles = roleDao.findAllById(ids);
if (CollectionUtils.isNotEmpty(roles)) {
userDTO.setRoles(roles.stream().map(r -> BeanUtil.copyProperties(r, RoleInfo.class))
.collect(Collectors.toList()));
// 获取资源
List<RoleResourceEntity> roleResources = roleResourceDao.findByRoleIdIn(ids);
log.info("role size:{} roleResources:{}", ids.size(), CollectionUtils.isNotEmpty(roleResources));
if (CollectionUtils.isNotEmpty(roleResources)) {
List<String> resourceIds = roleResources.stream().map(r -> r.getResourceId())
.collect(Collectors.toList());
userDTO.setResources(resourceDao.findAllById(resourceIds).stream()
.map(r -> BeanUtil.copyProperties(r, ResourceInfo.class)).collect(Collectors.toList()));
}
}
}
return userDTO;
}
public Result<?> getUserInfo(String token) { public Result<?> getUserInfo(String token) {
UserEntity user = (UserEntity) redisService.get(RedisKeyGroup.authToken + ":" + token); UserEntity user = (UserEntity) redisService.get(RedisKeyGroup.authToken + ":" + token);
return Result.success(user); UserLoginDTO userDTO = convertToUserLoginDTO(user);
userDTO.setToken(token);
return Result.success(userDTO);
} }
public String getUserName(String userId) { public String getUserName(String userId) {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!