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 |   61 +++++++++++++++++++++++++++---
 1 files changed, 55 insertions(+), 6 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 c305f70..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
@@ -1,11 +1,5 @@
 package com.xinquan.common.security.service;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-import javax.servlet.http.HttpServletRequest;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
 import com.xinquan.common.core.constant.CacheConstants;
 import com.xinquan.common.core.constant.SecurityConstants;
 import com.xinquan.common.core.utils.JwtUtils;
@@ -15,7 +9,14 @@
 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 java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+import javax.servlet.http.HttpServletRequest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 /**
  * token验证处理
@@ -35,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;
 
@@ -162,8 +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;
     }
+
+    /**
+     * 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>();
+        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