From 1d2953530fc3019ffc2bbe71f4de2ab7820fe528 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期一, 11 八月 2025 17:26:31 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.CommonServer.Application/Dictionaries/Queries/DictionaryDatasQueryHandler.cs | 52 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 48 insertions(+), 4 deletions(-) diff --git a/FlexJobApi.CommonServer.Application/Dictionaries/Queries/DictionaryDatasQueryHandler.cs b/FlexJobApi.CommonServer.Application/Dictionaries/Queries/DictionaryDatasQueryHandler.cs index 1d96d5b..5443518 100644 --- a/FlexJobApi.CommonServer.Application/Dictionaries/Queries/DictionaryDatasQueryHandler.cs +++ b/FlexJobApi.CommonServer.Application/Dictionaries/Queries/DictionaryDatasQueryHandler.cs @@ -18,7 +18,8 @@ public class DictionaryDatasQueryHandler( IRepository<DictionaryData> rep ) : IRequestHandler<GetDictionaryDatasQuery, PagedListQueryResult<GetDictionaryDatasQueryResultItem>>, - IRequestHandler<GetDictionaryDataSelectQuery, List<SelectOption<string, GetDictionaryDataSelectQueryResultOption>>> + IRequestHandler<GetDictionaryDataSelectQuery, List<SelectOption<string, GetDictionaryDataSelectQueryResultOption>>>, + IRequestHandler<GetAreaSelectQuery, List<GetAreaSelectQueryResultOption>> { private readonly IRepository<DictionaryData> rep = rep; @@ -71,15 +72,15 @@ /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> - public Task<List<SelectOption<string, GetDictionaryDataSelectQueryResultOption>>> Handle(GetDictionaryDataSelectQuery request, CancellationToken cancellationToken) + public async Task<List<SelectOption<string, GetDictionaryDataSelectQueryResultOption>>> Handle(GetDictionaryDataSelectQuery request, CancellationToken cancellationToken) { - return request.GetSelect<DictionaryData, string, GetDictionaryDataSelectQueryResultOption>( + var models = await request.GetSelect<DictionaryData, string, GetDictionaryDataSelectQueryResultOption>( it => it.Code, it => it.Content, q => { q = q - .OrderBy(it => it.Sort).ThenBy(it => it.CreatedTime) + .OrderBy(it => it.Sort) .Where(it => !it.IsDisabled); if (request.All != true) { @@ -115,6 +116,49 @@ return q; }, cancellationToken); + if (request.WithChildren) + { + var parents = models.Where(it => it.Data.ParentId == null).ToList(); + LoopChildrens(parents, models); + return parents; + } + return models; + } + + /// <summary> + /// 鏌ヨ鍦板尯閫夋嫨鍣� + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<List<GetAreaSelectQueryResultOption>> Handle(GetAreaSelectQuery request, CancellationToken cancellationToken) + { + var models = await Handle(new GetDictionaryDataSelectQuery + { + CategoryCode = "70", + All = true, + MaxDeep = request.MaxDeep, + WithChildren = true + }, cancellationToken); + var result = models.Adapt<List<GetAreaSelectQueryResultOption>>(); + return result; + } + + /// <summary> + /// 閫掑綊璧嬪�间笅绾� + /// </summary> + /// <param name="models"></param> + /// <param name="all"></param> + private void LoopChildrens(List<SelectOption<string, GetDictionaryDataSelectQueryResultOption>> models, List<SelectOption<string, GetDictionaryDataSelectQueryResultOption>> all) + { + foreach (var item in models) + { + item.Data.Children = all.Where(it => it.Data.ParentId == item.Data.Id).ToList(); + if (item.Data.Children.IsNotNull()) + { + LoopChildrens(item.Data.Children, all); + } + } } } } -- Gitblit v1.9.1