From adac148db7cefc6848933989d407b1827749a5a6 Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期一, 07 七月 2025 08:49:49 +0800 Subject: [PATCH] bug修改 --- pt-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java | 45 ++++++++++++++++++++++++++++++++------------- 1 files changed, 32 insertions(+), 13 deletions(-) diff --git a/pt-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/pt-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java index f80da37..e5aa345 100644 --- a/pt-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java +++ b/pt-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java @@ -1,17 +1,17 @@ package com.ruoyi.web.controller.system; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Set; +import com.ruoyi.system.mapper.SysMenuMapper; import com.ruoyi.system.object.dto.SetPasswordDTO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysMenu; @@ -33,6 +33,7 @@ */ @Api(value = "登录控制器",tags = "登录控制器") @RestController +@RequestMapping("/system") public class SysLoginController { @Autowired @@ -43,6 +44,8 @@ private SysPermissionService permissionService; @Autowired private TokenService tokenService; + @Autowired + private SysMenuMapper sysMenuMapper; /** * 登录方法 @@ -79,20 +82,36 @@ public AjaxResult getInfo() { LoginUser loginUser = SecurityUtils.getLoginUser(); SysUser user = loginUser.getUser(); - // 角色集合 - Set<String> roles = permissionService.getRolePermission(user); // 权限集合 - Set<String> permissions = permissionService.getMenuPermission(user); - if (!loginUser.getPermissions().equals(permissions)) { - loginUser.setPermissions(permissions); - tokenService.refreshToken(loginUser); - } AjaxResult ajax = AjaxResult.success(); ajax.put("user", user); - ajax.put("roles", roles); - ajax.put("permissions", permissions); + ajax.put("permissions" ,getUserPaths(user.getUserId())); return ajax; } + /** + * 获取用户拥有的所有path + * @param userId 用户ID + * @return 用户拥有的所有path列表 + */ + public List<String> getUserPaths(Long userId) { + List<Long> ids = new ArrayList<>(); + // 根据用户id查询出menus + List<SysMenu> menus = sysMenuMapper.selectMenusByUserId(userId); + //将id和父类id取出 + menus.forEach(menu -> { + ids.add(menu.getMenuId()); + if (null!= menu.getParentId() && menu.getParentId() != 0) { + ids.add(menu.getParentId()); + } + }); + + if (menus.isEmpty()) { + return Collections.emptyList(); + } + + + return sysMenuMapper.getPathsByMenuIds(ids); + } /** * 获取路由信息 -- Gitblit v1.7.1