From 1f2d7d624a41a7ff9b820094a62cfdea0b657b0a Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期四, 07 八月 2025 17:39:01 +0800 Subject: [PATCH] fix: s --- FlexJobApi.Application/Dictionaries/Queries/DictionaryDatasQueryHandler.cs | 70 ++++++++++++++++++++++++++++++++++- 1 files changed, 68 insertions(+), 2 deletions(-) diff --git a/FlexJobApi.Application/Dictionaries/Queries/DictionaryDatasQueryHandler.cs b/FlexJobApi.Application/Dictionaries/Queries/DictionaryDatasQueryHandler.cs index aedfaf2..da5c5a8 100644 --- a/FlexJobApi.Application/Dictionaries/Queries/DictionaryDatasQueryHandler.cs +++ b/FlexJobApi.Application/Dictionaries/Queries/DictionaryDatasQueryHandler.cs @@ -1,5 +1,6 @@ 锘縰sing FlexJobApi.Core; using Furion.DatabaseAccessor; +using Furion.FriendlyException; using Mapster; using MediatR; using Microsoft.EntityFrameworkCore; @@ -16,7 +17,8 @@ /// </summary> public class DictionaryDatasQueryHandler( IRepository<DictionaryData> rep - ) : IRequestHandler<GetDictionaryDatasQuery, PagedListQueryResult<GetDictionaryDatasQueryResultItem>> + ) : IRequestHandler<GetDictionaryDatasQuery, PagedListQueryResult<GetDictionaryDatasQueryResultItem>>, + IRequestHandler<GetDictionaryDataSelectQuery, List<SelectOption<string, GetDictionaryDataSelectQueryResultOption>>> { private readonly IRepository<DictionaryData> rep = rep; @@ -28,13 +30,25 @@ /// <returns></returns> public Task<PagedListQueryResult<GetDictionaryDatasQueryResultItem>> Handle(GetDictionaryDatasQuery request, CancellationToken cancellationToken) { - return request.PageModel.ToPagedListAsync<DictionaryData, GetDictionaryDatasQueryResultItem>( + return request.PageModel.GetPagedListAsync<DictionaryData, GetDictionaryDatasQueryResultItem>( q => { q = q.OrderBy(it => it.Sort).ThenBy(it => it.CreatedTime); if (request.CategoryId.HasValue) { q = q.Where(it => it.CategoryId == request.CategoryId); + } + else if (request.CategoryCode.IsNotNull()) + { + q = q.Where(it => it.Category.Code == request.CategoryCode); + } + else + { + throw Oops.Oh(EnumErrorCodeType.s400, "璇峰~鍐欑被鍒獻d鎴栫紪鍙�"); + } + if (request.ParentId.HasValue) + { + q = q.Where(it => it.ParentId == request.ParentId); } if (request.Keywords.IsNotNull()) { @@ -50,5 +64,57 @@ return q; }, cancellationToken: cancellationToken); } + + /// <summary> + /// 鏌ヨ鏁版嵁瀛楀吀閫夋嫨鍣� + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public Task<List<SelectOption<string, GetDictionaryDataSelectQueryResultOption>>> Handle(GetDictionaryDataSelectQuery request, CancellationToken cancellationToken) + { + return request.GetSelect<DictionaryData, string, GetDictionaryDataSelectQueryResultOption>( + it => it.Code, + it => it.Content, + q => + { + q = q + .OrderBy(it => it.Sort).ThenBy(it => it.CreatedTime) + .Where(it => !it.IsDisabled); + if (!request.All) + { + q = q.Where(it => it.ParentId == request.ParentId); + } + if (request.MaxDeep.HasValue) + { + q = q.Where(it => it.Deep <= request.MaxDeep); + } + if (request.Keywords.IsNotNull()) + { + q = q.Where(it => + it.Code.Contains(request.Keywords) + || it.Content.Contains(request.Keywords) + || it.Field1.Contains(request.Keywords) + || it.Field2.Contains(request.Keywords) + || it.Field3.Contains(request.Keywords) + || it.Field4.Contains(request.Keywords) + || it.Field5.Contains(request.Keywords)); + } + if (request.CategoryId.HasValue) + { + q = q.Where(it => it.CategoryId == request.CategoryId); + } + else if (request.CategoryCode.IsNotNull()) + { + q = q.Where(it => it.Category.Code == request.CategoryCode); + } + else + { + throw Oops.Oh(EnumErrorCodeType.s400, "璇峰~鍐欑被鍒獻d鎴栫紪鍙�"); + } + return q; + }, + cancellationToken); + } } } -- Gitblit v1.9.1