From d2dace7dc16d324bd762efe4f79c9ca44d7a5407 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 19 八月 2024 16:17:15 +0800
Subject: [PATCH] 短信封装,小程序更换手机号

---
 ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java |   77 ++++++++++++++++++++++++++++----------
 1 files changed, 57 insertions(+), 20 deletions(-)

diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
index 85ebf14..7f333d2 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
@@ -3,19 +3,24 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
-import com.ruoyi.common.core.constant.SecurityConstants;
-import com.ruoyi.system.api.RemoteUserService;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.common.core.constant.Constants;
+import com.ruoyi.common.core.constant.MsgConstants;
+import com.ruoyi.common.core.utils.HttpUtils;
+import com.ruoyi.common.core.utils.MsgUtil;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.system.api.domain.SysRole;
 import com.ruoyi.system.api.domain.SysUser;
-import com.ruoyi.system.api.feignClient.SysLoginLogClient;
 import com.ruoyi.system.api.feignClient.SysUserClient;
-import com.ruoyi.system.domain.SysLoginLog;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import com.ruoyi.auth.form.LoginBody;
 import com.ruoyi.auth.form.RegisterBody;
 import com.ruoyi.auth.service.SysLoginService;
@@ -27,16 +32,15 @@
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.system.api.model.LoginUser;
 
-import java.net.InetAddress;
-import java.net.NetworkInterface;
-import java.time.LocalDateTime;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 
 /**
  * token 控制
  * 
  * @author ruoyi
  */
+@Slf4j
 @RestController
 public class TokenController
 {
@@ -47,7 +51,11 @@
     private SysLoginService sysLoginService;
     @Resource
     private SysUserClient userClient;
-    
+    @Autowired
+    private RedisService redisService;
+    @Autowired
+    private AppUserClient appUserClient;
+
     
     
     
@@ -60,11 +68,11 @@
         HashMap<String, Object> map = new HashMap<>();
         map.put("token",tokenService.createToken(userInfo));
         List<SysRole> roles = userInfo.getSysUser().getRoles();
-        if(CollectionUtils.isEmpty(roles)){
-            return R.fail("请关联角色!");
-        }
+//        if(CollectionUtils.isEmpty(roles)){
+//            return R.fail("请关联角色!");
+//        }
 
-        map.put("roleName",roles.get(0).getRoleName());
+//        map.put("roleName",roles.get(0).getRoleName());
         map.put("info",userInfo);
         // 修改用户最后登录时间
         SysUser sysUser = new SysUser();
@@ -74,10 +82,6 @@
         userClient.updateSysUser(sysUser);
         return R.ok(map);
     }
-    
-    
-    
-    
 
     @DeleteMapping("logout")
     public R<?> logout(HttpServletRequest request) {
@@ -89,6 +93,17 @@
             AuthUtil.logoutByToken(token);
             // 记录用户退出日志
             sysLoginService.logout(username, request);
+        }
+        return R.ok();
+    }
+
+    @DeleteMapping("logoutApplet")
+    public R<?> logoutApplet(HttpServletRequest request) {
+        String token = SecurityUtils.getToken(request);
+        if (StringUtils.isNotEmpty(token))
+        {
+            // 删除用户缓存记录
+            AuthUtil.logoutByToken(token);
         }
         return R.ok();
     }
@@ -113,4 +128,26 @@
         sysLoginService.register(registerBody.getUsername(), registerBody.getPassword(), request);
         return R.ok();
     }
+
+    /**
+     * 获取验证码
+     *
+     * @param phone 手机号
+     * @return 结果
+     */
+    @ApiOperation(value = "获取验证码",notes = "获取验证码",tags = {"更换手机号获取验证码"})
+    @GetMapping("getCode")
+    public AjaxResult getCode(@RequestParam("phone") String phone)
+    {
+        TAppUser appUser = appUserClient.selectByPhone(phone).getData();
+        if (Objects.nonNull(appUser)){
+            return AjaxResult.error("该手机号已绑定账号");
+        }
+        String code = MsgUtil.createCode();
+        redisService.setCacheObject(phone+Constants.APPLET,code,5L, TimeUnit.MINUTES);
+        String reqStr = MsgUtil.codeMsg(phone, code);
+        String result = HttpUtils.post(MsgConstants.SEND_URL, reqStr);
+        return AjaxResult.success(result);
+    }
+
 }

--
Gitblit v1.7.1