From d45ec43365b9f79d62c3f303dda7172acb3c4776 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 14 八月 2025 10:36:50 +0800
Subject: [PATCH] SSO代码提交

---
 ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java |   17 ++++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java  |   20 ++++++++++
 ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml                  |    3 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java |   24 ++++++------
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java |   16 ++++---
 5 files changed, 61 insertions(+), 19 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index 28bd80e..0ba9bdc 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -6,6 +6,7 @@
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginBody;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.web.service.SysLoginService;
 import com.ruoyi.framework.web.service.SysPermissionService;
 import com.ruoyi.system.service.ISysMenuService;
@@ -54,6 +55,25 @@
         return ajax;
     }
 
+    /**
+     * 鐧诲綍鏂规硶
+     *
+     * @param loginBody 鍗曠偣鐧诲綍淇℃伅
+     * @return 缁撴灉
+     */
+    @PostMapping("/SSOLogin")
+    public AjaxResult SSOLogin(@RequestBody LoginBody loginBody) {
+        AjaxResult ajax = AjaxResult.success();
+        // 鐢熸垚浠ょ墝
+        if (StringUtils.isEmpty(loginBody.getUsername()) || StringUtils.isEmpty(loginBody.getOrgid())) {
+            return AjaxResult.error("鐢ㄦ埛鍚嶆垨缁勭粐鏈烘瀯涓嶈兘涓虹┖");
+        }
+
+        String token = loginService.loginByUserName(loginBody.getUsername() + "&" + loginBody.getOrgid());
+        ajax.put(Constants.TOKEN, token);
+        return ajax;
+    }
+
     @GetMapping("/getToken")
     public void getToken(HttpServletResponse response) throws IOException {
         // 鐢熸垚鎴栬幏鍙杢oken
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java
index bbeb900..3d375ee 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java
@@ -1,6 +1,9 @@
 package com.ruoyi.web.controller.system;
 
 import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.model.LoginUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
@@ -27,8 +30,7 @@
  */
 @RestController
 @RequestMapping("/system/notice")
-public class SysNoticeController extends BaseController
-{
+public class SysNoticeController extends BaseController {
     @Autowired
     private ISysNoticeService noticeService;
 
@@ -37,9 +39,11 @@
      */
     //@PreAuthorize("@ss.hasPermi('system:notice:list')")
     @GetMapping("/list")
-    public TableDataInfo list(SysNotice notice)
-    {
+    public TableDataInfo list(SysNotice notice) {
         startPage();
+        LoginUser loginUser = getLoginUser();
+        SysUser user = loginUser.getUser();
+        notice.setOrgid(user.getOrgid());
         List<SysNotice> list = noticeService.selectNoticeList(notice);
         return getDataTable(list);
     }
@@ -49,8 +53,7 @@
      */
     //@PreAuthorize("@ss.hasPermi('system:notice:query')")
     @GetMapping(value = "/{noticeId}")
-    public AjaxResult getInfo(@PathVariable Long noticeId)
-    {
+    public AjaxResult getInfo(@PathVariable Long noticeId) {
         return success(noticeService.selectNoticeById(noticeId));
     }
 
@@ -60,8 +63,7 @@
     //@PreAuthorize("@ss.hasPermi('system:notice:add')")
     @Log(title = "閫氱煡鍏憡", businessType = BusinessType.INSERT)
     @PostMapping("/add")
-    public AjaxResult add(@Validated @RequestBody SysNotice notice)
-    {
+    public AjaxResult add(@Validated @RequestBody SysNotice notice) {
         notice.setCreateBy(getUsername());
         return toAjax(noticeService.insertNotice(notice));
     }
@@ -72,8 +74,7 @@
     //@PreAuthorize("@ss.hasPermi('system:notice:edit')")
     @Log(title = "閫氱煡鍏憡", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
-    public AjaxResult edit(@Validated @RequestBody SysNotice notice)
-    {
+    public AjaxResult edit(@Validated @RequestBody SysNotice notice) {
         notice.setUpdateBy(getUsername());
         return toAjax(noticeService.updateNotice(notice));
     }
@@ -84,8 +85,7 @@
     //@PreAuthorize("@ss.hasPermi('system:notice:remove')")
     @Log(title = "閫氱煡鍏憡", businessType = BusinessType.DELETE)
     @GetMapping("/remove/{noticeIds}")
-    public AjaxResult remove(@PathVariable Long[] noticeIds)
-    {
+    public AjaxResult remove(@PathVariable Long[] noticeIds) {
         return toAjax(noticeService.deleteNoticeByIds(noticeIds));
     }
 }
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
index eedaef8..de58cf7 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -3,6 +3,7 @@
 import javax.annotation.Resource;
 
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.security.authentication.BadCredentialsException;
@@ -92,6 +93,22 @@
         return tokenService.createToken(loginUser);
     }
 
+
+    public String loginByUserName(String userName) {
+        SysUser sysUser = userService.selectUserByUserName2(userName);
+        if (ObjectUtils.isNotEmpty(sysUser)) {
+            // 鏋勫缓鐧诲綍鐢ㄦ埛瀵硅薄
+            LoginUser loginUser = new LoginUser();
+            loginUser.setUser(sysUser);
+            loginUser.setUserId(sysUser.getUserId());
+            // 鍒涘缓 token
+            String token = tokenService.createToken(loginUser);
+            // 鐢熸垚token
+            return token;
+        }
+        return null;
+    }
+
     /**
      * 鏍¢獙楠岃瘉鐮�
      *
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java
index 765438b..3bb03a0 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java
@@ -1,6 +1,8 @@
 package com.ruoyi.system.service.impl;
 
 import java.util.List;
+
+import com.ruoyi.common.core.domain.model.LoginUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.system.domain.SysNotice;
@@ -9,7 +11,7 @@
 
 /**
  * 鍏憡 鏈嶅姟灞傚疄鐜�
- * 
+ *
  * @author ruoyi
  */
 @Service
@@ -20,7 +22,7 @@
 
     /**
      * 鏌ヨ鍏憡淇℃伅
-     * 
+     *
      * @param noticeId 鍏憡ID
      * @return 鍏憡淇℃伅
      */
@@ -32,7 +34,7 @@
 
     /**
      * 鏌ヨ鍏憡鍒楄〃
-     * 
+     *
      * @param notice 鍏憡淇℃伅
      * @return 鍏憡闆嗗悎
      */
@@ -44,7 +46,7 @@
 
     /**
      * 鏂板鍏憡
-     * 
+     *
      * @param notice 鍏憡淇℃伅
      * @return 缁撴灉
      */
@@ -56,7 +58,7 @@
 
     /**
      * 淇敼鍏憡
-     * 
+     *
      * @param notice 鍏憡淇℃伅
      * @return 缁撴灉
      */
@@ -68,7 +70,7 @@
 
     /**
      * 鍒犻櫎鍏憡瀵硅薄
-     * 
+     *
      * @param noticeId 鍏憡ID
      * @return 缁撴灉
      */
@@ -80,7 +82,7 @@
 
     /**
      * 鎵归噺鍒犻櫎鍏憡淇℃伅
-     * 
+     *
      * @param noticeIds 闇�瑕佸垹闄ょ殑鍏憡ID
      * @return 缁撴灉
      */
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml
index 9ba3964..cd51b5a 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml
@@ -52,6 +52,9 @@
             <if test="createBy != null and createBy != ''">
                 AND create_by like concat('%', #{createBy}, '%')
             </if>
+                   <if test="orgid != null and orgid != ''">
+                AND orgid = #{orgid}
+            </if>
         </where>
     </select>
 

--
Gitblit v1.9.3