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