From a7287db2ada9ef606db5fe81cc8b66e2da44d345 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期四, 07 八月 2025 10:56:22 +0800 Subject: [PATCH] pref:菜单排序 --- FlexJobApi.User.Application/Auths/Queries/GetCurrentLogierMenuQueryHandler.cs | 21 +++++++++++++++------ 1 files changed, 15 insertions(+), 6 deletions(-) diff --git a/FlexJobApi.User.Application/Auths/Queries/GetCurrentLogierMenuQueryHandler.cs b/FlexJobApi.User.Application/Auths/Queries/GetCurrentLogierMenuQueryHandler.cs index b83b5a3..6229aa5 100644 --- a/FlexJobApi.User.Application/Auths/Queries/GetCurrentLogierMenuQueryHandler.cs +++ b/FlexJobApi.User.Application/Auths/Queries/GetCurrentLogierMenuQueryHandler.cs @@ -34,12 +34,21 @@ .ProjectToType<GetMenuQueryResult>() .FirstOrDefaultAsync(cancellationToken); if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "璇ヨ彍鍗�"); - var items = 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 m.ParentId == request.Id && ur.UserInfoId == logier.UserInfoId && !m.IsDisabled - && (m.Type == EnumMenuType.Button || m.Type == EnumMenuType.Field) - select m).ProjectToType<GetMenuQueryResultItem>().ToListAsync(cancellationToken); + var q = repMenu.AsQueryable().AsNoTracking() + .OrderBy(it => it.Sort).ThenBy(it => it.CreatedTime) + .Where(it => it.ParentId == model.Id) + .Where(it => it.Type == EnumMenuType.Button || it.Type == EnumMenuType.Field); + if (logier.Level != 999) + { + var menuIds = await repRoleMenu.AsQueryable().AsNoTracking() + .Where(it => it.Role.UserInfoRoles.Any(ur => ur.UserInfoId == logier.UserInfoId)) + .Select(it => it.MenuId) + .ToListAsync(cancellationToken); + q = q.Where(it => menuIds.Contains(it.Id)); + } + var items = await q + .ProjectToType<GetMenuQueryResultItem>() + .ToListAsync(cancellationToken); model.Groups = items.GroupBy(it => it.Group ?? "default") .Select(it => new GetMenuQueryResultGroup { -- Gitblit v1.9.1