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 |   43 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 43 insertions(+), 0 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 d25fb98..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
@@ -4,6 +4,7 @@
 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;
@@ -13,6 +14,7 @@
 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;
@@ -28,6 +30,7 @@
  *
  * @author ruoyi
  */
+@Slf4j
 @Component
 public class TokenService {
     // 浠ょ墝鑷畾涔夋爣璇�
@@ -51,6 +54,9 @@
     @Autowired
     private RedisCache redisCache;
 
+    @Autowired
+    private IConfigService configService;
+
     /**
      * 鑾峰彇鐢ㄦ埛韬唤淇℃伅
      *
@@ -66,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) {
             }
@@ -74,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