|
@@ -125,8 +125,8 @@ public class MaTechnicianController extends BaseController {
|
|
|
Random rand = new Random();
|
|
Random rand = new Random();
|
|
|
// randNumber 将被赋值为一个 MIN 和 MAX 范围内的随机数
|
|
// randNumber 将被赋值为一个 MIN 和 MAX 范围内的随机数
|
|
|
int randNumber = rand.nextInt(9999 - 1000 + 1) + 1000;
|
|
int randNumber = rand.nextInt(9999 - 1000 + 1) + 1000;
|
|
|
- // 保存验证码到redis
|
|
|
|
|
- redisTemplate.opsForValue().set("userH5:order:phone:" + phone, String.valueOf(randNumber), 5L, TimeUnit.MINUTES);
|
|
|
|
|
|
|
+ // 保存验证码到redis中,过期时间为5分钟
|
|
|
|
|
+ redisTemplate.opsForValue().set(PHONE_THREEUSERPARTCLIENT_CODE_KEY + phone, String.valueOf(randNumber), 5L, TimeUnit.MINUTES);
|
|
|
try {
|
|
try {
|
|
|
SMSVerificationCode smsVerificationCode = new SMSVerificationCode(String.valueOf(randNumber));
|
|
SMSVerificationCode smsVerificationCode = new SMSVerificationCode(String.valueOf(randNumber));
|
|
|
String jsonString = JSON.toJSONString(smsVerificationCode);
|
|
String jsonString = JSON.toJSONString(smsVerificationCode);
|
|
@@ -207,6 +207,9 @@ public class MaTechnicianController extends BaseController {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 商户忘记密码接口
|
|
* 商户忘记密码接口
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param thirdPartyLoginsVo
|
|
|
|
|
+ * @return Result<?>
|
|
|
*/
|
|
*/
|
|
|
@PostMapping("/resetPassword")
|
|
@PostMapping("/resetPassword")
|
|
|
@ApiOperation("商户忘记密码接口")
|
|
@ApiOperation("商户忘记密码接口")
|
|
@@ -215,30 +218,40 @@ public class MaTechnicianController extends BaseController {
|
|
|
// ^ 表示开头,$ 表示结尾
|
|
// ^ 表示开头,$ 表示结尾
|
|
|
// [a-zA-Z0-9] 表示只能是字母或数字
|
|
// [a-zA-Z0-9] 表示只能是字母或数字
|
|
|
// {8,20} 表示长度必须在8到20之间
|
|
// {8,20} 表示长度必须在8到20之间
|
|
|
- String regex = "^[a-zA-Z0-9]{8,20}$";
|
|
|
|
|
- boolean isMatch = Pattern.matches(regex, thirdPartyLoginsVo.getPassWord().trim());
|
|
|
|
|
- if (!isMatch) {
|
|
|
|
|
- // 根据需求返回指定的异常提示
|
|
|
|
|
- return Result.error("请输入8-20位数字/字母组合");
|
|
|
|
|
- }
|
|
|
|
|
- // 短信验证
|
|
|
|
|
- String msg = redisTemplate.opsForValue().get(PHONE_THREEUSERPARTCLIENT_CODE_KEY + thirdPartyLoginsVo.getPhone());
|
|
|
|
|
- if (StringUtils.isEmpty(msg)) {
|
|
|
|
|
- return Result.error("验证码已失效");
|
|
|
|
|
- }
|
|
|
|
|
- if (msg != null && msg.startsWith("\"") && msg.endsWith("\"")) {
|
|
|
|
|
- msg = msg.substring(1, msg.length() - 1);
|
|
|
|
|
- }
|
|
|
|
|
- if (!thirdPartyLoginsVo.getPhoneMsg().equals(msg)) {
|
|
|
|
|
- return Result.error("短信验证码不正确");
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+ String regex = "^[a-zA-Z0-9]{8,20}$";
|
|
|
|
|
+ boolean isMatch = Pattern.matches(regex, thirdPartyLoginsVo.getPassWord().trim());
|
|
|
|
|
+ if (!isMatch) {
|
|
|
|
|
+ // 根据需求返回指定的异常提示
|
|
|
|
|
+ return Result.error("请输入8-20位数字/字母组合");
|
|
|
|
|
+ }
|
|
|
|
|
+ // 短信验证 sys:clientLogin:phone:手机号
|
|
|
|
|
+ String msg = redisTemplate.opsForValue().get(PHONE_THREEUSERPARTCLIENT_CODE_KEY + thirdPartyLoginsVo.getPhone());
|
|
|
|
|
+ log.info("短信验证码的值:{}", msg);
|
|
|
|
|
+ if (StringUtils.isEmpty(msg)) {
|
|
|
|
|
+ return Result.error("验证码已失效");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (msg != null && msg.startsWith("\"") && msg.endsWith("\"")) {
|
|
|
|
|
+ msg = msg.substring(1, msg.length() - 1);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!thirdPartyLoginsVo.getPhoneMsg().equals(msg)) {
|
|
|
|
|
+ return Result.error("短信验证码不正确");
|
|
|
|
|
+ }
|
|
|
|
|
+ // 重置密码逻辑
|
|
|
|
|
+ LambdaUpdateWrapper<MaTechnician> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
|
|
+ updateWrapper.eq(MaTechnician::getTePhone, thirdPartyLoginsVo.getPhone());
|
|
|
|
|
+ BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
|
|
|
|
|
+ // 对密码进行加密
|
|
|
|
|
+ String encryptedPassword = encoder.encode(thirdPartyLoginsVo.getPassWord());
|
|
|
|
|
+ updateWrapper.set(MaTechnician::getTePassword, encryptedPassword);
|
|
|
|
|
+ maTechnicianService.update(updateWrapper);
|
|
|
|
|
+ // 重置密码成功删除验证码
|
|
|
|
|
+ redisTemplate.delete(PHONE_THREEUSERPARTCLIENT_CODE_KEY + thirdPartyLoginsVo.getPhone());
|
|
|
|
|
+ return Result.ok("重置密码成功");
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ throw new RuntimeException(e);
|
|
|
}
|
|
}
|
|
|
- // 重置密码逻辑
|
|
|
|
|
- LambdaUpdateWrapper<MaTechnician> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
|
|
- updateWrapper.eq(MaTechnician::getTePhone, thirdPartyLoginsVo.getPhone());
|
|
|
|
|
- updateWrapper.set(MaTechnician::getTePassword, thirdPartyLoginsVo.getPassWord());
|
|
|
|
|
- maTechnicianService.update(updateWrapper);
|
|
|
|
|
- redisTemplate.delete(PHONE_THREEUSERPARTCLIENT_CODE_KEY + thirdPartyLoginsVo.getPhone());
|
|
|
|
|
- return Result.ok("重置密码成功");
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|