refactor: 获取当前登录用户信息优化

This commit is contained in:
Ray.Hao
2025-03-25 23:20:00 +08:00
parent 3244af424d
commit 505dcf1a73
5 changed files with 26 additions and 25 deletions

View File

@@ -3,11 +3,11 @@ package com.youlai.boot.system.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.common.model.Option;
import com.youlai.boot.system.model.dto.CurrentUserDTO;
import com.youlai.boot.system.model.dto.UserAuthInfo;
import com.youlai.boot.system.model.dto.UserExportDTO;
import com.youlai.boot.system.model.entity.User;
import com.youlai.boot.system.model.query.UserPageQuery;
import com.youlai.boot.system.model.vo.UserInfoVO;
import com.youlai.boot.system.model.vo.UserPageVO;
import com.youlai.boot.system.model.vo.UserProfileVO;
import com.youlai.boot.system.model.form.*;
@@ -87,9 +87,9 @@ public interface UserService extends IService<User> {
/**
* 获取登录用户信息
*
* @return {@link UserInfoVO} 登录用户信息
* @return {@link CurrentUserDTO} 登录用户信息
*/
UserInfoVO getCurrentUserInfo();
CurrentUserDTO getCurrentUser();
/**
* 获取个人中心用户信息

View File

@@ -22,6 +22,7 @@ import com.youlai.boot.system.converter.UserConverter;
import com.youlai.boot.system.enums.DictCodeEnum;
import com.youlai.boot.system.mapper.UserMapper;
import com.youlai.boot.system.model.bo.UserBO;
import com.youlai.boot.system.model.dto.CurrentUserDTO;
import com.youlai.boot.system.model.dto.UserAuthInfo;
import com.youlai.boot.system.model.dto.UserExportDTO;
import com.youlai.boot.system.model.entity.DictItem;
@@ -29,7 +30,6 @@ import com.youlai.boot.system.model.entity.User;
import com.youlai.boot.system.model.entity.UserRole;
import com.youlai.boot.system.model.form.*;
import com.youlai.boot.system.model.query.UserPageQuery;
import com.youlai.boot.system.model.vo.UserInfoVO;
import com.youlai.boot.system.model.vo.UserPageVO;
import com.youlai.boot.system.model.vo.UserProfileVO;
import com.youlai.boot.system.service.*;
@@ -314,15 +314,15 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
/**
* 获取登录用户信息
*
* @return {@link UserInfoVO} 用户信息
* @return {@link CurrentUserDTO} 用户信息
*/
@Override
public UserInfoVO getCurrentUserInfo() {
public CurrentUserDTO getCurrentUser() {
String username = SecurityUtils.getUsername();
// 获取登录用户基础信息
User user = this.getOne(new LambdaQueryWrapper<User>()
User user = this.lambdaQuery()
.eq(User::getUsername, username)
.select(
User::getId,
@@ -330,20 +330,21 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
User::getNickname,
User::getAvatar
)
);
// entity->VO
UserInfoVO userInfoVO = userConverter.toUserInfoVo(user);
.oneOpt()
.orElseThrow(() -> new BusinessException("用户[" + username + "]不存在"));
CurrentUserDTO currentUserDTO = userConverter.toCurrentUserDto(user);
// 用户角色集合
Set<String> roles = SecurityUtils.getRoles();
userInfoVO.setRoles(roles);
currentUserDTO.setRoles(roles);
// 用户权限集合
if (CollectionUtil.isNotEmpty(roles)) {
Set<String> perms = permissionService.getRolePermsFormCache(roles);
userInfoVO.setPerms(perms);
currentUserDTO.setPerms(perms);
}
return userInfoVO;
return currentUserDTO;
}
/**
@@ -355,7 +356,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Override
public UserProfileVO getUserProfile(Long userId) {
UserBO entity = this.baseMapper.getUserProfile(userId);
return userConverter.toProfileVO(entity);
return userConverter.toProfileVo(entity);
}
/**