Commit d541b591 authored by yaobaizheng's avatar yaobaizheng

忘记密码和修改密码 和发送短信拆开

parent 20247b1e
......@@ -25,10 +25,10 @@ public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry
.addInterceptor(signterceptor)
.addPathPatterns(getIncludePathPatterns())
.excludePathPatterns(Arrays.asList(swagger()));
// registry
// .addInterceptor(signterceptor)
// .addPathPatterns(getIncludePathPatterns())
// .excludePathPatterns(Arrays.asList(swagger()));
// 添加需要拦截的路径,以及处理拦截的拦截器
registry
// 拦截器
......
......@@ -4,6 +4,8 @@ import com.lyy.user.domain.JwtInfo;
import com.lyy.user.enums.SendMsgTypeEnum;
import com.lyy.user.moudle.user.service.SysUserInfoService;
import com.lyy.user.moudle.user.vo.ForgetVo;
import com.lyy.user.moudle.user.vo.SendPhoneVo;
import com.lyy.user.moudle.user.vo.UpdateVo;
import com.lyy.user.moudle.user.vo.UserInfoVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -47,10 +49,23 @@ public class SysUserController {
*/
@PostMapping("/update")
@ApiOperation(value = "修改密码")
public boolean update(@RequestBody @Validated ForgetVo forgetVo) {
return this.sysUserInfoService.forget(forgetVo, SendMsgTypeEnum.UPDATE_PASSWORD.getCode());
public boolean update(@RequestBody @Validated UpdateVo updateVo) {
return this.sysUserInfoService.update(updateVo, SendMsgTypeEnum.UPDATE_PASSWORD.getCode());
}
/**
* @description: 发送短信
* @date: 2023/11/20 9:40
* @param: [sendPhoneVo]
* @return: boolean
*/
@PostMapping("/sendMsg")
@ApiOperation(value = "发送短信", notes = "发送短信")
public boolean sendMsg(@RequestBody @Validated SendPhoneVo sendPhoneVo) {
return this.sysUserInfoService.sendMsg(sendPhoneVo);
}
/**
* @description: 获取用户信息
* @date: 2023/11/23 10:21
......
......@@ -53,13 +53,21 @@ public interface SysUserInfoService extends IService<SysUserInfo> {
//用户注册
boolean sign(RegisterVo registerVo);
/**
* @description: 忘记/修改密码
* @description: 忘记密码
* @date: 2023/11/23 10:21
* @param: [forgetVo]
* @return: boolean
**/
boolean forget(ForgetVo forgetVo,Integer code);
/**
* @description: 修改密码
* @date: 2023/11/23 10:21
* @param: [forgetVo]
* @return: boolean
**/
boolean update(UpdateVo updateVo,Integer code);
/**
* @description: 获取用户信息
* @date: 2023/11/23 10:21
......
......@@ -219,6 +219,11 @@ public class SysUserInfoServiceImpl extends ServiceImpl<SysUserInfoMapper, SysUs
*/
@Override
public boolean sendMsg(SendPhoneVo sendPhoneVo) {
if(SendMsgTypeEnum.UPDATE_PASSWORD.getCode().equals(sendPhoneVo.getType())){
JwtInfo currentUserInfo = BaseContextHandler.getCurrentUserInfo();
String phone = currentUserInfo.getPhone();
sendPhoneVo.setPhone(phone);
}
check(sendPhoneVo.getPhone());
if (StringUtils.isEmpty(SendMsgTypeEnum.getTemplateId(sendPhoneVo.getType()))) {
throw new ServiceException("参数有误");
......@@ -314,15 +319,14 @@ public class SysUserInfoServiceImpl extends ServiceImpl<SysUserInfoMapper, SysUs
return this.save(userInfo);
}
/**
* @description: 忘记/修改密码
* @description: 忘记密码
* @date: 2023/11/23 10:21
* @param: [forgetVo]
* @return: boolean
*/
@Override
public boolean forget(ForgetVo forgetVo, Integer type) {
JwtInfo currentUserInfo = BaseContextHandler.getCurrentUserInfo();
String phone = currentUserInfo.getPhone();
String phone = forgetVo.getPhone();
LambdaQueryWrapper<SysUserInfo> userQuery = new LambdaQueryWrapper<>();
userQuery.eq(SysUserInfo::getPhonenumber, phone);
SysUserInfo sysUserInfo = this.getOne(userQuery);
......@@ -344,6 +348,38 @@ public class SysUserInfoServiceImpl extends ServiceImpl<SysUserInfoMapper, SysUs
return this.updateById(sysUserInfo);
}
/**
* @description: 修改密码
* @date: 2023/11/23 10:21
* @param: [forgetVo]
* @return: boolean
*/
@Override
public boolean update(UpdateVo updateVo, Integer type) {
JwtInfo currentUserInfo = BaseContextHandler.getCurrentUserInfo();
String phone = currentUserInfo.getPhone();
LambdaQueryWrapper<SysUserInfo> userQuery = new LambdaQueryWrapper<>();
userQuery.eq(SysUserInfo::getPhonenumber, phone);
SysUserInfo sysUserInfo = this.getOne(userQuery);
if (ObjectUtils.isEmpty(sysUserInfo)) {
throw new ServiceException("该用户不存在,请先注册");
}
String key = RedisConstants.MSG_KEY + type + ":" + phone;
Object code = RedisUtil.get(key);
if (ObjectUtils.isEmpty(code)) {
throw new ServiceException("验证码无效,请重新发送");
}
if (!code.equals(updateVo.getCode())) {
throw new ServiceException("验证码错误");
}
String newPassword =
DigestUtils.md5DigestAsHex(
(updateVo.getPassword() + lyyConfig.getPasswordSalt()).getBytes());
sysUserInfo.setPassword(newPassword);
return this.updateById(sysUserInfo);
}
@Override
public UserInfoVo detail() {
JwtInfo jwtUser = BaseContextHandler.getCurrentUserInfo();
......
......@@ -19,7 +19,7 @@ import javax.validation.constraints.Size;
@AllArgsConstructor
@NoArgsConstructor
@ToString
@ApiModel(value = "忘记 修改密码")
@ApiModel(value = "忘记密码")
public class ForgetVo {
@NotEmpty(message = "密码不能为空")
......@@ -27,10 +27,10 @@ public class ForgetVo {
@ApiModelProperty(value = "密码",required = true)
private String password;
/*@NotEmpty(message = "手机号不能为空")
@NotEmpty(message = "手机号不能为空")
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
@ApiModelProperty(value = "手机号",required = true)
private String phone;*/
private String phone;
@NotEmpty(message = "验证码不能为空")
@ApiModelProperty(value = "验证码",required = true)
......
......@@ -20,9 +20,10 @@ import javax.validation.constraints.Pattern;
@ToString
@ApiModel(value = "发送短信")
public class SendPhoneVo {
@NotBlank(message = "手机号不能为空")
@Pattern(regexp = "^1[3456789]\\d{9}$", message = "手机号格式不正确")
@ApiModelProperty(value = "手机号",required = true)
// @NotBlank(message = "手机号不能为空")
// @Pattern(regexp = "^1[3456789]\\d{9}$", message = "手机号格式不正确")
// @ApiModelProperty(value = "手机号",required = true)
@ApiModelProperty(value = "手机号")
private String phone;
//发送短信的类型 1:注册 2:登录
@ApiModelProperty(value = "短信类型 传数字 1:注册 2:登录 3:忘记密码 4:修改密码",required = true)
......
package com.lyy.user.moudle.user.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.Pattern;
/**
* @Author:zhouxudong
* @version: 1.0
* @Date: 2023/11/17 9:38
* @Description: 忘记密码
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
@ApiModel(value = "修改密码")
public class UpdateVo {
@NotEmpty(message = "密码不能为空")
@Pattern(regexp = "^[a-zA-Z0-9~!@#$%^&*()_+?.]{6,20}$", message = "密码长度必须大于等于6位,小于等于20")
@ApiModelProperty(value = "密码",required = true)
private String password;
/*@NotEmpty(message = "手机号不能为空")
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
@ApiModelProperty(value = "手机号",required = true)
private String phone;*/
@NotEmpty(message = "验证码不能为空")
@ApiModelProperty(value = "验证码",required = true)
private String code;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment