From 6808e68b5d97cdb39aac1793e7fe30dfbecd7de2 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期五, 01 八月 2025 17:31:28 +0800 Subject: [PATCH] feat:文档优化结果显示 --- FlexJobApi.User.Application/Menus/Queries/MenuListQueryHandler.cs | 33 +++++++++++++++++---------------- 1 files changed, 17 insertions(+), 16 deletions(-) diff --git a/FlexJobApi.User.Application/Menus/Queries/MenuListQueryHandler.cs b/FlexJobApi.User.Application/Menus/Queries/MenuListQueryHandler.cs index 6cfd83b..9f50732 100644 --- a/FlexJobApi.User.Application/Menus/Queries/MenuListQueryHandler.cs +++ b/FlexJobApi.User.Application/Menus/Queries/MenuListQueryHandler.cs @@ -12,10 +12,10 @@ namespace FlexJobApi.User.Application { /// <summary> - /// 鏌ヨ鎵�鏈夎彍鍗� + /// 鏌ヨ鑿滃崟/椤甸潰/妯℃�佹鍒楄〃 /// </summary> public class MenuListQueryHandler( - IRepository<Menu> menuRep) + IRepository<Menu> menuRep) : IRequestHandler<MenuListQuery, MenuListCallback> { private readonly IRepository<Menu> menuRep = menuRep; @@ -23,21 +23,22 @@ /// <inheritdoc/> public async Task<MenuListCallback> Handle(MenuListQuery request, CancellationToken cancellationToken) { - var config = new TypeAdapterConfig(); - config.Default.MaxDepth(10); var callback = new MenuListCallback(); - callback.Items = await menuRep.AsQueryable() - .Include(it => it.Childrens.Where(c => - c.Type == EnumMenuType.Menu - || c.Type == EnumMenuType.Page - || c.Type == EnumMenuType.Modal)) - .OrderBy(it => it.Sort).ThenBy(it => it.CreatedTime) - .Where(it => - it.Type == EnumMenuType.Menu - || it.Type == EnumMenuType.Page - || it.Type == EnumMenuType.Modal) - .ProjectToType<MenuListCallbackItem>(config) - .ToListAsync(cancellationToken); + var q = menuRep.AsQueryable().AsNoTracking() + .Where(it => it.Type == EnumMenuType.Menu || it.Type == EnumMenuType.Page || it.Type == EnumMenuType.Modal); + if (request.ParentId.HasValue) + { + q = q.Where(it => it.ParentId == request.ParentId); + } + if (!string.IsNullOrEmpty(request.Keywords)) + { + q = q.Where(it => + it.Name.Contains(request.Keywords) + || it.Code.Contains(request.Keywords) + || it.Path.Contains(request.Keywords) + || it.Remark.Contains(request.Keywords)); + } + callback.Items = await q.ProjectToType<MenuListCallbackItem>().ToListAsync(); return callback; } } -- Gitblit v1.9.1