diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java index fc612380..d833c389 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java @@ -395,16 +395,9 @@ public class UserUpdateExe { @Transactional(rollbackFor = Exception.class) public boolean updatePasswordFromApp(AppUserUpdatePassWordCmd cmd) { - //新密码和旧密码不能相同 - if (cmd.getPassword().equals(cmd.getNewPassword())) { - throw new BizException("新密码不能与旧密码相同"); - } - UserE userE = new UserE(); - userE.checkPassword(cmd.getNewPassword(), cmd.getConfirmPassword()); - - BeanUtils.copyProperties(cmd, userE); - userE.encryptionPassword(); - userGateway.updatePassword(userE); + UserUpdatePassWordCmd userUpdatePassWordCmd = new UserUpdatePassWordCmd(); + BeanUtils.copyProperties(cmd, userUpdatePassWordCmd); + executeUpdatePassword(userUpdatePassWordCmd); return true; } @@ -422,6 +415,10 @@ public class UserUpdateExe { @Transactional(rollbackFor = Exception.class) public Response executeUpdatePassword(UserUpdatePassWordCmd userUpdatePassWordCmd) { UserE userE = new UserE(); + if (userUpdatePassWordCmd.getPassword().equals(userUpdatePassWordCmd.getNewPassword())) { + throw new BizException("新密码不能与旧密码相同"); + } + userE.checkPassword(userUpdatePassWordCmd.getNewPassword(), userUpdatePassWordCmd.getConfirmPassword()); BeanUtils.copyProperties(userUpdatePassWordCmd, userE); userE.encryptionPassword(); return userGateway.updatePassword(userE); diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/UserUpdatePassWordCmd.java b/web-client/src/main/java/com/zcloud/basic/info/dto/UserUpdatePassWordCmd.java index d6de65e1..1f64f7bc 100644 --- a/web-client/src/main/java/com/zcloud/basic/info/dto/UserUpdatePassWordCmd.java +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/UserUpdatePassWordCmd.java @@ -30,5 +30,8 @@ public class UserUpdatePassWordCmd extends Command { @ApiModelProperty(value = "新密码", name = "newPassword") @NotEmpty(message = "新密码不能为空") private String newPassword; + @ApiModelProperty(value = "确认密码", name = "confirmPassword") + @NotEmpty(message = "确认密码不能为空") + private String confirmPassword; } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserRepositoryImpl.java index 15de7ad5..500a69c0 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserRepositoryImpl.java @@ -543,37 +543,35 @@ public class UserRepositoryImpl extends BaseRepositoryImpl i @Override public Response updatePassword(UserDO userDO) { UserDO oldUserDO = getById(userDO.getId()); - // TODO 验证老密码是否正确 - if (userDO.getPassword() != null && !userDO.getPassword().equals("")) { - SingleResponse detail = null; - try { - log.info("updateXgf,GBS获取用户信息{}", userDO.getId()); - detail = userFacade.getDetail(userDO.getId()); - log.info("updateXgf,GBS获取用户信息返回: {}", JSONUtil.toJsonStr(detail)); - } catch (Exception e) { - log.error("updateXgf,GBS获取用户信息失败: {}", e.getMessage()); - } - if (detail.getData() != null) { - AccountPasswordCheckCmd accountPasswordCheckCmd = new AccountPasswordCheckCmd(); - accountPasswordCheckCmd.setUserId(userDO.getId()); - accountPasswordCheckCmd.setPassword(userDO.getPassword()); - log.info("updateXgf,GBS验证用户密码请求:{}", JSONUtil.toJsonStr(accountPasswordCheckCmd)); - SingleResponse response = accountFacade.checkPassword(accountPasswordCheckCmd); - log.info("updateXgf,GBS验证用户密码返回:{}", JSONUtil.toJsonStr(response)); - if (!response.isSuccess()) { - throw new BizException("原密码不正确"); - } - } else { - //验证本地密码 - UserE userE = new UserE(); - Boolean checkUserPassword = userE.checkUserEncryptionPassword(userDO.getPassword(), oldUserDO.getPassword()); - log.info("updateXgf,验证用户本地密码结果:{}", checkUserPassword); - if (!checkUserPassword) { - throw new BizException("密码错误"); - } + if (userDO.getPassword() == null || userDO.getPassword().isEmpty()) { + throw new BizException("原密码不能为空"); + } + SingleResponse detail = null; + try { + log.info("updateXgf,GBS获取用户信息{}", userDO.getId()); + detail = userFacade.getDetail(userDO.getId()); + log.info("updateXgf,GBS获取用户信息返回: {}", JSONUtil.toJsonStr(detail)); + } catch (Exception e) { + log.error("updateXgf,GBS获取用户信息失败: {}", e.getMessage()); + } + if (detail.getData() != null) { + AccountPasswordCheckCmd accountPasswordCheckCmd = new AccountPasswordCheckCmd(); + accountPasswordCheckCmd.setUserId(userDO.getId()); + accountPasswordCheckCmd.setPassword(userDO.getPassword()); + log.info("updateXgf,GBS验证用户密码请求:{}", JSONUtil.toJsonStr(accountPasswordCheckCmd)); + SingleResponse response = accountFacade.checkPassword(accountPasswordCheckCmd); + log.info("updateXgf,GBS验证用户密码返回:{}", JSONUtil.toJsonStr(response)); + if (!response.isSuccess()) { + throw new BizException("原密码不正确"); } } else { - log.info("updateXgf,密码为空,不进行密码验证"); + //验证本地密码 + UserE userE = new UserE(); + Boolean checkUserPassword = userE.checkUserEncryptionPassword(userDO.getPassword(), oldUserDO.getPassword()); + log.info("updateXgf,验证用户本地密码结果:{}", checkUserPassword); + if (!checkUserPassword) { + throw new BizException("密码错误"); + } } //修改多个密码