From 2fe93fe5c23f983b406ce77e5ec0778b578314bb Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期二, 12 八月 2025 16:58:00 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs | 34 ++++++++++++++++++++++++++++++++-- 1 files changed, 32 insertions(+), 2 deletions(-) diff --git a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs index f2c155d..fe0b498 100644 --- a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs +++ b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs @@ -37,6 +37,7 @@ /// <returns></returns> public async Task<GetTaskInfoQueryResult> Handle(GetTaskInfoQuery request, CancellationToken cancellationToken) { + var now = DateTime.Now; var logier = JwtUtils.GetCurrentLogier(); var model = await TaskInfoRepository.GetQueryable(rep) .Where(it => it.Id == request.Id) @@ -48,11 +49,37 @@ .CountAsync(it => it.TaskInfoId == model.Id); if (logier != null && logier.Type == EnumUserType.Personal) { - model.HireStatus = await rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking() + var taskUser = await rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking() .Include(it => it.EnterpriseEmployee) .Where(it => it.TaskInfoId == model.Id && it.EnterpriseEmployee.UserId == logier.Id) - .Select(it => it.EnterpriseEmployee.HireStatus) + .Select(it => new + { + it.Id, + it.EnterpriseEmployee.HireStatus, + it.EnterpriseEmployee.UserSignContractStatus + }) .FirstOrDefaultAsync(); + if (taskUser != null) + { + model.HireStatus = taskUser.HireStatus; + model.ApplyButton = taskUser.HireStatus == EnumTaskUserHireStatus.Wait + ? GetTaskInfoQueryResultApplyButton.WaitHire + : taskUser.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait + ? GetTaskInfoQueryResultApplyButton.WaitSignContract + : null; + model.HireButton = now <= model.EndTime + ? GetTaskInfoQueryResultHireButton.InProcess + : GetTaskInfoQueryResultHireButton.Completed; + if (model.HireButton == GetTaskInfoQueryResultHireButton.InProcess && model.BeginTime <= now) + { + var submit = await rep.Change<TaskInfoUserSubmit>().AsQueryable().AsNoTracking() + .AnyAsync(it => it.TaskInfoUserId == taskUser.Id && it.CheckReceiveStatus >= EnumTaskUserSubmitCheckReceiveStatus.Wait); + if (!submit) + { + model.HireButton = GetTaskInfoQueryResultHireButton.ApplyCheckReceive; + } + } + } model.IsCollected = await rep.Change<UserTaskCollect>().AsQueryable().AsNoTracking() .AnyAsync(it => it.TaskInfoId == request.Id && it.UserId == logier.Id); } @@ -217,6 +244,7 @@ BenefitCode = it.BenefitCode, BenefitContent = it.Benefit.Content }).ToList(), + AddressName = it.AddressName, Status = it.TaskInfoUsers.Any(it => it.EnterpriseEmployee.UserId == logier.Id && it.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Wait) @@ -277,6 +305,7 @@ BenefitCode = it.BenefitCode, BenefitContent = it.Benefit.Content }).ToList(), + AddressName = it.AddressName, Status = now <= it.EndTime ? GetPersonalHireTaskInfosQueryStatus.InProcess : GetPersonalHireTaskInfosQueryStatus.Completed @@ -314,6 +343,7 @@ BenefitCode = it.BenefitCode, BenefitContent = it.Benefit.Content }).ToList(), + AddressName = it.AddressName, }); return await request.PageModel.GetPagedListAsync<GetPersonalCancelTaskInfosQueryResult, GetPersonalCancelTaskInfosQueryResultItem>(s, cancellationToken); } -- Gitblit v1.9.1