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