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 | 51 +++++++++++++++++++++++++++++++++++---------------- 1 files changed, 35 insertions(+), 16 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 43148cb..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; /** * 登录方法 @@ -50,7 +53,7 @@ * @param loginBody 登录信息 * @return 结果 */ - @ApiOperation(value = "登录", notes = "登录") + @ApiOperation(value = "登录", notes = "username:hlg password:e10adc3949ba59abbe56e057f20f883e(123456) 密码前端需MD5加密传输") @PostMapping("/login") public AjaxResult login(@RequestBody LoginBody loginBody) { AjaxResult ajax = AjaxResult.success(); @@ -79,19 +82,35 @@ 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); } /** @@ -99,13 +118,13 @@ * * @return 路由信息 */ - @ApiOperation(value = "获取路由信息", notes = "获取路由信息") +/* @ApiOperation(value = "获取路由信息", notes = "获取路由信息") @GetMapping("getRouters") public AjaxResult getRouters() { Long userId = SecurityUtils.getUserId(); List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId); return AjaxResult.success(menuService.buildMenus(menus)); - } + }*/ /** * 退出登录 -- Gitblit v1.7.1