mirror of
https://gitee.com/republicline/rax-remote-v2.git
synced 2025-08-24 04:04:57 +08:00
fix: 修复前台注册和后台添加用户的冲突
This commit is contained in:
parent
14167a0343
commit
ef57152bfb
|
@ -53,7 +53,8 @@ public class UserDTO extends SysUser {
|
|||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "UserDTO{" +
|
||||
String string = super.toString();
|
||||
return string + "UserDTO{" +
|
||||
"userId=" + getUserId() + '\'' +
|
||||
", username='" + getUsername() + '\'' +
|
||||
"role=" + role +
|
||||
|
|
|
@ -35,6 +35,7 @@ public class SysRegisterController {
|
|||
@SysLog("注册用户")
|
||||
@PostMapping("/user")
|
||||
public R<Boolean> registerUser(@RequestBody UserDTO userDto) {
|
||||
System.out.println("reigster-UserDto = " + userDto);
|
||||
return userService.registerUser(userDto);
|
||||
}
|
||||
|
||||
|
|
|
@ -141,6 +141,7 @@ public class SysUserController {
|
|||
if (!accountMatches) {
|
||||
return R.failed("用户名至少2~16位字母或数字(区分大小写)");
|
||||
}
|
||||
System.out.println("addUser = " + userDto);
|
||||
return R.ok(userService.saveUser(userDto));
|
||||
}
|
||||
|
||||
|
|
|
@ -128,4 +128,11 @@ public interface SysUserService extends IService<SysUser> {
|
|||
|
||||
Map getCountByDate(String startTime, String endTime);
|
||||
|
||||
/**
|
||||
* 此函数用于前台注册用户
|
||||
* @param userDto
|
||||
* @return
|
||||
*/
|
||||
Boolean regUser(UserDTO userDto);
|
||||
|
||||
}
|
||||
|
|
|
@ -87,6 +87,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
*
|
||||
* @param userDto DTO 对象
|
||||
* @return success/fail
|
||||
* 此保存用于后台添加用户信息.
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
|
@ -137,6 +138,55 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param userDto DTO 对象
|
||||
* @return success/fail
|
||||
* 此保存用于前台注册用户信息.
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean regUser(UserDTO userDto) {
|
||||
SysUser sysUser = new SysUser();
|
||||
BeanUtils.copyProperties(userDto, sysUser);
|
||||
sysUser.setDelFlag(CommonConstants.STATUS_NORMAL);
|
||||
sysUser.setCreateBy(userDto.getUsername());
|
||||
sysUser.setPassword(ENCODER.encode(userDto.getPassword()));
|
||||
|
||||
sysUser.setHospitalId(userDto.getHospitalId());
|
||||
|
||||
baseMapper.insert(sysUser);
|
||||
// 保存用户岗位信息
|
||||
Optional.ofNullable(userDto.getPost()).ifPresent(posts -> {
|
||||
posts.stream().map(postId -> {
|
||||
SysUserPost userPost = new SysUserPost();
|
||||
userPost.setUserId(sysUser.getUserId());
|
||||
userPost.setPostId(postId);
|
||||
return userPost;
|
||||
}).forEach(sysUserPostMapper::insert);
|
||||
});
|
||||
|
||||
// 如果角色为空,赋默认角色
|
||||
if (CollUtil.isEmpty(userDto.getRole())) {
|
||||
// 获取默认角色编码
|
||||
String defaultRole = ParamResolver.getStr("USER_DEFAULT_ROLE");
|
||||
// 默认角色
|
||||
SysRole sysRole = sysRoleService
|
||||
.getOne(Wrappers.<SysRole>lambdaQuery().eq(SysRole::getRoleCode, defaultRole));
|
||||
userDto.setRole(Collections.singletonList(sysRole.getRoleId()));
|
||||
}
|
||||
|
||||
// 插入用户角色关系表
|
||||
userDto.getRole().stream().map(roleId -> {
|
||||
SysUserRole userRole = new SysUserRole();
|
||||
userRole.setUserId(sysUser.getUserId());
|
||||
userRole.setRoleId(roleId);
|
||||
return userRole;
|
||||
}).forEach(sysUserRoleMapper::insert);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过查用户的全部信息
|
||||
*
|
||||
|
@ -448,6 +498,17 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
return R.failed("用户名至少2~16位字母或数字(区分大小写)");
|
||||
}
|
||||
|
||||
if (userDto.getHospitalId() == null) {
|
||||
return R.failed("请选择医院");
|
||||
}
|
||||
|
||||
// 查询所有医院ID
|
||||
List<Long> hospitalIdList = sysHospitalService.list()
|
||||
.stream()
|
||||
.map(SysHospital::getId).toList();
|
||||
if (!hospitalIdList.contains(userDto.getHospitalId())) {
|
||||
return R.failed("医院不存在");
|
||||
}
|
||||
|
||||
// 判断用户名是否存在
|
||||
SysUser sysUser = this.getOne(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getUsername, userDto.getUsername()));
|
||||
|
@ -455,7 +516,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
String message = MsgUtils.getMessage(ErrorCodes.SYS_USER_USERNAME_EXISTING, userDto.getUsername());
|
||||
return R.failed(message);
|
||||
}
|
||||
return R.ok(saveUser(userDto));
|
||||
return R.ok(regUser(userDto));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue
Block a user