From 403fbe8fa8d3df96d692ad41ffa1c300b0db5493 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期六, 24 八月 2024 18:02:02 +0800
Subject: [PATCH] APP端登录模块接口

---
 xinquan-auth/src/main/java/com/xinquan/auth/controller/TokenController.java |  120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 115 insertions(+), 5 deletions(-)

diff --git a/xinquan-auth/src/main/java/com/xinquan/auth/controller/TokenController.java b/xinquan-auth/src/main/java/com/xinquan/auth/controller/TokenController.java
index 47e877a..41f1707 100644
--- a/xinquan-auth/src/main/java/com/xinquan/auth/controller/TokenController.java
+++ b/xinquan-auth/src/main/java/com/xinquan/auth/controller/TokenController.java
@@ -1,8 +1,11 @@
 package com.xinquan.auth.controller;
 
+import com.xinquan.auth.form.AppChangePwdBody;
+import com.xinquan.auth.form.AppLoginBody;
 import com.xinquan.auth.form.AppRegisterBody;
 import com.xinquan.auth.form.LoginBody;
 import com.xinquan.auth.form.RegisterBody;
+import com.xinquan.auth.form.VerifyResultVO;
 import com.xinquan.auth.service.SysLoginService;
 import com.xinquan.common.core.domain.R;
 import com.xinquan.common.core.utils.JwtUtils;
@@ -13,7 +16,12 @@
 import com.xinquan.system.api.domain.SysRole;
 import com.xinquan.system.api.domain.SysUser;
 import com.xinquan.system.api.feignClient.SysUserClient;
+import com.xinquan.system.api.model.AppCaptchaBody;
+import com.xinquan.system.api.model.AppVerifyCellPhoneBody;
+import com.xinquan.system.api.model.AppWXLoginBody;
+import com.xinquan.system.api.model.AppleLoginUser;
 import com.xinquan.system.api.model.LoginUser;
+import com.xinquan.system.api.model.WXLoginUser;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
@@ -23,6 +31,7 @@
 import javax.servlet.http.HttpServletRequest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -52,11 +61,15 @@
      * @param cellPhone 手机号码
      * @return
      */
-    @GetMapping("/app/send-captcha-code")
+    @GetMapping("/app/sendCaptchaCode")
     @ApiOperation(value = "发送验证码",tags = {"APP端"})
-    @ApiImplicitParams({@ApiImplicitParam(name = "cellPhone",value = "手机号码",required = true,dataType = "String",paramType = "query")})
-    public R<?> sendCaptchaCode(@RequestParam("cellPhone") String cellPhone) {
-        sysLoginService.sendCaptchaCode(cellPhone);
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "cellPhone", value = "手机号码", required = true, dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "type", value = "类型 1=注册 2=验证码登录 3=找回密码 4=第三方登录后验证手机", required = true, dataType = "Integer", paramType = "query")})
+    public R<?> sendCaptchaCode(
+            @RequestParam(value = "cellPhone", required = true) String cellPhone,
+            @RequestParam("type") Integer type) {
+        sysLoginService.sendCaptchaCode(cellPhone, type);
         return R.ok();
     }
 
@@ -67,13 +80,110 @@
      */
     @ApiOperation(value = "注册账户",tags = {"APP端"})
     @PostMapping("/app/register")
-    public R<?> appRegister(@RequestBody AppRegisterBody appRegisterBody)
+    public R<?> appRegister(@Validated @RequestBody AppRegisterBody appRegisterBody)
     {
         // 用户注册
         sysLoginService.appRegister(appRegisterBody);
         return R.ok();
     }
 
+    /**
+     * 账号密码登录
+     *
+     * @param body
+     * @return
+     */
+    @ApiOperation(value = "账号密码登录", tags = {"APP端"})
+    @PostMapping("/app/login")
+    public R<?> appLogin(@Validated @RequestBody AppLoginBody body) {
+        LoginUser userInfo = sysLoginService.appLogin(body);
+        return R.ok(tokenService.createToken(userInfo));
+    }
+
+    /**
+     * 验证码登录
+     *
+     * @param body
+     * @return
+     */
+    @ApiOperation(value = "验证码登录", tags = {"APP端"})
+    @PostMapping("/app/captchaLogin")
+    public R<?> appCaptchaLogin(@Validated @RequestBody AppCaptchaBody body) {
+        LoginUser userInfo = sysLoginService.appCaptchaLogin(body);
+        return R.ok(tokenService.createToken(userInfo));
+    }
+
+    /**
+     * 验证手机号
+     *
+     * @param body
+     * @return
+     */
+    @ApiOperation(value = "忘记密码-验证手机号", tags = {"APP端"})
+    @PostMapping("/app/verifyPhone")
+    public R<VerifyResultVO> verifyPhone(@Validated @RequestBody AppCaptchaBody body) {
+        return R.ok(sysLoginService.verifyPhone(body));
+    }
+
+    /**
+     * 设置新密码
+     *
+     * @param body
+     * @return
+     */
+    @ApiOperation(value = "设置新密码", tags = {"APP端"})
+    @PostMapping("/app/changePassword")
+    public R<?> changePassword(@Validated @RequestBody AppChangePwdBody body) {
+        sysLoginService.changePassword(body);
+        return R.ok();
+    }
+
+    /**
+     * APP微信登录
+     *
+     * @param body
+     * @return
+     */
+    @ApiOperation(value = "微信登录", tags = {"APP端"})
+    @PostMapping("/app/wxLogin")
+    public R<?> thirdLogin(@Validated @RequestBody AppWXLoginBody body) {
+        WXLoginUser wxLoginUser = sysLoginService.wxLogin(body);
+        return R.ok(tokenService.createToken4WXLoginUser(wxLoginUser));
+    }
+
+    /**
+     * 苹果登录
+     *
+     * @param appleId
+     * @return
+     */
+    @ApiOperation(value = "苹果登录", tags = {"APP端"})
+    @PostMapping("/app/appleLogin")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "appleId", value = "苹果ID", required = true, dataType = "String", paramType = "query")})
+    public R<?> appleLogin(@RequestParam(value = "appleId", required = true) String appleId) {
+        AppleLoginUser appleLoginUser = sysLoginService.appleLogin(appleId);
+        return R.ok(tokenService.createToken4WXLoginUser(appleLoginUser));
+    }
+
+    /**
+     * 微信苹果登录-验证手机号
+     *
+     * @param body
+     * @return
+     */
+    @ApiOperation(value = "微信苹果登录-验证手机号", tags = {"APP端"})
+    @PostMapping("/app/verifyCellPhone")
+    public R<?> verifyCellPhone(@Validated @RequestBody AppVerifyCellPhoneBody body) {
+        return R.ok(tokenService.createToken4WXLoginUser(sysLoginService.verifyCellPhone(body)));
+    }
+
+    /**
+     * 管理后台登录
+     *
+     * @param form
+     * @return
+     */
     @ApiOperation(value = "管理后台登录",tags = {"管理后台"})
     @PostMapping("login")
     public R<?> login(@RequestBody LoginBody form)

--
Gitblit v1.7.1