From ef57152bfbec3dd284d46e3a359d67409032618c Mon Sep 17 00:00:00 2001 From: republicline <1464474399@qq.com> Date: Tue, 8 Oct 2024 13:10:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=89=8D=E5=8F=B0?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E5=92=8C=E5=90=8E=E5=8F=B0=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=9A=84=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/rax/admin/api/dto/UserDTO.java | 3 +- .../controller/SysRegisterController.java | 1 + .../admin/controller/SysUserController.java | 1 + .../com/rax/admin/service/SysUserService.java | 7 +++ .../service/impl/SysUserServiceImpl.java | 63 ++++++++++++++++++- 5 files changed, 73 insertions(+), 2 deletions(-) diff --git a/upms/upms-api/src/main/java/com/rax/admin/api/dto/UserDTO.java b/upms/upms-api/src/main/java/com/rax/admin/api/dto/UserDTO.java index b24d703..2623fe1 100644 --- a/upms/upms-api/src/main/java/com/rax/admin/api/dto/UserDTO.java +++ b/upms/upms-api/src/main/java/com/rax/admin/api/dto/UserDTO.java @@ -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 + diff --git a/upms/upms-biz/src/main/java/com/rax/admin/controller/SysRegisterController.java b/upms/upms-biz/src/main/java/com/rax/admin/controller/SysRegisterController.java index c269cf5..3c823ec 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/controller/SysRegisterController.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/controller/SysRegisterController.java @@ -35,6 +35,7 @@ public class SysRegisterController { @SysLog("注册用户") @PostMapping("/user") public R registerUser(@RequestBody UserDTO userDto) { + System.out.println("reigster-UserDto = " + userDto); return userService.registerUser(userDto); } diff --git a/upms/upms-biz/src/main/java/com/rax/admin/controller/SysUserController.java b/upms/upms-biz/src/main/java/com/rax/admin/controller/SysUserController.java index 3bf3e4f..5a01deb 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/controller/SysUserController.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/controller/SysUserController.java @@ -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)); } diff --git a/upms/upms-biz/src/main/java/com/rax/admin/service/SysUserService.java b/upms/upms-biz/src/main/java/com/rax/admin/service/SysUserService.java index 5d6ef2c..5325ea8 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/service/SysUserService.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/service/SysUserService.java @@ -128,4 +128,11 @@ public interface SysUserService extends IService { Map getCountByDate(String startTime, String endTime); + /** + * 此函数用于前台注册用户 + * @param userDto + * @return + */ + Boolean regUser(UserDTO userDto); + } diff --git a/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysUserServiceImpl.java b/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysUserServiceImpl.java index 8a2d4fa..6f73c78 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysUserServiceImpl.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysUserServiceImpl.java @@ -87,6 +87,7 @@ public class SysUserServiceImpl extends ServiceImpl impl * * @param userDto DTO 对象 * @return success/fail + * 此保存用于后台添加用户信息. */ @Override @Transactional(rollbackFor = Exception.class) @@ -137,6 +138,55 @@ public class SysUserServiceImpl extends ServiceImpl 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.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 impl return R.failed("用户名至少2~16位字母或数字(区分大小写)"); } + if (userDto.getHospitalId() == null) { + return R.failed("请选择医院"); + } + + // 查询所有医院ID + List hospitalIdList = sysHospitalService.list() + .stream() + .map(SysHospital::getId).toList(); + if (!hospitalIdList.contains(userDto.getHospitalId())) { + return R.failed("医院不存在"); + } // 判断用户名是否存在 SysUser sysUser = this.getOne(Wrappers.lambdaQuery().eq(SysUser::getUsername, userDto.getUsername())); @@ -455,7 +516,7 @@ public class SysUserServiceImpl extends ServiceImpl 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)); } /**