feat: 优化修改密码逻辑
parent
c4da5decd4
commit
38ce347a06
|
|
@ -395,16 +395,9 @@ public class UserUpdateExe {
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public boolean updatePasswordFromApp(AppUserUpdatePassWordCmd cmd) {
|
public boolean updatePasswordFromApp(AppUserUpdatePassWordCmd cmd) {
|
||||||
//新密码和旧密码不能相同
|
UserUpdatePassWordCmd userUpdatePassWordCmd = new UserUpdatePassWordCmd();
|
||||||
if (cmd.getPassword().equals(cmd.getNewPassword())) {
|
BeanUtils.copyProperties(cmd, userUpdatePassWordCmd);
|
||||||
throw new BizException("新密码不能与旧密码相同");
|
executeUpdatePassword(userUpdatePassWordCmd);
|
||||||
}
|
|
||||||
UserE userE = new UserE();
|
|
||||||
userE.checkPassword(cmd.getNewPassword(), cmd.getConfirmPassword());
|
|
||||||
|
|
||||||
BeanUtils.copyProperties(cmd, userE);
|
|
||||||
userE.encryptionPassword();
|
|
||||||
userGateway.updatePassword(userE);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -422,6 +415,10 @@ public class UserUpdateExe {
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Response executeUpdatePassword(UserUpdatePassWordCmd userUpdatePassWordCmd) {
|
public Response executeUpdatePassword(UserUpdatePassWordCmd userUpdatePassWordCmd) {
|
||||||
UserE userE = new UserE();
|
UserE userE = new UserE();
|
||||||
|
if (userUpdatePassWordCmd.getPassword().equals(userUpdatePassWordCmd.getNewPassword())) {
|
||||||
|
throw new BizException("新密码不能与旧密码相同");
|
||||||
|
}
|
||||||
|
userE.checkPassword(userUpdatePassWordCmd.getNewPassword(), userUpdatePassWordCmd.getConfirmPassword());
|
||||||
BeanUtils.copyProperties(userUpdatePassWordCmd, userE);
|
BeanUtils.copyProperties(userUpdatePassWordCmd, userE);
|
||||||
userE.encryptionPassword();
|
userE.encryptionPassword();
|
||||||
return userGateway.updatePassword(userE);
|
return userGateway.updatePassword(userE);
|
||||||
|
|
|
||||||
|
|
@ -30,5 +30,8 @@ public class UserUpdatePassWordCmd extends Command {
|
||||||
@ApiModelProperty(value = "新密码", name = "newPassword")
|
@ApiModelProperty(value = "新密码", name = "newPassword")
|
||||||
@NotEmpty(message = "新密码不能为空")
|
@NotEmpty(message = "新密码不能为空")
|
||||||
private String newPassword;
|
private String newPassword;
|
||||||
|
@ApiModelProperty(value = "确认密码", name = "confirmPassword")
|
||||||
|
@NotEmpty(message = "确认密码不能为空")
|
||||||
|
private String confirmPassword;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -543,37 +543,35 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
|
||||||
@Override
|
@Override
|
||||||
public Response updatePassword(UserDO userDO) {
|
public Response updatePassword(UserDO userDO) {
|
||||||
UserDO oldUserDO = getById(userDO.getId());
|
UserDO oldUserDO = getById(userDO.getId());
|
||||||
// TODO 验证老密码是否正确
|
if (userDO.getPassword() == null || userDO.getPassword().isEmpty()) {
|
||||||
if (userDO.getPassword() != null && !userDO.getPassword().equals("")) {
|
throw new BizException("原密码不能为空");
|
||||||
SingleResponse<UserDetailCO> detail = null;
|
}
|
||||||
try {
|
SingleResponse<UserDetailCO> detail = null;
|
||||||
log.info("updateXgf,GBS获取用户信息{}", userDO.getId());
|
try {
|
||||||
detail = userFacade.getDetail(userDO.getId());
|
log.info("updateXgf,GBS获取用户信息{}", userDO.getId());
|
||||||
log.info("updateXgf,GBS获取用户信息返回: {}", JSONUtil.toJsonStr(detail));
|
detail = userFacade.getDetail(userDO.getId());
|
||||||
} catch (Exception e) {
|
log.info("updateXgf,GBS获取用户信息返回: {}", JSONUtil.toJsonStr(detail));
|
||||||
log.error("updateXgf,GBS获取用户信息失败: {}", e.getMessage());
|
} catch (Exception e) {
|
||||||
}
|
log.error("updateXgf,GBS获取用户信息失败: {}", e.getMessage());
|
||||||
if (detail.getData() != null) {
|
}
|
||||||
AccountPasswordCheckCmd accountPasswordCheckCmd = new AccountPasswordCheckCmd();
|
if (detail.getData() != null) {
|
||||||
accountPasswordCheckCmd.setUserId(userDO.getId());
|
AccountPasswordCheckCmd accountPasswordCheckCmd = new AccountPasswordCheckCmd();
|
||||||
accountPasswordCheckCmd.setPassword(userDO.getPassword());
|
accountPasswordCheckCmd.setUserId(userDO.getId());
|
||||||
log.info("updateXgf,GBS验证用户密码请求:{}", JSONUtil.toJsonStr(accountPasswordCheckCmd));
|
accountPasswordCheckCmd.setPassword(userDO.getPassword());
|
||||||
SingleResponse<Long> response = accountFacade.checkPassword(accountPasswordCheckCmd);
|
log.info("updateXgf,GBS验证用户密码请求:{}", JSONUtil.toJsonStr(accountPasswordCheckCmd));
|
||||||
log.info("updateXgf,GBS验证用户密码返回:{}", JSONUtil.toJsonStr(response));
|
SingleResponse<Long> response = accountFacade.checkPassword(accountPasswordCheckCmd);
|
||||||
if (!response.isSuccess()) {
|
log.info("updateXgf,GBS验证用户密码返回:{}", JSONUtil.toJsonStr(response));
|
||||||
throw new BizException("原密码不正确");
|
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("密码错误");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} 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("密码错误");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//修改多个密码
|
//修改多个密码
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue