From 0b7bcf0a7f3be4919721f9c32c2b68a529adea8c Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期四, 21 八月 2025 16:26:48 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs | 50 +++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 39 insertions(+), 11 deletions(-) diff --git a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs index 9b55d17..6bf42ce 100644 --- a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs +++ b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs @@ -56,7 +56,7 @@ .Select(it => new { it.Id, - it.EnterpriseEmployee.HireStatus, + it.HireStatus, it.EnterpriseEmployee.UserSignContractStatus }) .FirstOrDefaultAsync(); @@ -68,10 +68,12 @@ : taskUser.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait ? GetTaskInfoQueryResultApplyButton.WaitSignContract : null; - model.HireButton = now <= model.EndTime + model.HireButton = now < model.BeginTime + ? GetTaskInfoQueryResultHireButton.Wait + : model.BeginTime <= now && now <= model.EndTime ? GetTaskInfoQueryResultHireButton.InProcess : GetTaskInfoQueryResultHireButton.Completed; - if (model.HireButton == GetTaskInfoQueryResultHireButton.InProcess && model.BeginTime <= now) + if (model.HireButton == GetTaskInfoQueryResultHireButton.InProcess) { var submit = await rep.Change<TaskInfoUserSubmit>().AsQueryable().AsNoTracking() .AnyAsync(it => it.TaskInfoUserId == taskUser.Id && it.CheckReceiveStatus >= EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive); @@ -136,6 +138,10 @@ { q = q.Where(it => it.GenderLimit == request.GenderLimit); } + if (logier != null && logier.Type == EnumUserType.Personal && request.IsCollected == true) + { + q = q.Where(it => it.TaskUserCollects.Any(c => c.UserId == logier.Id)); + } var count = new GetTaskInfosQueryResultObjectData { @@ -147,7 +153,14 @@ if (request.Status.HasValue) { - q = q.Where(it => it.Status == request.Status); + if (request.Status == EnumTaskStatus.Wait) + { + q = q.Where(it => it.ReleaseStatus == EnumTaskReleaseStatus.InProcess && it.Status == EnumTaskStatus.Wait); + } + else + { + q = q.Where(it => it.Status == request.Status); + } } if (request.ReleaseStatus.HasValue) { @@ -167,6 +180,8 @@ Id = t.Id, Name = t.Name, Code = t.Code, + EnterpriseName = t.Enterprise.EnterpriseName, + UserName = t.Enterprise.Users.Where(u => u.Id == t.CreatedUserId).Select(u => u.UserName).FirstOrDefault(), BillingMethod = t.BillingMethod, ServiceFee = t.ServiceFee, SettlementCycle = t.SettlementCycle, @@ -197,7 +212,15 @@ CheckReceiveStatus = t.CheckReceiveStatus, CreatedTime = t.CreatedTime, RecommendStatus = t.RecommendStatus, - SettlementStatus = t.SettlementStatus + RecommendTime = t.RecommendTime, + SettlementStatus = t.SettlementStatus, + HireStatus = logier != null && logier.Type == EnumUserType.Personal + ? t.TaskInfoUsers + .Where(tu => tu.EnterpriseEmployee.UserId == logier.Id) + .Select(tu => tu.HireStatus as EnumTaskUserHireStatus?) + .FirstOrDefault() + : null, + }; var result = await request.PageModel.GetPagedListAsync<GetTaskInfosQueryResult, GetTaskInfosQueryResultItem>(s, cancellationToken); result.ObjectData = count; @@ -222,7 +245,7 @@ q = q.Where(it => it.TaskInfoUsers.Any(tu => tu.EnterpriseEmployee.UserId == logier.Id - && tu.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Wait)); + && tu.HireStatus == EnumTaskUserHireStatus.Wait)); break; case GetPersonalApplyTaskInfosQueryStatus.WaitSignContract: q = q.Where(it => @@ -239,7 +262,7 @@ q = q.Where(it => it.TaskInfoUsers.Any(tu => tu.EnterpriseEmployee.UserId == logier.Id - && (tu.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Wait + && (tu.HireStatus == EnumTaskUserHireStatus.Wait || tu.EnterpriseEmployee.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait))); } var s = q.Select(it => new GetPersonalApplyTaskInfosQueryResultItem @@ -259,7 +282,7 @@ AddressName = it.AddressName, Status = it.TaskInfoUsers.Any(it => it.EnterpriseEmployee.UserId == logier.Id - && it.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Wait) + && it.HireStatus == EnumTaskUserHireStatus.Wait) ? GetPersonalApplyTaskInfosQueryStatus.WaitHire : GetPersonalApplyTaskInfosQueryStatus.WaitSignContract }); @@ -284,8 +307,11 @@ { switch (request.Status.Value) { + case GetPersonalHireTaskInfosQueryStatus.Wait: + q = q.Where(it => now < it.BeginTime); + break; case GetPersonalHireTaskInfosQueryStatus.InProcess: - q = q.Where(it => now <= it.EndTime); + q = q.Where(it => it.BeginTime <= now && now <= it.EndTime); break; case GetPersonalHireTaskInfosQueryStatus.Completed: q = q.Where(it => it.EndTime < now); @@ -309,7 +335,9 @@ BenefitContent = it.Benefit.Content }).ToList(), AddressName = it.AddressName, - Status = now <= it.EndTime + Status = now < it.BeginTime + ? GetPersonalHireTaskInfosQueryStatus.Wait + : it.BeginTime <= now && now <= it.EndTime ? GetPersonalHireTaskInfosQueryStatus.InProcess : GetPersonalHireTaskInfosQueryStatus.Completed }); @@ -329,7 +357,7 @@ var q = TaskInfoRepository.GetQueryable(rep, true, logier).Where(it => it.TaskInfoUsers.Any(tu => tu.EnterpriseEmployee.UserId == logier.Id - && (tu.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Refuse + && (tu.HireStatus == EnumTaskUserHireStatus.Refuse || tu.EnterpriseEmployee.UserSignContractStatus == EnumTaskUserSignContractStatus.Refuse || tu.EnterpriseEmployee.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Refuse))); var s = q.Select(it => new GetPersonalCancelTaskInfosQueryResultItem -- Gitblit v1.9.1