From 1bdaab5e71af9cacc4f993974d5b3d3922077d54 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期五, 08 八月 2025 16:28:22 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs | 38 ++++++++++++++++++++++++++------------ 1 files changed, 26 insertions(+), 12 deletions(-) diff --git a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs index d6ccaf1..ef10f33 100644 --- a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs +++ b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs @@ -16,13 +16,15 @@ /// 浠诲姟鏌ヨ澶勭悊鍣� /// </summary> public class TaskInfoQueryHandler( - IRepository<TaskInfo> rep + IRepository<TaskInfo> rep, + IRepository<DictionaryData> repDictionaryData ) : IRequestHandler<GetTaskInfoQuery, GetTaskInfoQueryResult>, - IRequestHandler<GetTaskInfosQuery, PagedListQueryResult<GetTaskInfosQueryResultItem>> + IRequestHandler<GetTaskInfosQuery, GetTaskInfosQueryResult> { private readonly IRepository<TaskInfo> rep = rep; + private readonly IRepository<DictionaryData> repDictionaryData = repDictionaryData; /// <summary> /// 鏌ヨ浠诲姟璇︽儏 @@ -48,12 +50,16 @@ /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> - public Task<PagedListQueryResult<GetTaskInfosQueryResultItem>> Handle(GetTaskInfosQuery request, CancellationToken cancellationToken) + public async Task<GetTaskInfosQueryResult> Handle(GetTaskInfosQuery request, CancellationToken cancellationToken) { var q = TaskInfoRepository.GetQueryable(rep); if (request.Keywords.IsNotNull()) { q = q.Where(it => it.Name.Contains(request.Keywords)); + } + if (request.EnterpriseId.HasValue) + { + q = q.Where(it => it.EnterpriseId == request.EnterpriseId); } if (request.BeginTime.HasValue && request.EndTime.HasValue) { @@ -75,6 +81,15 @@ { q = q.Where(it => it.GenderLimit == request.GenderLimit); } + + var count = new GetTaskInfosQueryResultCount + { + WaitAssignCount = await q.CountAsync(it => it.Status == EnumTaskStatus.Wait), + CompletedAssignCount = await q.CountAsync(it => it.Status == EnumTaskStatus.Complete), + InProcessReleaseCount = await q.CountAsync(it => it.ReleaseStatus == EnumTaskReleaseStatus.InProcess), + StoppedReleaseCount = await q.CountAsync(it => it.ReleaseStatus == EnumTaskReleaseStatus.Stopped), + }; + if (request.Status.HasValue) { q = q.Where(it => it.Status == request.Status); @@ -87,10 +102,7 @@ { q = q.Where(it => it.RecommendStatus == request.RecommendStatus); } - var s = from t in q.Include(it => it.Province).Include(it => it.City) - join tu in rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking() on t.Id equals tu.TaskInfoId into tug - join tb in rep.Change<TaskInfoBenefit>().AsQueryable().AsNoTracking().Include(it => it.Benefit) on t.Id equals tb.TaskInfoId into tbg - join tc in rep.Change<TaskInfoCredentialLimit>().AsQueryable().AsNoTracking().Include(it => it.Type) on t.Id equals tc.TaskInfoId into tcg + var s = from t in q select new GetTaskInfosQueryResultItem { Id = t.Id, @@ -99,26 +111,26 @@ BillingMethod = t.BillingMethod, ServiceFee = t.ServiceFee, SettlementCycle = t.SettlementCycle, - Benefits = tbg.Select(it => new GetTaskInfoQueryResultBenefit + Benefits = t.Benefits.Select(it => new GetTaskInfoQueryResultBenefit { BenefitCode = it.BenefitCode, BenefitContent = it.Benefit.Content }).ToList(), GenderLimit = t.GenderLimit, - CredentialLimits = tcg.Select(it => new GetTaskInfoQueryResultCredentialLimit + CredentialLimits = t.CredentialLimits.Select(it => new GetTaskInfoQueryResultCredentialLimit { TypeCode = it.TypeCode, TypeContent = it.Type.Content }).ToList(), ProvinceCode = t.ProvinceCode, - ProvinceContent =t.Province.Content, + ProvinceContent = t.Province.Content, CityCode = t.CityCode, CityContent = t.City.Content, AddressName = t.AddressName, AddressDetail = t.AddressDetail, Latitude = t.Latitude, Longitude = t.Longitude, - UserCount = tug.Count(), + UserCount = t.Users.Count(), Status = t.Status, BeginTime = t.BeginTime, EndTime = t.EndTime, @@ -128,7 +140,9 @@ RecommendStatus = t.RecommendStatus, SettlementStatus = t.SettlementStatus }; - return request.PageModel.GetPagedListAsync(s, cancellationToken); + var result = await request.PageModel.GetPagedListAsync<GetTaskInfosQueryResult, GetTaskInfosQueryResultItem>(s, cancellationToken); + result.Count = count; + return result; } } } -- Gitblit v1.9.1