[updaate] 拆分修改密码与重置密码请求实体
This commit is contained in:
parent
8e0569ee54
commit
6a7761313e
@ -80,7 +80,8 @@ public class SysAuthController {
|
|||||||
|
|
||||||
@PostMapping("/reset-password")
|
@PostMapping("/reset-password")
|
||||||
@ApiOperation(value = "重置密码", notes = "用户忘记密码时使用")
|
@ApiOperation(value = "重置密码", notes = "用户忘记密码时使用")
|
||||||
public CommonResult<Boolean> resetPassword(@RequestBody @Validated(MbrAuthResetPasswordReqVO.resetPasswordValidView.class) MbrAuthResetPasswordReqVO reqVO) {
|
@PreAuthenticated
|
||||||
|
public CommonResult<Boolean> resetPassword(@RequestBody @Valid MbrAuthResetPasswordReqVO reqVO) {
|
||||||
authService.resetPassword(reqVO);
|
authService.resetPassword(reqVO);
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
@ -88,7 +89,7 @@ public class SysAuthController {
|
|||||||
@PostMapping("/update-password")
|
@PostMapping("/update-password")
|
||||||
@ApiOperation(value = "修改用户密码",notes = "用户修改密码时使用")
|
@ApiOperation(value = "修改用户密码",notes = "用户修改密码时使用")
|
||||||
@PreAuthenticated
|
@PreAuthenticated
|
||||||
public CommonResult<Boolean> updatePassword(@RequestBody @Validated(MbrAuthResetPasswordReqVO.updatePasswordValidView.class) MbrAuthResetPasswordReqVO reqVO) {
|
public CommonResult<Boolean> updatePassword(@RequestBody @Valid MbrAuthUpdatePasswordReqVO reqVO) {
|
||||||
authService.updatePassword(getLoginUserId(), reqVO);
|
authService.updatePassword(getLoginUserId(), reqVO);
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
@ -19,30 +19,13 @@ import javax.validation.constraints.Pattern;
|
|||||||
@Builder
|
@Builder
|
||||||
public class MbrAuthResetPasswordReqVO {
|
public class MbrAuthResetPasswordReqVO {
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改密码校验规则
|
|
||||||
*/
|
|
||||||
public interface updatePasswordValidView {
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 忘记密码校验规则
|
|
||||||
*/
|
|
||||||
public interface resetPasswordValidView {
|
|
||||||
}
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "用户旧密码", required = true, example = "123456")
|
|
||||||
@NotBlank(message = "旧密码不能为空",groups = updatePasswordValidView.class)
|
|
||||||
@Length(min = 4, max = 16, message = "密码长度为 4-16 位")
|
|
||||||
private String oldPassword;
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "新密码", required = true, example = "buzhidao")
|
@ApiModelProperty(value = "新密码", required = true, example = "buzhidao")
|
||||||
@NotEmpty(message = "新密码不能为空",groups = {updatePasswordValidView.class,resetPasswordValidView.class})
|
@NotEmpty(message = "新密码不能为空")
|
||||||
@Length(min = 4, max = 16, message = "密码长度为 4-16 位")
|
@Length(min = 4, max = 16, message = "密码长度为 4-16 位")
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
@ApiModelProperty(value = "手机验证码", required = true, example = "1024")
|
@ApiModelProperty(value = "手机验证码", required = true, example = "1024")
|
||||||
@NotEmpty(message = "手机验证码不能为空",groups = resetPasswordValidView.class)
|
@NotEmpty(message = "手机验证码不能为空")
|
||||||
@Length(min = 4, max = 6, message = "手机验证码长度为 4-6 位")
|
@Length(min = 4, max = 6, message = "手机验证码长度为 4-6 位")
|
||||||
@Pattern(regexp = "^[0-9]+$", message = "手机验证码必须都是数字")
|
@Pattern(regexp = "^[0-9]+$", message = "手机验证码必须都是数字")
|
||||||
private String code;
|
private String code;
|
||||||
|
@ -0,0 +1,30 @@
|
|||||||
|
package cn.iocoder.yudao.userserver.modules.system.controller.auth.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import org.hibernate.validator.constraints.Length;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
|
||||||
|
@ApiModel("修改密码 Request VO")
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Builder
|
||||||
|
public class MbrAuthUpdatePasswordReqVO {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "用户旧密码", required = true, example = "123456")
|
||||||
|
@NotBlank(message = "旧密码不能为空")
|
||||||
|
@Length(min = 4, max = 16, message = "密码长度为 4-16 位")
|
||||||
|
private String oldPassword;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "新密码", required = true, example = "buzhidao")
|
||||||
|
@NotEmpty(message = "新密码不能为空")
|
||||||
|
@Length(min = 4, max = 16, message = "密码长度为 4-16 位")
|
||||||
|
private String password;
|
||||||
|
}
|
@ -68,7 +68,7 @@ public interface SysAuthService extends SecurityAuthFrameworkService {
|
|||||||
* @param userId 用户id
|
* @param userId 用户id
|
||||||
* @param userReqVO 用户请求实体类
|
* @param userReqVO 用户请求实体类
|
||||||
*/
|
*/
|
||||||
void updatePassword(Long userId, MbrAuthResetPasswordReqVO userReqVO);
|
void updatePassword(Long userId, @Valid MbrAuthUpdatePasswordReqVO userReqVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 忘记密码
|
* 忘记密码
|
||||||
|
@ -25,7 +25,6 @@ import cn.iocoder.yudao.userserver.modules.system.service.sms.SysSmsCodeService;
|
|||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import me.zhyd.oauth.model.AuthUser;
|
import me.zhyd.oauth.model.AuthUser;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
import org.springframework.security.authentication.AuthenticationManager;
|
import org.springframework.security.authentication.AuthenticationManager;
|
||||||
@ -41,6 +40,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.validation.Valid;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@ -280,7 +280,7 @@ public class SysAuthServiceImpl implements SysAuthService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updatePassword(Long userId, MbrAuthResetPasswordReqVO reqVO) {
|
public void updatePassword(Long userId, @Valid MbrAuthUpdatePasswordReqVO reqVO) {
|
||||||
// 检验旧密码
|
// 检验旧密码
|
||||||
MbrUserDO userDO = checkOldPassword(userId, reqVO.getOldPassword());
|
MbrUserDO userDO = checkOldPassword(userId, reqVO.getOldPassword());
|
||||||
|
|
||||||
|
@ -120,7 +120,6 @@ public class MbrUserServiceImplTest extends BaseDbAndRedisUnitTest {
|
|||||||
|
|
||||||
// 验证旧手机验证码是否正确
|
// 验证旧手机验证码是否正确
|
||||||
sysSmsCodeService.useSmsCode(oldMobile,SysSmsSceneEnum.CHANGE_MOBILE_BY_SMS.getScene(),"123","1.1.1.1");
|
sysSmsCodeService.useSmsCode(oldMobile,SysSmsSceneEnum.CHANGE_MOBILE_BY_SMS.getScene(),"123","1.1.1.1");
|
||||||
|
|
||||||
// 验证新手机
|
// 验证新手机
|
||||||
SysAuthSendSmsReqVO smsReqVO = new SysAuthSendSmsReqVO();
|
SysAuthSendSmsReqVO smsReqVO = new SysAuthSendSmsReqVO();
|
||||||
smsReqVO.setMobile(oldMobile);
|
smsReqVO.setMobile(oldMobile);
|
||||||
|
@ -16,6 +16,7 @@ import cn.iocoder.yudao.userserver.modules.member.dal.mysql.user.MbrUserMapper;
|
|||||||
import cn.iocoder.yudao.userserver.modules.member.service.user.MbrUserService;
|
import cn.iocoder.yudao.userserver.modules.member.service.user.MbrUserService;
|
||||||
import cn.iocoder.yudao.userserver.modules.member.service.user.impl.MbrUserServiceImpl;
|
import cn.iocoder.yudao.userserver.modules.member.service.user.impl.MbrUserServiceImpl;
|
||||||
import cn.iocoder.yudao.userserver.modules.system.controller.auth.vo.MbrAuthResetPasswordReqVO;
|
import cn.iocoder.yudao.userserver.modules.system.controller.auth.vo.MbrAuthResetPasswordReqVO;
|
||||||
|
import cn.iocoder.yudao.userserver.modules.system.controller.auth.vo.MbrAuthUpdatePasswordReqVO;
|
||||||
import cn.iocoder.yudao.userserver.modules.system.service.auth.SysAuthService;
|
import cn.iocoder.yudao.userserver.modules.system.service.auth.SysAuthService;
|
||||||
import cn.iocoder.yudao.userserver.modules.system.service.auth.impl.SysAuthServiceImpl;
|
import cn.iocoder.yudao.userserver.modules.system.service.auth.impl.SysAuthServiceImpl;
|
||||||
import cn.iocoder.yudao.userserver.modules.system.service.sms.SysSmsCodeService;
|
import cn.iocoder.yudao.userserver.modules.system.service.sms.SysSmsCodeService;
|
||||||
@ -78,9 +79,10 @@ public class SysAuthServiceTest extends BaseDbAndRedisUnitTest {
|
|||||||
String newPassword = randomString();
|
String newPassword = randomString();
|
||||||
|
|
||||||
// 请求实体
|
// 请求实体
|
||||||
MbrAuthResetPasswordReqVO reqVO = new MbrAuthResetPasswordReqVO();
|
MbrAuthUpdatePasswordReqVO reqVO = MbrAuthUpdatePasswordReqVO.builder()
|
||||||
reqVO.setOldPassword(userDO.getPassword());
|
.oldPassword(userDO.getPassword())
|
||||||
reqVO.setPassword(newPassword);
|
.password(newPassword)
|
||||||
|
.build();
|
||||||
|
|
||||||
// 测试桩
|
// 测试桩
|
||||||
// 这两个相等是为了返回ture这个结果
|
// 这两个相等是为了返回ture这个结果
|
||||||
@ -103,10 +105,10 @@ public class SysAuthServiceTest extends BaseDbAndRedisUnitTest {
|
|||||||
// 随机验证码
|
// 随机验证码
|
||||||
String code = randomNumbers(4);
|
String code = randomNumbers(4);
|
||||||
|
|
||||||
MbrAuthResetPasswordReqVO reqVO = new MbrAuthResetPasswordReqVO();
|
MbrAuthResetPasswordReqVO reqVO = MbrAuthResetPasswordReqVO.builder()
|
||||||
reqVO.setPassword(password);
|
.password(password)
|
||||||
reqVO.setCode(code);
|
.code(code)
|
||||||
|
.build();
|
||||||
// 放入code+手机号
|
// 放入code+手机号
|
||||||
stringRedisTemplate.opsForValue().set(code,userDO.getMobile(),10, TimeUnit.MINUTES);
|
stringRedisTemplate.opsForValue().set(code,userDO.getMobile(),10, TimeUnit.MINUTES);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user