Преглед изворни кода

fix: 角色菜单数据加载问题处理

yang kai пре 2 година
родитељ
комит
df0a2aabe3

+ 2 - 8
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java

@@ -60,14 +60,8 @@ public class SysMenuController extends BaseController
     @GetMapping("/treeselect")
     public AjaxResult treeselect(SysMenu menu)
     {
-        if (getTenantId() != null) {
-            List<SysMenu> menus = menuService.selectMenuList(menu, getUserId(), getTenantId());
-            return success(menuService.buildMenuTreeSelect(menus));
-        } else {
-            List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
-            return success(menuService.buildMenuTreeSelect(menus));
-        }
-
+        List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
+        return success(menuService.buildMenuTreeSelect(menus));
     }
 
     /**

+ 0 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java

@@ -29,7 +29,6 @@ public interface ISysMenuService
      * @return 菜单列表
      */
     public List<SysMenu> selectMenuList(SysMenu menu, Long userId);
-    public List<SysMenu> selectMenuList(SysMenu menu, Long userId, Long tenantId);
 
     /**
      * 根据用户ID查询权限

+ 12 - 12
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java

@@ -8,6 +8,8 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
+
+import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.common.constant.Constants;
@@ -35,6 +37,9 @@ public class SysMenuServiceImpl implements ISysMenuService
 {
     public static final String PREMISSION_STRING = "perms[\"{0}\"]";
 
+    @Autowired
+    private ISysUserService userService;
+
     @Autowired
     private SysMenuMapper menuMapper;
 
@@ -66,11 +71,14 @@ public class SysMenuServiceImpl implements ISysMenuService
     public List<SysMenu> selectMenuList(SysMenu menu, Long userId)
     {
         List<SysMenu> menuList = null;
+        SysUser user = userService.selectUserById(userId);
         // 管理员显示所有菜单信息
         if (SysUser.isAdmin(userId))
         {
             menuList = menuMapper.selectMenuList(menu);
-        }  else
+        } else if (user.isTenantAdmin()) {
+            menuList = menuMapper.selectTenantMenuList(user.getTenantId());
+        } else
         {
             menu.getParams().put("userId", userId);
             menuList = menuMapper.selectMenuListByUserId(menu);
@@ -78,13 +86,6 @@ public class SysMenuServiceImpl implements ISysMenuService
         return menuList;
     }
 
-    @Override
-    public List<SysMenu> selectMenuList(SysMenu menu, Long userId, Long tenantId)
-    {
-        List<SysMenu> menuList = menuMapper.selectTenantMenuList(tenantId);
-        return menuList;
-    }
-
     /**
      * 根据用户ID查询权限
      * 
@@ -137,13 +138,12 @@ public class SysMenuServiceImpl implements ISysMenuService
     public List<SysMenu> selectMenuTreeByUserId(Long userId)
     {
         List<SysMenu> menus = null;
-        String userType = SecurityUtils.getUserType();
-        Long tenantId = SecurityUtils.getTenantId();
+        SysUser user = userService.selectUserById(userId);
         if (SecurityUtils.isAdmin(userId))
         {
             menus = menuMapper.selectMenuTreeAll();
-        } else if (SecurityUtils.isTenantAdmin(userType, tenantId)) {
-            menus = menuMapper.selectTenantMenuTreeAll(tenantId);
+        } else if (user.isTenantAdmin()) {
+            menus = menuMapper.selectTenantMenuTreeAll(user.getTenantId());
         } else {
             menus = menuMapper.selectMenuTreeByUserId(userId);
         }