refactor: 获取当前登录用户信息优化
This commit is contained in:
@@ -19,7 +19,7 @@ import com.youlai.boot.system.model.dto.UserImportDTO;
|
||||
import com.youlai.boot.system.model.entity.User;
|
||||
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.dto.CurrentUserDTO;
|
||||
import com.youlai.boot.system.model.vo.UserPageVO;
|
||||
import com.youlai.boot.system.model.vo.UserProfileVO;
|
||||
import com.youlai.boot.system.service.UserService;
|
||||
@@ -128,9 +128,9 @@ public class UserController {
|
||||
@Operation(summary = "获取当前登录用户信息")
|
||||
@GetMapping("/me")
|
||||
@Log(value = "获取当前登录用户信息", module = LogModuleEnum.USER)
|
||||
public Result<UserInfoVO> getCurrentUserInfo() {
|
||||
UserInfoVO userInfoVO = userService.getCurrentUserInfo();
|
||||
return Result.success(userInfoVO);
|
||||
public Result<CurrentUserDTO> getCurrentUser() {
|
||||
CurrentUserDTO currentUserDTO = userService.getCurrentUser();
|
||||
return Result.success(currentUserDTO);
|
||||
}
|
||||
|
||||
@Operation(summary = "用户导入模板下载")
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.youlai.boot.system.converter;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.boot.common.model.Option;
|
||||
import com.youlai.boot.system.model.entity.User;
|
||||
import com.youlai.boot.system.model.vo.UserInfoVO;
|
||||
import com.youlai.boot.system.model.dto.CurrentUserDTO;
|
||||
import com.youlai.boot.system.model.vo.UserPageVO;
|
||||
import com.youlai.boot.system.model.vo.UserProfileVO;
|
||||
import com.youlai.boot.system.model.bo.UserBO;
|
||||
@@ -38,12 +38,12 @@ public interface UserConverter {
|
||||
@Mappings({
|
||||
@Mapping(target = "userId", source = "id")
|
||||
})
|
||||
UserInfoVO toUserInfoVo(User entity);
|
||||
CurrentUserDTO toCurrentUserDto(User entity);
|
||||
|
||||
User toEntity(UserImportDTO vo);
|
||||
|
||||
|
||||
UserProfileVO toProfileVO(UserBO bo);
|
||||
UserProfileVO toProfileVo(UserBO bo);
|
||||
|
||||
User toEntity(UserProfileForm formData);
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.system.model.vo;
|
||||
package com.youlai.boot.system.model.dto;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
@@ -6,14 +6,14 @@ import lombok.Data;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 用户登录视图对象
|
||||
* 当前登录用户对象
|
||||
*
|
||||
* @author haoxr
|
||||
* @since 2022/1/14
|
||||
*/
|
||||
@Schema(description ="当前登录用户视图对象")
|
||||
@Schema(description ="当前登录用户对象")
|
||||
@Data
|
||||
public class UserInfoVO {
|
||||
public class CurrentUserDTO {
|
||||
|
||||
@Schema(description="用户ID")
|
||||
private Long userId;
|
||||
@@ -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();
|
||||
|
||||
/**
|
||||
* 获取个人中心用户信息
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user