using FlexJobApi.Core; using Furion.DatabaseAccessor; using Mapster; using MediatR; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Application { /// /// 数据字典查询处理器 /// public class DictionaryDatasQueryHandler( IRepository rep ) : IRequestHandler> { private readonly IRepository rep = rep; /// /// 获取数据字典分页列表数据 /// /// /// /// public Task> Handle(GetDictionaryDatasQuery request, CancellationToken cancellationToken) { return request.PageModel.ToPagedListAsync( q => { q = q.OrderBy(it => it.Sort).ThenBy(it => it.CreatedTime); if (request.CategoryId.HasValue) { q = q.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)); } return q; }, cancellationToken: cancellationToken); } } }