From 5573750ed0d2302df49dd07901fadf3c8ef44d39 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期一, 11 八月 2025 15:58:24 +0800 Subject: [PATCH] feat:报名 --- FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs | 25 +++++++++++++++++++------ 1 files changed, 19 insertions(+), 6 deletions(-) diff --git a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs index 0efc40e..e3468a9 100644 --- a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs +++ b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs @@ -39,7 +39,7 @@ .ProjectToType<GetTaskInfoQueryResult>() .FirstOrDefaultAsync(cancellationToken); model.TaskCount = await rep.AsQueryable().AsNoTracking() - .Where(it => it.EnterpriseId == model.EnterpriseId && it.ReleaseStatus == EnumTaskReleaseStatus.Stopped) + .Where(it => it.EnterpriseId == model.EnterpriseId && it.ReleaseStatus == EnumTaskReleaseStatus.InProcess) .CountAsync(); return model; } @@ -52,7 +52,8 @@ /// <returns></returns> public async Task<GetTaskInfosQueryResult> Handle(GetTaskInfosQuery request, CancellationToken cancellationToken) { - var q = TaskInfoRepository.GetQueryable(rep); + var logier = JwtUtils.GetCurrentLogier(); + var q = TaskInfoRepository.GetQueryable(rep, true, logier); if (request.Keywords.IsNotNull()) { q = q.Where(it => it.Name.Contains(request.Keywords)); @@ -81,10 +82,14 @@ { q = q.Where(it => it.GenderLimit == request.GenderLimit); } - - var count = new GetTaskInfosQueryResultCount + if (request.HireStatus.IsNotNull() && logier.Type == EnumUserType.Personal) { - WaitAssignCount = await q.CountAsync(it => it.Status == EnumTaskStatus.Wait), + q = q.Where(it => it.Users.Any(u => u.UserId == logier.Id && request.HireStatus.Contains(u.HireStatus))); + } + + var count = new GetTaskInfosQueryResultObjectData + { + WaitAssignCount = await q.CountAsync(it => it.ReleaseStatus == EnumTaskReleaseStatus.InProcess && 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), @@ -101,6 +106,10 @@ if (request.RecommendStatus.HasValue) { q = q.Where(it => it.RecommendStatus == request.RecommendStatus); + } + if (request.CheckReceiveStatus.HasValue) + { + q = q.Where(it => it.CheckReceiveStatus == request.CheckReceiveStatus); } var s = from t in q select new GetTaskInfosQueryResultItem @@ -138,9 +147,13 @@ CheckReceiveStatus = t.CheckReceiveStatus, CreatedTime = t.CreatedTime, RecommendStatus = t.RecommendStatus, - SettlementStatus = t.SettlementStatus + SettlementStatus = t.SettlementStatus, + HireStatus = logier != null + ? t.Users.Where(it => it.UserId == logier.Id).Select(u => u.HireStatus).FirstOrDefault() + : null }; var result = await request.PageModel.GetPagedListAsync<GetTaskInfosQueryResult, GetTaskInfosQueryResultItem>(s, cancellationToken); + result.ObjectData = count; return result; } } -- Gitblit v1.9.1