From ea9c33ab8ef00dd1611f2ed1ed9d331909e53a9f Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 01 四月 2026 17:39:00 +0800
Subject: [PATCH] 【丽水】单点登录

---
 smartor/src/main/java/com/smartor/domain/SSOUserInfo.java                 |    5 +++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/sso/SSOController.java |   43 +++++++++++++++++++++++++++++--------------
 2 files changed, 34 insertions(+), 14 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/sso/SSOController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/sso/SSOController.java
index c659180..1338a84 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/sso/SSOController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/sso/SSOController.java
@@ -8,6 +8,7 @@
 import com.ruoyi.common.utils.OkHttpExample;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.http.HttpUtils;
+import com.ruoyi.framework.web.service.SysLoginService;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.service.ISysConfigService;
 import com.ruoyi.system.service.ISysUserService;
@@ -88,6 +89,9 @@
     private TokenService tokenService;
 
     @Autowired
+    private SysLoginService loginService;
+
+    @Autowired
     private ISysConfigService sysConfigService;
 
     private final RestTemplate restTemplate;
@@ -149,31 +153,42 @@
             log.info("鑾峰彇鍒扮殑token锛�" + accessToken);
             SSOUserInfo userInfo = getUserInfoLyra(accessToken.getAccess_token(), userInfoUrl,true);
             log.info("鑾峰彇鍒扮殑鐢ㄦ埛淇℃伅锛�" + userInfo);
-            createLocalSession(userInfo);
+//            createLocalSession(userInfo);
             if (StringUtils.isEmpty(path)) {
                 throw new BaseException("璇烽厤缃墠绔湴鍧�");
             }
-            String reviewUrl = "";
-            reviewUrl = UriComponentsBuilder.fromHttpUrl(path)
-                    .path("/loginSSO")
-                    .queryParam("token", accessToken.getAccess_token())
-                    .queryParam("orgid", userInfo.getZuZhiJGID())
-                    .queryParam("orgname", userInfo.getZuZhiJGMC())
-                    .queryParam("ZuHuID", userInfo.getYongHuID())
-                    .queryParam("deptCode", "null")
-                    .build()
-                    .toUriString();
 
-            log.info("鍗曠偣鐧婚檰閲嶅畾鍚戝湴鍧�涓猴細{}", reviewUrl);
-            redirectView.setUrl(reviewUrl);
-            redirectView.setStatusCode(HttpStatus.FOUND);
+            String userName =  userInfo.getZhiGongID();
+            String orgid = userInfo.getZuZhiJGID();
+            String campusid = "1";
+            String deptId = null;
+            String token = null;
+            log.info("銆怱SO鐧诲綍銆戣幏鍙栫敤鎴稵oken鍙傛暟锛�" + userInfo);
+            String loginToken = loginService.ssoLogin(userName, orgid, deptId, campusid, token);
+            if (StringUtils.isEmpty(loginToken)) {
+                log.error("銆怱SO鐧诲綍銆戠櫥褰曞け璐ワ紝userName={}, orgid={}", userName, orgid);
+                return buildRedirect(path + "/login");
+            }
+
+            String redirectUrl = path + "/loginSSO?token=" + loginToken + "&orgid=" + orgid + "&orgname=null&ZuHuID=null&deptCode=null";
+            log.info("銆怱SO鐧诲綍銆戦噸瀹氬悜鍦板潃锛歿}", redirectUrl);
+            return buildRedirect(redirectUrl);
+
         } catch (Exception e) {
             log.error("SSO鐧诲綍澶辫触", e);
             redirectView.setUrl(path + "/login?error=sso_failed");
             return redirectView;
 
         }
+    }
 
+    /**
+     * 鏋勫缓閲嶅畾鍚戣鍥�
+     */
+    private RedirectView buildRedirect(String url) {
+        RedirectView redirectView = new RedirectView();
+        redirectView.setUrl(url);
+        redirectView.setStatusCode(HttpStatus.MOVED_PERMANENTLY);
         return redirectView;
     }
 
diff --git a/smartor/src/main/java/com/smartor/domain/SSOUserInfo.java b/smartor/src/main/java/com/smartor/domain/SSOUserInfo.java
index 10cdec5..5f7c220 100644
--- a/smartor/src/main/java/com/smartor/domain/SSOUserInfo.java
+++ b/smartor/src/main/java/com/smartor/domain/SSOUserInfo.java
@@ -43,6 +43,11 @@
      */
     private String phone;
 
+    /**
+     * 鑱屽伐ID
+     */
+    private String zhiGongID;
+
     @Override
     public String toString() {
         return "SSOUserInfo{" +

--
Gitblit v1.9.3