From d3e9a09cb54017a8063e5bfe3ace5012f66f3130 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 25 三月 2025 18:34:34 +0800
Subject: [PATCH] 修改统计bug

---
 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java |   43 +++++++++++++++++++++++++++----------------
 1 files changed, 27 insertions(+), 16 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 d748b39..2511ad1 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
@@ -5,8 +5,8 @@
 import java.util.concurrent.TimeUnit;
 import javax.servlet.http.HttpServletRequest;
 
-import com.ruoyi.common.core.exception.user.UserAppletException;
-import com.ruoyi.system.api.model.LoginUserApplet;
+import com.ruoyi.common.core.exception.auth.NotPermissionException;
+import com.ruoyi.system.api.model.LoginUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import com.ruoyi.common.core.constant.CacheConstants;
@@ -18,7 +18,6 @@
 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.LoginUser;
 
 /**
  * token验证处理
@@ -49,8 +48,6 @@
 		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);
 		
@@ -60,6 +57,7 @@
 		claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
 		claimsMap.put(SecurityConstants.USER_TYPE, "system");
 		claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
+		claimsMap.put(SecurityConstants.EXPIRATION_TIME, System.currentTimeMillis() + expireTime * MILLIS_MINUTE);
 		
 		// 接口返回信息
 		Map<String, Object> rspMap = new HashMap<String, Object>();
@@ -71,10 +69,10 @@
 	/**
 	 * 创建小程序令牌
 	 */
-	public Map<String, Object> createTokenApplet(LoginUserApplet loginUser) {
+	public Map<String, Object> createTokenApplet(LoginUser loginUser) {
 		String token = IdUtils.fastUUID();
-		Long userId = loginUser.getUserId();
-		String name = loginUser.getName();
+		Long userId = loginUser.getUserid();
+		String name = loginUser.getUsername();
 		loginUser.setToken(token);
 		loginUser.setIpaddr(IpUtils.getIpAddr());
 		refreshToken1(loginUser);
@@ -84,6 +82,7 @@
 		claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
 		claimsMap.put(SecurityConstants.USER_TYPE, "applet");
 		claimsMap.put(SecurityConstants.DETAILS_USERNAME, name);
+		claimsMap.put(SecurityConstants.EXPIRATION_TIME, System.currentTimeMillis() + expireAppletTime * MILLIS_MINUTE);
 		// 接口返回信息
 		Map<String, Object> rspMap = new HashMap<String, Object>();
 		rspMap.put("access_token", JwtUtils.createToken(claimsMap));
@@ -91,18 +90,27 @@
 		return rspMap;
 	}
 	
-	public LoginUserApplet getLoginUserApplet() {
-		LoginUserApplet loginUserAppletToken = getLoginUserAppletToken(ServletUtils.getRequest());
+	public LoginUser getLoginUserApplet() {
+		LoginUser loginUserAppletToken = getLoginUserAppletToken(ServletUtils.getRequest());
 		if (loginUserAppletToken == null) {
-			throw new RuntimeException("令牌已过期,请重新登录!");
+			System.out.println("loginUserAppletToken: "+loginUserAppletToken);
+			throw new NotPermissionException("令牌已过期,请重新登录!");
 		}
 		return loginUserAppletToken;
 	}
 	
-	public LoginUserApplet getLoginUserAppletToken(HttpServletRequest request) {
+	public LoginUser getLoginUserAppletToken(HttpServletRequest request) {
 		// 获取请求携带的令牌
 		String token = SecurityUtils.getToken(request);
 		return getLoginUserApplet(token);
+	}
+
+	/**
+	 * 判断用户是否登录
+	 */
+	public boolean isLoginApplet() {
+		LoginUser loginUserAppletToken = getLoginUserAppletToken(ServletUtils.getRequest());
+		return loginUserAppletToken != null;
 	}
 	
 	/**
@@ -110,8 +118,8 @@
 	 *
 	 * @return 用户信息
 	 */
-	public LoginUserApplet getLoginUserApplet(String token) {
-		LoginUserApplet user = null;
+	public LoginUser getLoginUserApplet(String token) {
+		LoginUser user = null;
 		try {
 			if (StringUtils.isNotEmpty(token)) {
 				String userKey = JwtUtils.getUserKeyApplet(token);
@@ -132,7 +140,10 @@
 	public LoginUser getLoginUser() {
 		LoginUser loginUser = getLoginUser(ServletUtils.getRequest());
 		if (loginUser == null) {
-			throw new RuntimeException("令牌已过期,请重新登录!");
+			throw new NotPermissionException("令牌已过期,请重新登录!");
+		}
+		if(null == loginUser.getUserid()){
+			loginUser.setUserid(loginUser.getSysUser().getUserId());
 		}
 		return loginUser;
 	}
@@ -211,7 +222,7 @@
 		redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
 	}
 	
-	public void refreshToken1(LoginUserApplet dto) {
+	public void refreshToken1(LoginUser dto) {
 		dto.setLoginTime(System.currentTimeMillis());
 		dto.setExpireTime(dto.getLoginTime() + expireAppletTime * MILLIS_MINUTE);
 		// 根据uuid将loginUser缓存

--
Gitblit v1.7.1