From 59833ddbf47ed028462e1b089b46bf7c6f7518e3 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期二, 05 八月 2025 18:31:38 +0800
Subject: [PATCH] feat:字典开发

---
 FlexJobApi.Application/Dictionaries/Queries/GetDictionaryDatasQueryHandler.cs |   30 +++++++++++++++++++++++++++---
 1 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/FlexJobApi.Application/Dictionaries/Queries/GetDictionaryDatasQueryHandler.cs b/FlexJobApi.Application/Dictionaries/Queries/GetDictionaryDatasQueryHandler.cs
index 006fffe..0d0b8ca 100644
--- a/FlexJobApi.Application/Dictionaries/Queries/GetDictionaryDatasQueryHandler.cs
+++ b/FlexJobApi.Application/Dictionaries/Queries/GetDictionaryDatasQueryHandler.cs
@@ -1,5 +1,8 @@
 锘縰sing FlexJobApi.Core;
+using Furion.DatabaseAccessor;
+using Mapster;
 using MediatR;
+using Microsoft.EntityFrameworkCore;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -11,11 +14,32 @@
     /// <summary>
     /// 鑾峰彇瀛楀吀鏁版嵁鍒嗛〉鍒楄〃
     /// </summary>
-    public class GetDictionaryDatasQueryHandler : IRequestHandler<GetDictionaryDatasQuery, PagedListQueryResult<GetDictionaryDatasQueryResultItem>>
+    public class GetDictionaryDatasQueryHandler(
+            IRepository<DictionaryData> rep
+        ) : IRequestHandler<GetDictionaryDatasQuery, PagedListQueryResult<GetDictionaryDatasQueryResultItem>>
     {
-        public Task<PagedListQueryResult<GetDictionaryDatasQueryResultItem>> Handle(GetDictionaryDatasQuery request, CancellationToken cancellationToken)
+        private readonly IRepository<DictionaryData> rep = rep;
+
+        public async Task<PagedListQueryResult<GetDictionaryDatasQueryResultItem>> Handle(GetDictionaryDatasQuery request, CancellationToken cancellationToken)
         {
-            throw new NotImplementedException();
+            var q = rep.AsQueryable().AsNoTracking()
+                .OrderBy(it => it.Sort).ThenByDescending(it => it.CreatedTime)
+                .Where(it => it.CategoryId == request.CategoryId);
+            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));
+            }
+            var result = await q
+                .ProjectToType<GetDictionaryDatasQueryResultItem>()
+                .ToPagedListAsync(request.PageModel, cancellationToken);
+            return result;
         }
     }
 }

--
Gitblit v1.9.1