fix bug 40368 忘记密码--用户名错误,手机号正确,验证码发送成功。

This commit is contained in:
lijiarao
2021-10-13 14:07:53 +08:00
parent 96bff44c59
commit 546a657e62
3 changed files with 12 additions and 4 deletions
@@ -868,7 +868,6 @@ public class SysUserController {
//@RequiresRoles({"admin"})
@RequestMapping(value = "/updatePassword", method = RequestMethod.POST)
public Result<?> changePassword(@RequestBody JSONObject json) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String username = json.getString("username");
String oldPassword = json.getString("oldpassword");
String password = json.getString("password");
@@ -483,6 +483,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
public void verificationChangePassword(SysLoginVO loginVO) {
fPRuleCheck(loginVO);
//前端传入密码解密
String username = loginVO.getUsername();
String phone = loginVO.getPhone();
String password = loginVO.getPassword();
String verifyPassword = loginVO.getVerifyPassword();
@@ -507,15 +508,18 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
throw new JeroBootException("验证码错误!");
}
if (!password.equals(verifyPassword)) {
throw new JeroBootException("新密码和确认密码不一致,请重新输入");
}
LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysUser::getPhone, PasswordUtil.encrypt(phone));
queryWrapper.eq(SysUser::getUsername, username);
SysUser sysUser = this.getOne(queryWrapper);
if (ObjectUtils.isEmpty(sysUser)) {
throw new JeroBootException("用户不存在");
}
if (!password.equals(verifyPassword)) {
throw new JeroBootException("新密码和确认密码不一致,请重新输入");
}
String passwordEncode = PasswordUtil.encrypt(sysUser.getUsername(), password, sysUser.getSalt());
sysUser.setPassword(passwordEncode);
userMapper.forgetPassword(sysUser);