refactor(user): 优化用户创建和更新逻辑

- 修改 UserCreateDto 和 UserUpdateDto 中的 roleIds 类型从 Set 改为 List
- 更新 UserCreateDto 和 UserUpdateDto 中的 roleId 字段注释
- 调整 UserServiceImpl 中的 create 和 addUserRole 方法,以适应新的 List 类型
- 为 UserCreateDto 和 UserUpdateDto 中的 roleIds 添加 NotEmpty 注解
This commit is contained in:
zhuangtianxiang 2025-02-11 20:57:54 +08:00
parent b4da8c3bf0
commit ee8d7d16d0
3 changed files with 8 additions and 5 deletions

View File

@ -6,6 +6,7 @@ import lombok.NoArgsConstructor;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import java.util.List;
import java.util.Set; import java.util.Set;
/** /**
@ -57,7 +58,6 @@ public class UserCreateDto {
/** /**
* 用户当前身份 * 用户当前身份
*/ */
@NotEmpty(message = "角色不能为空")
public Long roleId; public Long roleId;
/** /**
* 昵称 * 昵称
@ -84,5 +84,6 @@ public class UserCreateDto {
/** /**
* 用户角色id集合 * 用户角色id集合
*/ */
public Set<Long> roleIds; @NotEmpty(message = "角色集合不能为空")
public List<Long> roleIds;
} }

View File

@ -64,11 +64,11 @@ public class UserUpdateDto {
/** /**
* 用户身份 * 用户身份
*/ */
@NotEmpty(message = "角色不能为空")
public Long roleId; public Long roleId;
public String remark; public String remark;
public Set<Long> roleIds; @NotEmpty(message = "角色集合不能为空")
public List<Long> roleIds;
} }

View File

@ -52,6 +52,7 @@ public class UserServiceImpl extends ServiceImpl<UserRepository, User> implement
@Override @Override
public Boolean create(UserCreateDto dto) { public Boolean create(UserCreateDto dto) {
User user = new User(); User user = new User();
dto.setRoleId(dto.getRoleIds().get(0));
userMapper.convert(dto, user); userMapper.convert(dto, user);
boolean saveSuccess = save(user); boolean saveSuccess = save(user);
if (!saveSuccess) { if (!saveSuccess) {
@ -76,6 +77,7 @@ public class UserServiceImpl extends ServiceImpl<UserRepository, User> implement
} }
if (dto.getRoleIds() != null && !dto.getRoleIds().isEmpty()) { if (dto.getRoleIds() != null && !dto.getRoleIds().isEmpty()) {
userRolesRepository.delete(new LambdaQueryWrapper<UserRole>().eq(UserRole::getUserId, id)); userRolesRepository.delete(new LambdaQueryWrapper<UserRole>().eq(UserRole::getUserId, id));
dto.setRoleId(dto.getRoleIds().get(0));
addUserRole(dto.getRoleIds(), user.getId()); addUserRole(dto.getRoleIds(), user.getId());
} }
BeanUtils.copyProperties(dto, user); BeanUtils.copyProperties(dto, user);
@ -155,7 +157,7 @@ public class UserServiceImpl extends ServiceImpl<UserRepository, User> implement
return userDetails; return userDetails;
} }
public Boolean addUserRole(Set<Long> roleIds, Long userId) { public Boolean addUserRole(List<Long> roleIds, Long userId) {
List<UserRole> userRoles = roleIds.stream() List<UserRole> userRoles = roleIds.stream()
.map(roleId -> { .map(roleId -> {
UserRole userRole = new UserRole(); UserRole userRole = new UserRole();