Browse Source

用户模块:检查用户是否存在

tangxiangan 2 years ago
parent
commit
7b29e130ca

+ 2 - 0
backend-common/src/main/java/constant/CommonConstant.java

@@ -49,6 +49,8 @@ public interface CommonConstant {
     String EXCEPTION_MSG_PARAMETERS_ERROR = "没有获取到必须的参数或参数格式错误";
     String EXCEPTION_MSG_PARAMETERS_AT_LEAST_ONE = "请至少设置一个有效的参数";
 
+    int ERROR = 400; // 400 失败
+
     /**
      * 服务错误状态
      */

+ 2 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/constant/AuthConstant.java

@@ -7,6 +7,8 @@ public interface AuthConstant {
 
 
     String SUCCESS_MSG_CODE_SEND = "验证码发送成功";
+
+    String SUCCESS_MSG_CODE_SEND_MAIL = "邮件发送成功";
     String EXCEPTION_MSG_CODE_SEND_ERROR = "验证码发送失败";
     String EXCEPTION_MSG_CODE_ERROR = "验证码输入错误";
     String EXCEPTION_MSG_EMAIL_CODE_ERROR = "邮箱验证码错误";

+ 5 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/constant/MembersConstant.java

@@ -0,0 +1,5 @@
+package cn.kdan.pdf.backend.core.constant;
+
+public interface MembersConstant {
+    public static final String EXCEPTION_MSG_USER_NOT_FOUND = "用户不存在";
+}

+ 29 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/controller/AuthController.java

@@ -12,6 +12,7 @@ import pojo.ResultMap;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
+import javax.validation.constraints.NotBlank;
 import java.io.IOException;
 
 
@@ -60,4 +61,32 @@ public class AuthController {
         authService.getVerifyCode(CaptchaActionEnum.RESET_PASSWORD, VerifyTypeEnum.EMAIL, "316531990@qq.com");
     }
 
+    @GetMapping("/getVerifyCode")
+    public ResultMap<Boolean> getVerifyCode(String action, Integer type, String receiver) {
+        CaptchaActionEnum actionEnum = CaptchaActionEnum.getEnumByValue(action);
+        if (actionEnum == null) {
+            return new ResultMap<>(CommonConstant.ERROR, AuthConstant.EXCEPTION_MSG_CODE_ACTION_ERROR, false);
+        }
+        VerifyTypeEnum verifyTypeEnum = VerifyTypeEnum.getEnumByCode(type);
+        if (verifyTypeEnum == null) {
+            return new ResultMap<>(CommonConstant.ERROR, AuthConstant.EXCEPTION_MSG_CODE_TYPE_ERROR, false);
+        }
+        if (authService.getVerifyCode(actionEnum, verifyTypeEnum, receiver)) {
+            return new ResultMap<>(CommonConstant.SUCCESS, AuthConstant.SUCCESS_MSG_CODE_SEND, true);
+        } else {
+            return new ResultMap<>(CommonConstant.ERROR, AuthConstant.EXCEPTION_MSG_CODE_SEND_ERROR, false);
+        }
+    }
+
+    /**
+     * 检查用户是否存在
+     * @param account 手机号或邮箱
+     * @return checkExist
+     */
+    @PostMapping("/checkExist")
+    public ResultMap<Boolean> checkExist(@RequestParam @NotBlank(message = "手机号/邮箱 不能为空")String account) {
+        return new ResultMap<>(CommonConstant.SUCCESS, CommonConstant.RESULT_SUCCESS,authService.checkExist(account));
+    }
+
+
 }

+ 6 - 1
backend-core/src/main/java/cn/kdan/pdf/backend/core/controller/MembersController.java

@@ -1,9 +1,14 @@
 package cn.kdan.pdf.backend.core.controller;
 
+import cn.kdan.pdf.backend.core.constant.AuthConstant;
+import cn.kdan.pdf.backend.core.constant.MembersConstant;
+import cn.kdan.pdf.backend.core.enums.CaptchaActionEnum;
+import cn.kdan.pdf.backend.core.enums.VerifyTypeEnum;
 import cn.kdan.pdf.backend.core.model.Members;
 import cn.kdan.pdf.backend.core.model.member.MemberRegisterReq;
 import cn.kdan.pdf.backend.core.model.member.MemberRegisterResp;
 import cn.kdan.pdf.backend.core.model.member.ModifyPasswordReq;
+import cn.kdan.pdf.backend.core.pojo.oauth2.TokenPOJO;
 import cn.kdan.pdf.backend.core.service.MemberService;
 import constant.CommonConstant;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -12,6 +17,7 @@ import org.springframework.web.bind.annotation.*;
 import pojo.CustomUserDetails;
 import pojo.ResultMap;
 
+import javax.validation.constraints.NotBlank;
 import java.security.Principal;
 
 @RestController
@@ -48,5 +54,4 @@ public class MembersController {
         return new ResultMap<>(CommonConstant.SUCCESS,"修改密码成功","修改密码成功");
     }
 
-
 }

+ 8 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/service/AuthService.java

@@ -60,4 +60,12 @@ public interface AuthService {
     void generateImageCode(HttpServletResponse response, HttpSession session, String type, int width, int height, int codeCount, int lineCount) throws IOException;
 
     boolean getVerifyCode(CaptchaActionEnum action, VerifyTypeEnum type, String receiver);
+
+
+    /**
+     * 判断账户是否存在
+     * @param account 手机号或者邮箱
+     * @return boolean
+     */
+    boolean checkExist(String account);
 }

+ 16 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/service/impl/AuthServiceImpl.java

@@ -1,6 +1,7 @@
 package cn.kdan.pdf.backend.core.service.impl;
 
 import cn.kdan.pdf.backend.core.constant.AuthConstant;
+import cn.kdan.pdf.backend.core.constant.MembersConstant;
 import cn.kdan.pdf.backend.core.enums.CaptchaActionEnum;
 import cn.kdan.pdf.backend.core.enums.ImageCodeTypeEnum;
 import cn.kdan.pdf.backend.core.enums.VerifyTypeEnum;
@@ -10,11 +11,13 @@ import cn.kdan.pdf.backend.core.model.OauthClientDetailsExample;
 import cn.kdan.pdf.backend.core.pojo.oauth2.TokenPOJO;
 import cn.kdan.pdf.backend.core.properties.Oauth2LoginProperties;
 import cn.kdan.pdf.backend.core.service.AuthService;
+import cn.kdan.pdf.backend.core.service.UserService;
 import cn.kdan.pdf.backend.core.utils.TokenUtils;
 import constant.CommonConstant;
 import exception.BackendRuntimeException;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.http.HttpHeaders;
 import org.apache.http.entity.ContentType;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,6 +27,7 @@ import org.springframework.stereotype.Service;
 import pojo.YunpianSendResult;
 import utils.*;
 
+import javax.annotation.Resource;
 import javax.imageio.ImageIO;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
@@ -66,6 +70,9 @@ public class AuthServiceImpl implements AuthService {
     @Value("${security.oauth2.client.client-secret:}")
     private String secretKey;
 
+    @Resource
+    private UserService userService;
+
     @Override
     public OauthClientDetails getById(String clientId) {
         return oauthClientDetailsMapper.selectByPrimaryKey(clientId);
@@ -142,4 +149,13 @@ public class AuthServiceImpl implements AuthService {
         return flag;
     }
 
+
+    @Override
+    public boolean checkExist(String account) {
+        if(ObjectUtils.isEmpty(userService.getByAccount(account))){
+            throw new BackendRuntimeException(MembersConstant.EXCEPTION_MSG_USER_NOT_FOUND);
+        }
+        return Boolean.TRUE;
+    }
+
 }

+ 6 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/service/impl/MemberServiceImpl.java

@@ -1,5 +1,7 @@
 package cn.kdan.pdf.backend.core.service.impl;
 
+import cn.kdan.pdf.backend.core.constant.MembersConstant;
+import cn.kdan.pdf.backend.core.enums.VerifyTypeEnum;
 import cn.kdan.pdf.backend.core.mapper.MembersMapper;
 import cn.kdan.pdf.backend.core.model.Members;
 import cn.kdan.pdf.backend.core.model.MembersExample;
@@ -7,9 +9,11 @@ import cn.kdan.pdf.backend.core.model.member.MemberRegisterReq;
 import cn.kdan.pdf.backend.core.model.member.MemberRegisterResp;
 import cn.kdan.pdf.backend.core.model.member.ModifyPasswordReq;
 import cn.kdan.pdf.backend.core.service.MemberService;
+import cn.kdan.pdf.backend.core.service.UserService;
 import constant.CommonConstant;
 import enums.CommonEnum;
 import exception.BackendRuntimeException;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
@@ -28,6 +32,8 @@ public class MemberServiceImpl implements MemberService {
 
     @Autowired
     private MembersMapper membersMapper;
+    @Autowired
+    private UserService userService;
 
     // 默认时区
     private final static String DEFAULT_TIME_ZONE = "UTC";