Procházet zdrojové kódy

账号不存在输出正常的业务代码处理

mingfu před 1 měsícem
rodič
revize
bbd12ec1ec

+ 1 - 3
ie-admin/src/main/java/com/ruoyi/web/controller/front/UserController.java

@@ -93,10 +93,8 @@ public class UserController {
     @Anonymous
     public AjaxResult userLogin(@RequestBody LoginBody loginBody)
     {
-        AjaxResult ajax = AjaxResult.success();
         // 生成令牌
-        String token = loginService.login(loginBody.getMobile(), loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid());
-        ajax.put(Constants.TOKEN, token);
+        AjaxResult ajax = loginService.login(loginBody.getMobile(), loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid());
         return ajax;
     }
 

+ 1 - 3
ie-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java

@@ -57,10 +57,8 @@ public class SysLoginController
     @ApiOperation("登陆")
     public AjaxResult login(@RequestBody LoginBody loginBody)
     {
-        AjaxResult ajax = AjaxResult.success();
         // 生成令牌
-        String token = loginService.login(loginBody.getMobile(), loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid());
-        ajax.put(Constants.TOKEN, token);
+        AjaxResult ajax = loginService.login(loginBody.getMobile(), loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid());
         return ajax;
     }
 

+ 18 - 2
ie-admin/src/main/java/com/ruoyi/web/service/SysLoginService.java

@@ -2,6 +2,10 @@ package com.ruoyi.web.service;
 
 import javax.annotation.Resource;
 
+import com.google.common.collect.Maps;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.ErrorCodes;
+import com.ruoyi.common.exception.ErrorException;
 import com.ruoyi.common.utils.PhoneUtils;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.service.ShortMessageService;
@@ -34,6 +38,8 @@ import com.ruoyi.system.service.ISysConfigService;
 import com.ruoyi.system.service.ISysUserService;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Map;
+
 /**
  * 登录校验方法
  * 
@@ -69,7 +75,7 @@ public class SysLoginService
      * @param uuid
      * @return
      */
-    public String login(String mobile, String username, String password, String code, String uuid) {
+    public AjaxResult login(String mobile, String username, String password, String code, String uuid) {
         if (StringUtils.isNotBlank(mobile)) {
             if (!shortMessageService.checkCode(mobile, password)) {
                 AsyncManager.me().execute(AsyncFactory.recordLogininfor(mobile, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error")));
@@ -103,6 +109,14 @@ public class SysLoginService
             else
             {
                 AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));
+                if(e.getCause() instanceof ErrorException) {
+                    ErrorException errorException = (ErrorException) e.getCause();
+                    Map map = Maps.newHashMap();
+                    ErrorCodes errorCode = errorException.getErrorCode();
+                    map.put("code", errorCode.getCode());
+                    map.put("message", StringUtils.isNotEmpty(errorException.getMessage()) ? errorException.getMessage() : errorCode.getTitle());
+                    return AjaxResult.success(map);
+                }
                 throw new ServiceException(e.getMessage());
             }
         }
@@ -114,7 +128,9 @@ public class SysLoginService
         LoginUser loginUser = (LoginUser) authentication.getPrincipal();
         recordLoginInfo(loginUser.getUserId());
         // 生成token
-        return tokenService.createToken(loginUser);
+        AjaxResult ajax = AjaxResult.success();
+        ajax.put(Constants.TOKEN, tokenService.createToken(loginUser));
+        return ajax;
     }
 
     /**

+ 3 - 1
ie-admin/src/main/java/com/ruoyi/web/service/UserDetailsServiceImpl.java

@@ -2,7 +2,9 @@ package com.ruoyi.web.service;
 
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.domain.model.LoginCard;
+import com.ruoyi.common.enums.ErrorCodes;
 import com.ruoyi.common.enums.UserRegStatus;
+import com.ruoyi.common.exception.ErrorException;
 import com.ruoyi.common.utils.PhoneUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.dz.service.IDzCardsService;
@@ -54,7 +56,7 @@ public class UserDetailsServiceImpl implements UserDetailsService
         if (StringUtils.isNull(user))
         {
             log.info("登录用户:{} 不存在.", username);
-            throw new ServiceException(MessageUtils.message("user.not.exists"));
+            throw new ErrorException("账号不存在", ErrorCodes.UnRegister);
         }
         else if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))
         {

+ 13 - 0
ie-common/src/main/java/com/ruoyi/common/enums/ErrorCodes.java

@@ -0,0 +1,13 @@
+package com.ruoyi.common.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+public enum ErrorCodes {
+    UnRegister(101, "未注册");
+
+    private final Integer code;
+    private final String title;
+}

+ 36 - 0
ie-common/src/main/java/com/ruoyi/common/exception/ErrorException.java

@@ -0,0 +1,36 @@
+package com.ruoyi.common.exception;
+
+import com.ruoyi.common.enums.ErrorCodes;
+import lombok.Getter;
+
+/**
+ * 自定义异常
+ *
+ * @author ruoyi
+ */
+public class ErrorException extends RuntimeException
+{
+    private static final long serialVersionUID = 1L;
+
+    @Getter
+    private final ErrorCodes errorCode;
+
+    private String message;
+
+    public ErrorException(ErrorCodes errorCode)
+    {
+        this.errorCode = errorCode;
+    }
+
+    public ErrorException(String message, ErrorCodes errorCode)
+    {
+        this.message = message;
+        this.errorCode = errorCode;
+    }
+
+    @Override
+    public String getMessage()
+    {
+        return message;
+    }
+}