From 185f5dc7c3c49f565da51cd9c2f7750f30990d4a Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 11 十一月 2024 13:28:29 +0800
Subject: [PATCH] 代码提交

---
 xinquan-auth/src/main/java/com/xinquan/auth/controller/TokenController.java |   52 ++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 44 insertions(+), 8 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 7268679..054a409 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
@@ -13,6 +13,8 @@
 import com.xinquan.common.security.auth.AuthUtil;
 import com.xinquan.common.security.service.TokenService;
 import com.xinquan.common.security.utils.SecurityUtils;
+import com.xinquan.system.api.domain.AppUser;
+import com.xinquan.system.api.domain.SysMenu;
 import com.xinquan.system.api.domain.SysRole;
 import com.xinquan.system.api.domain.SysUser;
 import com.xinquan.system.api.feignClient.SysUserClient;
@@ -21,12 +23,16 @@
 import com.xinquan.system.api.model.AppVerifyCellPhoneBody;
 import com.xinquan.system.api.model.AppWXLoginBody;
 import com.xinquan.system.api.model.LoginUser;
+import com.xinquan.user.api.feign.RemoteAppUserService;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import java.time.LocalDateTime;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
@@ -54,6 +60,8 @@
     private SysLoginService sysLoginService;
     @Autowired
     private SysUserClient userClient;
+    @Resource
+    private RemoteAppUserService remoteAppUserService;
 
     /**
      * 发送验证码
@@ -64,10 +72,33 @@
     @ApiOperation(value = "发送验证码",tags = {"APP端"})
     @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")})
+            @ApiImplicitParam(name = "type", value = "类型 1=注册 2=验证码登录 3=找回密码 4=第三方登录后验证手机 5=切换手机号 6= 添加银行卡", required = true, dataType = "Integer", paramType = "query")})
     public R<?> sendCaptchaCode(
             @RequestParam(value = "cellPhone", required = true) String cellPhone,
             @RequestParam("type") Integer type) {
+
+        if(type==5){
+            LoginUser loginUser = tokenService.getLoginUser();
+            if (loginUser==null){
+                return R.tokenError("登录失效");
+            }
+            AppUser data1 = remoteAppUserService.getAppUserById(loginUser.getUserid() + "").getData();
+            if (!cellPhone.equals(data1.getCellPhone())){
+                return R.fail("手机号错误");
+            }
+        }
+        if(type==5){
+            AppUser data = remoteAppUserService.getUserByPhone(cellPhone).getData();
+            if (data!=null){
+                return R.fail("当前手机号已被绑定");
+            }
+        }
+        if(type==4){
+            AppUser data = remoteAppUserService.getUserByPhone(cellPhone).getData();
+            if (data!=null && (data.getWxOpenId()!=null||data.getAppleId()!=null)){
+                return R.fail("当前手机号已被绑定");
+            }
+        }
         sysLoginService.sendCaptchaCode(cellPhone, type);
         return R.ok();
     }
@@ -79,7 +110,7 @@
      */
     @ApiOperation(value = "注册账户",tags = {"APP端"})
     @PostMapping("/app/register")
-    public R<AppLoginUser> appRegister(@Validated @RequestBody AppRegisterBody appRegisterBody)
+    public R<AppLoginUser> appRegister(@RequestBody AppRegisterBody appRegisterBody)
     {
         // 用户注册
         AppLoginUser appLoginUser = sysLoginService.appRegister(appRegisterBody);
@@ -159,7 +190,9 @@
     @ApiOperation(value = "苹果登录", tags = {"APP端"})
     @PostMapping("/app/appleLogin")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "appleId", value = "苹果ID", required = true, dataType = "String", paramType = "query")})
+            @ApiImplicitParam(name = "appleId", value = "苹果ID", required = true, dataType = "String", paramType = "query"),
+    }
+    )
     public R<AppLoginUser> appleLogin(
             @RequestParam(value = "appleId", required = true) String appleId) {
         AppLoginUser appLoginUser = sysLoginService.appleLogin(appleId);
@@ -175,8 +208,10 @@
     @ApiOperation(value = "微信苹果登录-验证手机号", tags = {"APP端"})
     @PostMapping("/app/verifyCellPhone")
     public R<?> verifyCellPhone(@Validated @RequestBody AppVerifyCellPhoneBody body) {
+        AppLoginUser appLoginUser = sysLoginService.verifyCellPhone(body);
+
         return R.ok(tokenService.createToken4AppLoginUser(
-                sysLoginService.verifyCellPhone(body)));
+                appLoginUser));
     }
 
     /**
@@ -193,19 +228,20 @@
         LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword());
         HashMap<String, Object> map = new HashMap<>();
         map.put("token",tokenService.createToken(userInfo));
-        List<SysRole> roles = userInfo.getSysUser().getRoles();
+        Set<String> roles = userInfo.getRoles();
+
         if(CollectionUtils.isEmpty(roles)){
             return R.fail("请关联角色!");
         }
-
-        map.put("roleName",roles.get(0).getRoleName());
+        map.put("roleName",roles.stream().findFirst().get());
         map.put("info",userInfo);
+        List<SysMenu> data = userClient.roleInfoFromUserId(userInfo.getUserid()).getData();
+        map.put("menus",data);
         // 修改用户最后登录时间
         SysUser sysUser = new SysUser();
         sysUser.setUserId(userInfo.getSysUser().getUserId());
         sysUser.setLoginDate(LocalDateTime.now());
         System.out.println("修改用户登录时间"+sysUser);
-        userClient.updateSysUser(sysUser);
         // 获取登录token
         return R.ok(map);
     }

--
Gitblit v1.7.1