jinshihui 2 هفته پیش
والد
کامیت
2440640d37

+ 38 - 25
nightFragrance-admin/src/main/java/com/ylx/web/controller/massage/MaTechnicianController.java

@@ -125,8 +125,8 @@ public class MaTechnicianController extends BaseController {
         Random rand = new Random();
         // randNumber 将被赋值为一个 MIN 和 MAX 范围内的随机数
         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 {
             SMSVerificationCode smsVerificationCode = new SMSVerificationCode(String.valueOf(randNumber));
             String jsonString = JSON.toJSONString(smsVerificationCode);
@@ -207,6 +207,9 @@ public class MaTechnicianController extends BaseController {
 
     /**
      * 商户忘记密码接口
+     *
+     * @param thirdPartyLoginsVo
+     * @return Result<?>
      */
     @PostMapping("/resetPassword")
     @ApiOperation("商户忘记密码接口")
@@ -215,30 +218,40 @@ public class MaTechnicianController extends BaseController {
         // ^ 表示开头,$ 表示结尾
         // [a-zA-Z0-9] 表示只能是字母或数字
         // {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("重置密码成功");
     }
 
     /**

+ 1 - 1
nightFragrance-framework/src/main/java/com/ylx/framework/config/SecurityConfig.java

@@ -116,7 +116,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
                         "/wx/pay/query/order/{outTradeNo}","/api/products/**","/api/user/point/**","/userCenter/userApp/queryBind","/weChat/uuidLogin","/couponReceive/getShareVolutionDetail",
                         "/userCenter/ugit credential rejectserApp/bind/update","/serviceCategory/h5List","/api/lbt/v1/select","/sq/getTechnicianToken"
                         ,"/technician/technician/clientLogin","/technician/technician/wait/list","/technician/technician/getServiceCategoryList"
-                ,"/technician/technician/getTechnician" ,"/technician/technician/getTechnicianInfo","/technician/technician/getSkillList","/technician/technician/getTechnicianList","/technician/technician/apply"
+                ,"/technician/technician/getTechnician" ,"/technician/technician/getTechnicianInfo","/technician/technician/getSkillList","/technician/technician/getTechnicianList","/technician/technician/apply","/technician/technician/resetPassword"
                        ).permitAll()
                 // 静态资源,可匿名访问
                 .antMatchers(HttpMethod.GET, "/", "/*.txt", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()