fix 用户多角色查询重复菜单bug

This commit is contained in:
不做码农 2022-02-27 09:02:18 +08:00
parent 1de9db2b77
commit 58a4a54ed0

View File

@ -107,12 +107,13 @@ namespace ZR.Repository.System
public List<SysMenu> SelectMenuTreeByRoleIds(List<long> roleIds) public List<SysMenu> SelectMenuTreeByRoleIds(List<long> roleIds)
{ {
var menuTypes = new string[] { "M", "C" }; var menuTypes = new string[] { "M", "C" };
return Context.Queryable<SysMenu, SysRoleMenu>((menu, roleMenu) => new JoinQueryInfos( return Context.Queryable<SysMenu>()
JoinType.Left, menu.menuId == roleMenu.Menu_id .Where((menu) =>
)) menuTypes.Contains(menu.menuType)
.Where((menu, roleMenu) => roleIds.Contains(roleMenu.Role_id) && menuTypes.Contains(menu.menuType) && menu.status == "0") && menu.status == "0"
.OrderBy((menu, roleMenu) => new { menu.parentId, menu.orderNum }) && SqlFunc.Subqueryable<SysRoleMenu>().Where( s => roleIds.Contains(s.Role_id) && s.Menu_id == menu.menuId).Any())
.Select((menu, roleMenu) => menu).ToList(); .OrderBy((menu) => new { menu.parentId, menu.orderNum })
.Select((menu) => menu).ToList();
} }
#endregion #endregion