From 2d3b575ed96eee7ccd5b324baa3135d2236934ac Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 13 十一月 2026 16:39:37 +0800
Subject: [PATCH] 【市一】1、登录服务问题处理 2、电话挂断问题处理 3、查询报错问题处理
---
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java | 63 ++++++++++++++++++++++++++-----
1 files changed, 52 insertions(+), 11 deletions(-)
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java
index a9ec8b3..a1b7c72 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java
@@ -1,20 +1,10 @@
package com.ruoyi.framework.web.service;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-import javax.servlet.http.HttpServletRequest;
-
-import com.ruoyi.common.core.domain.entity.SysUser;
-import com.sun.org.apache.bcel.internal.generic.NEW;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.core.service.IConfigService;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.ip.AddressUtils;
@@ -24,12 +14,23 @@
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
/**
* token楠岃瘉澶勭悊
*
* @author ruoyi
*/
+@Slf4j
@Component
public class TokenService {
// 浠ょ墝鑷畾涔夋爣璇�
@@ -53,6 +54,9 @@
@Autowired
private RedisCache redisCache;
+ @Autowired
+ private IConfigService configService;
+
/**
* 鑾峰彇鐢ㄦ埛韬唤淇℃伅
*
@@ -68,6 +72,8 @@
String uuid = (String) claims.get(Constants.LOGIN_USER_KEY);
String userKey = getTokenKey(uuid);
LoginUser user = redisCache.getCacheObject(userKey);
+ // 缁熶竴鍦ㄤ細璇濊В鏋愬眰澶勭悊銆屽叏闄㈠尯鏉冮檺銆嶏紝閬垮厤鍚勪笟鍔℃帴鍙g洿鎺ヨ user.campusid 鏃剁粫杩囬厤缃��
+ applyCampusAuthority(user);
return user;
} catch (Exception e) {
}
@@ -76,6 +82,41 @@
}
/**
+ * 搴旂敤鍏ㄩ櫌鍖烘潈闄愩��
+ * <p>
+ * {@code sys.authority.campus.all} 閰嶇疆鐨勬槸鐢ㄦ埛鍚嶅垪琛紝鍛戒腑鍚庢妸褰撳墠浼氳瘽鐨�
+ * campusid 缃┖锛涘悗缁墍鏈夋寜 campusid 杩囨护鐨� SQL 閮戒細鍥犱负鍙傛暟涓虹┖鑰岃烦杩囬櫌鍖烘潯浠躲��
+ * <p>
+ * 杩欓噷姣忔璇诲彇浼氳瘽鏃堕兘鎸夊綋鍓嶉厤缃噸鏂板垽鏂紝鎵�浠ヤ笉闇�瑕侀噸鏂扮櫥褰曪紱鍚屾椂鍏煎閰嶇疆鍊�
+ * 涓甫绌烘牸銆佹崲琛屻�佷腑鏂囬�楀彿/鍒嗗彿鐨勬儏鍐点��
+ */
+ private void applyCampusAuthority(LoginUser loginUser) {
+ if (loginUser == null || loginUser.getUser() == null) {
+ return;
+ }
+ try {
+ String allCampus = configService.selectConfigByKey("sys.authority.campus.all");
+ if (StringUtils.isEmpty(allCampus)) {
+ return;
+ }
+ String userName = loginUser.getUser().getUserName();
+ if (StringUtils.isEmpty(userName)) {
+ return;
+ }
+ String[] users = allCampus.split("[,锛�;锛沑\s]+");
+ for (String item : users) {
+ if (userName.equals(item.trim())) {
+ loginUser.getUser().setCampusid(null);
+ return;
+ }
+ }
+ } catch (Exception e) {
+ // 閰嶇疆鏈嶅姟寮傚父涓嶈兘瀵艰嚧 token 瑙f瀽澶辫触锛屽惁鍒欎細鎶婄敤鎴风洿鎺ヨ涪涓嬬嚎銆�
+ log.warn("銆愬叏闄㈠尯鏉冮檺銆戞牎楠� sys.authority.campus.all 澶辫触锛寀serId={}", loginUser.getUserId(), e);
+ }
+ }
+
+ /**
* 璁剧疆鐢ㄦ埛韬唤淇℃伅
*/
public void setLoginUser(LoginUser loginUser) {
--
Gitblit v1.9.3