浏览代码

1、解决移除抛出没有国际化显示错误问题
2、开启验证码

rayson 11 月之前
父节点
当前提交
495524aad4

+ 4 - 3
citu-framework/citu-spring-boot-starter-web/src/main/java/com/citu/framework/web/core/handler/GlobalExceptionHandler.java

@@ -133,7 +133,8 @@ public class GlobalExceptionHandler {
         // 国际化开启
         String i18nMsg = messageSource.getMessage(StrUtils.formatNumberWithUnderscores(code, 10),
                 null, LocaleContextHolder.getLocale());
-        if (String.valueOf(code).equals(i18nMsg)) {
+        if (String.valueOf(code).equals(i18nMsg)
+                || String.valueOf(code).equals(i18nMsg.replace("_", ""))) {
             // 找不到国际化信息,则使用默认的错误提示
             return CommonResult.error(code, msg);
         } else {
@@ -154,7 +155,7 @@ public class GlobalExceptionHandler {
     @ExceptionHandler(value = MissingServletRequestParameterException.class)
     public CommonResult<?> missingServletRequestParameterExceptionHandler(MissingServletRequestParameterException ex) {
         log.warn("[missingServletRequestParameterExceptionHandler]", ex);
-         return CommonResult.error(BAD_REQUEST.getCode(), String.format("请求参数缺失:%s", ex.getParameterName()));
+        return CommonResult.error(BAD_REQUEST.getCode(), String.format("请求参数缺失:%s", ex.getParameterName()));
         // return CommonResult.error(BAD_REQUEST.getCode(), String.format("%s", ex.getParameterName()));
     }
 
@@ -301,7 +302,7 @@ public class GlobalExceptionHandler {
 
 
     private void createExceptionLog(HttpServletRequest req, Throwable e) {
-        if(ObjectUtil.isEmpty(WebFrameworkUtils.getTenantId(req))) {
+        if (ObjectUtil.isEmpty(WebFrameworkUtils.getTenantId(req))) {
             return;
         }
         // 插入错误日志

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/auth/AppMdeAuthController.java

@@ -79,14 +79,14 @@ public class AppMdeAuthController {
     @PostMapping("/send-sms-code")
     @Operation(summary = "发送手机验证码")
     public CommonResult<Boolean> sendSmsCode(@RequestBody @Valid AppMdeAuthSmsSendReqVO reqVO) {
-        authService.sendSmsCode(LoginUserContext.getUserId(), reqVO);
+        authService.sendSmsCode(LoginUserContext.getUserId2(),reqVO);
         return success(true);
     }
 
     @PostMapping("/validate-sms-code")
     @Operation(summary = "校验手机验证码")
     public CommonResult<Boolean> validateSmsCode(@RequestBody @Valid AppMdeAuthSmsValidateReqVO reqVO) {
-        authService.validateSmsCode(LoginUserContext.getUserId(), reqVO);
+        authService.validateSmsCode(reqVO);
         return success(true);
     }
 

+ 1 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeAuthService.java

@@ -73,10 +73,9 @@ public interface MdeAuthService {
     /**
      * 校验短信验证码是否正确
      *
-     * @param userId 用户编号
      * @param reqVO  校验信息
      */
-    void validateSmsCode(Long userId, AppMdeAuthSmsValidateReqVO reqVO);
+    void validateSmsCode(AppMdeAuthSmsValidateReqVO reqVO);
 
     /**
      * 刷新访问令牌

+ 26 - 25
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeAuthServiceImpl.java

@@ -27,6 +27,7 @@ import com.citu.module.system.api.social.dto.SocialWxPhoneNumberInfoRespDTO;
 import com.citu.module.system.enums.logger.LoginLogTypeEnum;
 import com.citu.module.system.enums.logger.LoginResultEnum;
 import com.citu.module.system.enums.oauth2.OAuth2ClientConstants;
+import com.citu.module.system.enums.sms.SmsSceneEnum;
 import com.citu.module.system.enums.social.SocialTypeEnum;
 import com.google.common.annotations.VisibleForTesting;
 import com.xingyuv.captcha.model.common.ResponseModel;
@@ -164,7 +165,7 @@ public class MdeAuthServiceImpl implements MdeAuthService {
     public AppMdeAuthLoginRespVO smsLogin(AppMdeAuthSmsLoginReqVO reqVO) {
         // 校验验证码
         String userIp = getClientIP();
-//        smsCodeApi.useSmsCode(MdeAuthConvert.INSTANCE.convert(reqVO, SmsSceneEnum.MENDUNER_LOGIN.getScene(), userIp).setMobile(reqVO.getPhone())).getCheckedData();
+        smsCodeApi.useSmsCode(MdeAuthConvert.INSTANCE.convert(reqVO, SmsSceneEnum.MENDUNER_LOGIN.getScene(), userIp).setMobile(reqVO.getPhone())).getCheckedData();
 
         // 获得获得注册用户
         MdeUserDO user = userService.createUserIfAbsent(reqVO.getPhone(), userIp, getTerminal().toString());
@@ -237,33 +238,33 @@ public class MdeAuthServiceImpl implements MdeAuthService {
 
     @Override
     public void sendSmsCode(Long userId, AppMdeAuthSmsSendReqVO reqVO) {
-//        // 情况 1:如果是修改手机场景,需要校验新手机号是否已经注册,说明不能使用该手机了
-//        if (Objects.equals(reqVO.getScene(), SmsSceneEnum.MEMBER_UPDATE_MOBILE.getScene())) {
-//            MdeUserDO user = userService.getUserByPhone(reqVO.getPhone());
-//            if (user != null && !Objects.equals(user.getId(), userId)) {
-//                throw exception(MDE_AUTH_MOBILE_USED);
-//            }
-//        }
-//        // 情况 2:如果是重置密码场景,需要校验手机号是存在的
-//        if (Objects.equals(reqVO.getScene(), SmsSceneEnum.MEMBER_RESET_PASSWORD.getScene())) {
-//            MdeUserDO user = userService.getUserByPhone(reqVO.getPhone());
-//            if (user == null) {
-//                throw exception(MDE_USER_MOBILE_NOT_EXISTS);
-//            }
-//        }
-//        // 情况 3:如果是修改密码场景,需要查询手机号,无需前端传递
-//        if (Objects.equals(reqVO.getScene(), SmsSceneEnum.MEMBER_UPDATE_PASSWORD.getScene())) {
-//            MdeUserDO user = userService.getMdeUser(userId);
-//            // TODO 芋艿:后续 member user 手机非强绑定,这块需要做下调整;
-//            reqVO.setPhone(user.getPhone());
-//        }
-//
-//        // 执行发送
-//        smsCodeApi.sendSmsCode(MdeAuthConvert.INSTANCE.convert(reqVO).setCreateIp(getClientIP()).setMobile(reqVO.getPhone()));
+        // 情况 1:如果是修改手机场景,需要校验新手机号是否已经注册,说明不能使用该手机了
+        if (Objects.equals(reqVO.getScene(), SmsSceneEnum.MEMBER_UPDATE_MOBILE.getScene())) {
+            MdeUserDO user = userService.getUserByPhone(reqVO.getPhone());
+            if (user != null && !Objects.equals(user.getId(), userId)) {
+                throw exception(MDE_AUTH_MOBILE_USED);
+            }
+        }
+        // 情况 2:如果是重置密码场景,需要校验手机号是存在的
+        if (Objects.equals(reqVO.getScene(), SmsSceneEnum.MEMBER_RESET_PASSWORD.getScene())) {
+            MdeUserDO user = userService.getUserByPhone(reqVO.getPhone());
+            if (user == null) {
+                throw exception(MDE_USER_MOBILE_NOT_EXISTS);
+            }
+        }
+        // 情况 3:如果是修改密码场景,需要查询手机号,无需前端传递
+        if (Objects.equals(reqVO.getScene(), SmsSceneEnum.MEMBER_UPDATE_PASSWORD.getScene())) {
+            MdeUserDO user = userService.getMdeUser(userId);
+            // TODO 芋艿:后续 member user 手机非强绑定,这块需要做下调整;
+            reqVO.setPhone(user.getPhone());
+        }
+
+        // 执行发送
+        smsCodeApi.sendSmsCode(MdeAuthConvert.INSTANCE.convert(reqVO).setCreateIp(getClientIP()).setMobile(reqVO.getPhone()));
     }
 
     @Override
-    public void validateSmsCode(Long userId, AppMdeAuthSmsValidateReqVO reqVO) {
+    public void validateSmsCode(AppMdeAuthSmsValidateReqVO reqVO) {
         smsCodeApi.validateSmsCode(MdeAuthConvert.INSTANCE.convert(reqVO).setMobile(reqVO.getPhone()));
     }