菜单管理树构建改用后端构建

This commit is contained in:
不做码农
2022-01-15 21:31:40 +08:00
parent 68686f60fc
commit 512c5bc176
9 changed files with 132 additions and 57 deletions

View File

@@ -8,34 +8,34 @@ namespace ZR.Service.System.IService
{
public interface ISysMenuService
{
public List<SysMenu> SelectMenuList(long userId);
//List<SysMenu> SelectMenuList(long userId);
public List<SysMenu> SelectMenuList(SysMenu menu, long userId);
List<SysMenu> SelectMenuList(SysMenu menu, long userId);
List<SysMenu> SelectTreeMenuList(SysMenu menu, long userId);
public SysMenu GetMenuByMenuId(int menuId);
SysMenu GetMenuByMenuId(int menuId);
int AddMenu(SysMenu menu);
public int AddMenu(SysMenu menu);
int EditMenu(SysMenu menu);
public int EditMenu(SysMenu menu);
int DeleteMenuById(int menuId);
public int DeleteMenuById(int menuId);
string CheckMenuNameUnique(SysMenu menu);
public string CheckMenuNameUnique(SysMenu menu);
int ChangeSortMenu(MenuDto menuDto);
public int ChangeSortMenu(MenuDto menuDto);
bool HasChildByMenuId(long menuId);
public bool HasChildByMenuId(long menuId);
List<SysMenu> SelectMenuTreeByUserId(long userId);
public List<SysMenu> SelectMenuTreeByUserId(long userId);
List<SysMenu> SelectMenuPermsListByUserId(long userId);
public List<SysMenu> SelectMenuPermsListByUserId(long userId);
List<string> SelectMenuPermsByUserId(long userId);
public List<string> SelectMenuPermsByUserId(long userId);
bool CheckMenuExistRole(long menuId);
public bool CheckMenuExistRole(long menuId);
List<RouterVo> BuildMenus(List<SysMenu> menus);
public List<RouterVo> BuildMenus(List<SysMenu> menus);
public List<TreeSelectVo> BuildMenuTreeSelect(List<SysMenu> menus);
List<TreeSelectVo> BuildMenuTreeSelect(List<SysMenu> menus);
}
}

View File

@@ -105,7 +105,7 @@ namespace ZR.Service.System.IService
/// <param name="userId"></param>
/// <returns></returns>
public List<long> SelectUserRoleMenus(long roleId);
List<long> SelectRoleMenuByRoleIds(long[] roleIds);
/// <summary>
/// 获取用户角色列表
/// </summary>

View File

@@ -4,7 +4,6 @@ using System.Linq;
using ZR.Model.System.Dto;
using ZR.Model.System;
using ZR.Model.System.Vo;
using ZR.Model.Vo;
using ZR.Model.Vo.System;
using ZR.Repository.System;
using ZR.Service.System.IService;
@@ -30,31 +29,39 @@ namespace ZR.Service
}
/// <summary>
/// 根据用户查询系统菜单列表
/// 获取所有菜单数(菜单管理)
/// </summary>
/// <param name="menu"></param>
/// <param name="userId"></param>
/// <returns></returns>
public List<SysMenu> SelectMenuList(long userId)
public List<SysMenu> SelectTreeMenuList(SysMenu menu, long userId)
{
return SelectMenuList(new SysMenu(), userId);
List<SysMenu> menuList;
if (SysRoleService.IsAdmin(userId))
{
menuList = MenuRepository.SelectTreeMenuList(menu);
}
else
{
var userRoles = SysRoleService.SelectUserRoles(userId);
menuList = MenuRepository.SelectTreeMenuListByUserId(menu, userRoles);
}
return menuList;
}
/// <summary>
/// 获取所有菜单(菜单管理)
/// 获取所有菜单列表
/// </summary>
/// <returns></returns>
public List<SysMenu> SelectMenuList(SysMenu menu, long userId)
{
List<SysMenu> menuList;
//if (SysUser.IsAdmin(userId))
if (SysRoleService.IsAdmin(userId))
{
menuList = MenuRepository.SelectMenuList(menu);
}
else
{
menuList = MenuRepository.SelectMenuListByUserId(menu, userId);
var userRoles = SysRoleService.SelectUserRoles(userId);
menuList = MenuRepository.SelectMenuListByRoles(menu, userRoles);
}
return menuList;
}

View File

@@ -216,7 +216,7 @@ namespace ZR.Service
/// <summary>
/// 判断是否是管理员
/// </summary>
/// <param name="userid"></param>
/// <param name="roleid"></param>
/// <returns></returns>
public bool IsRoleAdmin(long roleid)
{
@@ -228,13 +228,25 @@ namespace ZR.Service
/// <summary>
/// 获取角色菜单id集合
/// </summary>
/// <param name="userId"></param>
/// <param name="roleId"></param>
/// <returns></returns>
public List<long> SelectUserRoleMenus(long roleId)
{
var list = SysRoleRepository.SelectRoleMenuByRoleId(roleId);
return list.Select(x => x.Menu_id).ToList();
return list.Select(x => x.Menu_id).Distinct().ToList();
}
/// <summary>
/// 根据用户所有角色获取菜单
/// </summary>
/// <param name="roleIds"></param>
/// <returns></returns>
public List<long> SelectRoleMenuByRoleIds(long[] roleIds)
{
return SysRoleRepository.SelectRoleMenuByRoleIds(roleIds)
.Select(x => x.Menu_id)
.Distinct().ToList();
}
/// <summary>
@@ -270,6 +282,11 @@ namespace ZR.Service
return list.Select(x => x.RoleKey).ToList();
}
/// <summary>
/// 获取用户所有角色名
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public List<string> SelectUserRoleNames(long userId)
{
var list = SelectUserRoleListByUserId(userId);