From 350aa66d4818f85f042cb2d399691209dc97b97e Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期三, 06 八月 2025 14:46:54 +0800
Subject: [PATCH] feat:字典开发

---
 FlexJobApi.Application/Dictionaries/Queries/DictionaryDatasQueryHandler.cs |   49 +++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 47 insertions(+), 2 deletions(-)

diff --git a/FlexJobApi.Application/Dictionaries/Queries/DictionaryDatasQueryHandler.cs b/FlexJobApi.Application/Dictionaries/Queries/DictionaryDatasQueryHandler.cs
index aedfaf2..101d979 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<SelectQueryResultOption<Guid, GetDictionaryDataSelectQueryResultOption>>>
     {
         private readonly IRepository<DictionaryData> rep = rep;
 
@@ -28,13 +30,21 @@
         /// <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.Keywords.IsNotNull())
                     {
@@ -50,5 +60,40 @@
                     return q;
                 }, cancellationToken: cancellationToken);
         }
+
+        /// <summary>
+        /// 鏌ヨ鏁版嵁瀛楀吀閫夋嫨鍣�
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public Task<List<SelectQueryResultOption<Guid, GetDictionaryDataSelectQueryResultOption>>> Handle(GetDictionaryDataSelectQuery request, CancellationToken cancellationToken)
+        {
+            return request.GetSelect<DictionaryData, Guid, GetDictionaryDataSelectQueryResultOption>(
+                it => it.Id,
+                it => it.Content,
+                q =>
+                {
+                    q = q
+                        .OrderBy(it => it.Sort).ThenBy(it => it.CreatedTime)
+                        .Where(it =>
+                            it.ParentId == request.ParentId
+                            && !it.IsDisabled);
+                    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