| | |
| | | { |
| | | var logier = JwtUtils.GetCurrentLogier(); |
| | | var all = await (from m in repMenu.AsQueryable().AsNoTracking() |
| | | join rm in repRoleMenu.AsQueryable().AsNoTracking() on m.Id equals rm.MenuId |
| | | join ur in repUserInfoRole.AsQueryable().AsNoTracking() on rm.RoleId equals ur.RoleId |
| | | where ur.UserInfoId == logier.UserInfoId && !m.IsDisabled |
| | | join rm in repRoleMenu.AsQueryable().AsNoTracking() on m.Id equals rm.MenuId into rmg |
| | | from rmgi in rmg.DefaultIfEmpty() |
| | | join ur in repUserInfoRole.AsQueryable().AsNoTracking() on rmgi.RoleId equals ur.RoleId into urg |
| | | from urgi in urg.DefaultIfEmpty() |
| | | where (logier.Level == 999 || urgi.UserInfoId == logier.UserInfoId) && !m.IsDisabled |
| | | && (m.Type == EnumMenuType.Menu || m.Type == EnumMenuType.Page || m.Type == EnumMenuType.Modal) |
| | | select m).ProjectToType<GetMenusQueryResultItem>().ToListAsync(); |
| | | var models = all.Where(it => it.ParentId == null).ToList(); |