From 7109e2fefaa46caffcd36b44828f48e0f8a790ba Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期二, 11 七月 2023 09:36:50 +0800
Subject: [PATCH] 管理台bug和用户端

---
 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java |   91 ++++++++++++++++++++++++++++++++++-----------
 1 files changed, 68 insertions(+), 23 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
index 4f24165..e064b56 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
@@ -1,14 +1,7 @@
 package com.ruoyi.common.security.service;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-import javax.servlet.http.HttpServletRequest;
-
-import com.ruoyi.system.api.model.AppMiniLoginVo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
 import com.ruoyi.common.core.constant.CacheConstants;
+import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.utils.JwtUtils;
 import com.ruoyi.common.core.utils.ServletUtils;
@@ -17,11 +10,21 @@
 import com.ruoyi.common.core.utils.uuid.IdUtils;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.system.api.model.AppMiniLoginVo;
 import com.ruoyi.system.api.model.LoginUser;
+import com.ruoyi.system.api.model.OauthUserVo;
+import com.ruoyi.system.api.model.QwH5LoginVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 /**
  * token验证处理
- * 
+ *
  * @author jqs
  */
 @Component
@@ -34,7 +37,7 @@
 
     protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND;
 
-    private final static long expireTime = CacheConstants.EXPIRATION;
+    private final static long EXPIRE_TIME = CacheConstants.EXPIRATION;
 
     private final static String ACCESS_TOKEN = CacheConstants.LOGIN_TOKEN_KEY;
 
@@ -55,15 +58,15 @@
         refreshToken(loginUser);
 
         // Jwt存储信息
-        Map<String, Object> claimsMap = new HashMap<String, Object>();
+        Map<String, Object> claimsMap = new HashMap<>();
         claimsMap.put(SecurityConstants.USER_KEY, token);
         claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
         claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
-
+        claimsMap.put(SecurityConstants.LOGIN_FROM, Constants.FROM_STAFF);
         // 接口返回信息
         Map<String, Object> rspMap = new HashMap<String, Object>();
         rspMap.put("access_token", JwtUtils.createToken(claimsMap));
-        rspMap.put("expires_in", expireTime);
+        rspMap.put("expires_in", EXPIRE_TIME);
         return rspMap;
     }
 
@@ -73,7 +76,47 @@
     public Map<String, Object> createMiniToken(AppMiniLoginVo appMiniLoginVo)
     {
         LoginUser loginUser = new LoginUser();
-        loginUser.setSysUser(appMiniLoginVo.getSysUser());
+        // Jwt存储信息
+        Map<String, Object> claimsMap = new HashMap<String, Object>();
+        // 接口返回信息
+        Map<String, Object> rspMap = new HashMap<String, Object>();
+        //用户为空只返回openid
+        rspMap.put("mobile","");
+        rspMap.put("access_token", "");
+        if(appMiniLoginVo.getSysUser()!=null){
+            loginUser.setSysUser(appMiniLoginVo.getSysUser());
+            String token = IdUtils.fastUUID();
+            Long userId = loginUser.getSysUser().getUserId();
+            String userName = loginUser.getSysUser().getUserName();
+            loginUser.setToken(token);
+            loginUser.setUserid(userId);
+            loginUser.setUsername(userName);
+            loginUser.setIpaddr(IpUtils.getIpAddr());
+            refreshToken(loginUser);
+            claimsMap.put(SecurityConstants.USER_KEY, token);
+            claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
+            claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
+            claimsMap.put(SecurityConstants.LOGIN_FROM, Constants.FROM_MINI_APP);
+            if(StringUtils.isNotBlank(appMiniLoginVo.getMobile())){
+                rspMap.put("mobile",appMiniLoginVo.getMobile() );
+            }else{
+                rspMap.put("mobile","");
+            }
+            rspMap.put("access_token", JwtUtils.createToken(claimsMap));
+            rspMap.put("expires_in", EXPIRE_TIME);
+        }
+        rspMap.put("wx_unionid", appMiniLoginVo.getWxUnionid());
+        rspMap.put("mini_openid", appMiniLoginVo.getMiniOpenid());
+        return rspMap;
+    }
+
+    /**
+     * 创建企业微信令牌
+     */
+    public OauthUserVo createQwH5Token(QwH5LoginVo qwH5LoginVo)
+    {
+        LoginUser loginUser = new LoginUser();
+        loginUser.setSysUser(qwH5LoginVo.getSysUser());
         String token = IdUtils.fastUUID();
         Long userId = loginUser.getSysUser().getUserId();
         String userName = loginUser.getSysUser().getUserName();
@@ -88,13 +131,15 @@
         claimsMap.put(SecurityConstants.USER_KEY, token);
         claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
         claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
-
+        claimsMap.put(SecurityConstants.LOGIN_FROM, Constants.FROM_SHOP);
         // 接口返回信息
-        Map<String, Object> rspMap = new HashMap<String, Object>();
-        rspMap.put("access_token", JwtUtils.createToken(claimsMap));
-        rspMap.put("expires_in", expireTime);
-        rspMap.put("mini_openid", appMiniLoginVo.getMiniOpenid());
-        return rspMap;
+        OauthUserVo oauthUserVo = new OauthUserVo();
+        oauthUserVo.setShopId(qwH5LoginVo.getShopId());
+        oauthUserVo.setToken(JwtUtils.createToken(claimsMap));
+        oauthUserVo.setExpiresIn(EXPIRE_TIME);
+        oauthUserVo.setUserid(qwH5LoginVo.getUserid());
+        oauthUserVo.setMobile(qwH5LoginVo.getMobile());
+        return oauthUserVo;
     }
 
     /**
@@ -188,14 +233,14 @@
     public void refreshToken(LoginUser loginUser)
     {
         loginUser.setLoginTime(System.currentTimeMillis());
-        loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
+        loginUser.setExpireTime(loginUser.getLoginTime() + EXPIRE_TIME * MILLIS_MINUTE);
         // 根据uuid将loginUser缓存
         String userKey = getTokenKey(loginUser.getToken());
-        redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
+        redisService.setCacheObject(userKey, loginUser, EXPIRE_TIME, TimeUnit.MINUTES);
     }
 
     private String getTokenKey(String token)
     {
         return ACCESS_TOKEN + token;
     }
-}
\ No newline at end of file
+}

--
Gitblit v1.7.1