From 2862c3e4da3adbb4bea43151514f0c43b86476d6 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期六, 07 九月 2024 17:49:17 +0800
Subject: [PATCH] APP端冥想首页相关接口

---
 xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/service/TokenService.java |   70 +++++++++++++++++++++-------------
 1 files changed, 43 insertions(+), 27 deletions(-)

diff --git a/xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/service/TokenService.java b/xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/service/TokenService.java
index b36ae3e..d4a3a53 100644
--- a/xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/service/TokenService.java
+++ b/xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/service/TokenService.java
@@ -9,8 +9,8 @@
 import com.xinquan.common.core.utils.uuid.IdUtils;
 import com.xinquan.common.redis.service.RedisService;
 import com.xinquan.common.security.utils.SecurityUtils;
+import com.xinquan.system.api.model.AppLoginUser;
 import com.xinquan.system.api.model.LoginUser;
-import com.xinquan.system.api.model.WXLoginUser;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
@@ -36,6 +36,7 @@
     private final static long expireTime = CacheConstants.EXPIRATION;
 
     private final static String ACCESS_TOKEN = CacheConstants.LOGIN_TOKEN_KEY;
+    private final static String APP_USER_ACCESS_TOKEN = CacheConstants.APP_USER_LOGIN_TOKEN_KEY;
 
     private final static Long MILLIS_MINUTE_TEN = CacheConstants.REFRESH_TIME * MILLIS_MINUTE;
 
@@ -163,40 +164,55 @@
         redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
     }
 
+    private void refreshToken4AppLoginUser(AppLoginUser appLoginUser) {
+        appLoginUser.setLoginTime(System.currentTimeMillis());
+        appLoginUser.setExpireTime(appLoginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
+        // 根据uuid将loginUser缓存
+        String userKey = getTokenKeyByAppLoginUser(appLoginUser.getToken());
+        redisService.setCacheObject(userKey, appLoginUser, expireTime, TimeUnit.MINUTES);
+    }
+
+    private String getTokenKeyByAppLoginUser(String token) {
+        return APP_USER_ACCESS_TOKEN + token;
+    }
+
     private String getTokenKey(String token)
     {
         return ACCESS_TOKEN + token;
     }
 
-    public Map<String, Object> createToken4WXLoginUser(WXLoginUser wxLoginUser) {
-        LoginUser loginUser = new LoginUser();
+    /**
+     * app用户创建token
+     *
+     * @param appLoginUser
+     * @return
+     */
+    public AppLoginUser createToken4AppLoginUser(AppLoginUser appLoginUser) {
         // Jwt存储信息
         Map<String, Object> claimsMap = new HashMap<String, Object>();
         // 接口返回信息
         Map<String, Object> rspMap = new HashMap<String, Object>();
-        // 用户为空只返回openid
-        rspMap.put("cellPhone", "");
-        rspMap.put("access_token", "");
-        if (wxLoginUser.getSysUser() != null) {
-            loginUser.setSysUser(wxLoginUser.getSysUser());
-            String token = IdUtils.fastUUID();
-            Long userId = loginUser.getSysUser().getUserId();
-            String userName = loginUser.getSysUser().getUserName();
-            loginUser.setToken(token);
-            loginUser.setUserid(userId);
-            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);
-            if (StringUtils.isNotBlank(wxLoginUser.getCellPhone())) {
-                rspMap.put("cellPhone", wxLoginUser.getCellPhone());
-            } else {
-                rspMap.put("cellPhone", "");
-            }
-            rspMap.put("access_token", JwtUtils.createToken(claimsMap));
-            rspMap.put("expires_in", expireTime);
-        }
-        return rspMap;
+        String token = IdUtils.fastUUID();
+        Long userId = appLoginUser.getAppUserId();
+        String userName = appLoginUser.getSysUser().getNickName();
+        appLoginUser.setToken(token);
+        appLoginUser.setUserid(userId);
+        appLoginUser.setIpaddr(IpUtils.getIpAddr());
+        LoginUser loginUser = new LoginUser();
+        loginUser.setSysUser(appLoginUser.getSysUser());
+        loginUser.setToken(token);
+        loginUser.setUserid(userId);
+        loginUser.setUsername(userName);
+        loginUser.setIpaddr(IpUtils.getIpAddr());
+        refreshToken(loginUser);
+        // refreshToken4AppLoginUser(appLoginUser);
+        claimsMap.put(SecurityConstants.USER_KEY, token);
+        claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
+        claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
+        appLoginUser.setAccessToken(JwtUtils.createToken(claimsMap));
+        appLoginUser.setExpireIn(expireTime);
+        return appLoginUser;
     }
+
+
 }
\ No newline at end of file

--
Gitblit v1.7.1