feat: 优化修改密码逻辑

komen
lishiwei 2026-07-28 14:29:20 +08:00
parent ef0dddf572
commit 3b940c0619
3 changed files with 37 additions and 39 deletions

View File

@ -420,16 +420,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;
}
@ -447,6 +440,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);

View File

@ -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;
}

View File

@ -578,8 +578,9 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
@Override
public Response updatePassword(UserDO userDO) {
UserDO oldUserDO = getById(userDO.getId());
// TODO 验证老密码是否正确
if (userDO.getPassword() != null && !userDO.getPassword().equals("")) {
if (userDO.getPassword() == null || userDO.getPassword().isEmpty()) {
throw new BizException("原密码不能为空");
}
SingleResponse<UserDetailCO> detail = null;
try {
log.info("updateXgf,GBS获取用户信息{}", userDO.getId());
@ -607,9 +608,6 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
throw new BizException("密码错误");
}
}
} else {
log.info("updateXgf,密码为空,不进行密码验证");
}
//修改多个密码
String phone = oldUserDO.getPhone();