From 46e60a62ec88c5620865163ed00d037d770d9b2c Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期二, 05 八月 2025 13:52:47 +0800 Subject: [PATCH] pref:优化 --- FlexJobApi.User.Application/Roles/Queries/GetRolesQueryHandler.cs | 35 +++++++++++++++++++++++++++++++++-- 1 files changed, 33 insertions(+), 2 deletions(-) diff --git a/FlexJobApi.User.Application/Roles/Queries/GetRolesQueryHandler.cs b/FlexJobApi.User.Application/Roles/Queries/GetRolesQueryHandler.cs index 8863b66..7ecb4e0 100644 --- a/FlexJobApi.User.Application/Roles/Queries/GetRolesQueryHandler.cs +++ b/FlexJobApi.User.Application/Roles/Queries/GetRolesQueryHandler.cs @@ -1,4 +1,9 @@ -锘縰sing System; +锘縰sing FlexJobApi.Core; +using Furion.DatabaseAccessor; +using Mapster; +using MediatR; +using Microsoft.EntityFrameworkCore; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -6,7 +11,33 @@ namespace FlexJobApi.User.Application { - public class GetRolesQueryHandler + /// <summary> + /// 鏌ヨ瑙掕壊鍒嗛〉鍒楄〃 + /// </summary> + /// <param name="rep"></param> + public class GetRolesQueryHandler( + IRepository<Role> rep + ) : IRequestHandler<GetRolesQuery, PagedListQueryResult<GetRolesQueryResultItem>> { + private readonly IRepository<Role> rep = rep; + + /// <inheritdoc/> + public Task<PagedListQueryResult<GetRolesQueryResultItem>> Handle(GetRolesQuery request, CancellationToken cancellationToken) + { + var q = rep.AsQueryable().AsNoTracking(); + if (request.UserType.HasValue) + { + q = q.Where(it => it.UserType == request.UserType); + } + if (request.ClientType.HasValue) + { + q = q.Where(it => it.ClientType == request.ClientType); + } + var result = q + .ProjectToType<GetRolesQueryResultItem>() + .ToPagedListAsync(request.PageModel, cancellationToken); + + return result; + } } } -- Gitblit v1.9.1