sunpengfei
2025-08-13 59afa0eaecc1daf07128aa2fd02df238c9854d4c
FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
@@ -20,6 +20,7 @@
            IRepository<DictionaryData> repDictionaryData
        ) :
        IRequestHandler<GetTaskInfoQuery, GetTaskInfoQueryResult>,
        IRequestHandler<GetOpenTaskInfosQuery, GetTaskInfosQueryResult>,
        IRequestHandler<GetTaskInfosQuery, GetTaskInfosQueryResult>,
        IRequestHandler<GetPersonalApplyTaskInfosQuery, GetPersonalApplyTaskInfosQueryResult>,
        IRequestHandler<GetPersonalHireTaskInfosQuery, GetPersonalHireTaskInfosQueryResult>,
@@ -73,7 +74,7 @@
                    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);
                            .AnyAsync(it => it.TaskInfoUserId == taskUser.Id && it.CheckReceiveStatus >= EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive);
                        if (!submit)
                        {
                            model.HireButton = GetTaskInfoQueryResultHireButton.ApplyCheckReceive;
@@ -84,6 +85,17 @@
                    .AnyAsync(it => it.TaskInfoId == request.Id && it.UserId == logier.Id);
            }
            return model;
        }
        /// <summary>
        /// 查询开放任务分页列表
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public Task<GetTaskInfosQueryResult> Handle(GetOpenTaskInfosQuery request, CancellationToken cancellationToken)
        {
            return Handle(request.Adapt<GetTaskInfosQuery>(), cancellationToken);
        }
        /// <summary>
@@ -106,7 +118,7 @@
            }
            if (request.BeginTime.HasValue && request.EndTime.HasValue)
            {
                q = q.Where(it => request.BeginTime <= it.BeginTime && it.BeginTime <= request.EndTime);
                q = q.Where(it => request.BeginTime <= it.CreatedTime && it.CreatedTime <= request.EndTime);
            }
            if (request.CityCode.IsNotNull())
            {
@@ -267,7 +279,6 @@
            var q = TaskInfoRepository.GetQueryable(rep, true, logier).Where(it =>
                it.TaskInfoUsers.Any(tu =>
                    tu.EnterpriseEmployee.UserId == logier.Id
                    && tu.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass
                    && tu.ArrangeStatus == EnumTaskUserArrangeStatus.Complete));
            if (request.Status.HasValue)
            {
@@ -282,14 +293,6 @@
                    default:
                        break;
                }
            }
            else
            {
                q = q.Where(it =>
                    it.TaskInfoUsers.Any(tu =>
                        tu.EnterpriseEmployee.UserId == logier.Id
                        && (tu.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Wait
                        || tu.EnterpriseEmployee.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait)));
            }
            var s = q.Select(it => new GetPersonalHireTaskInfosQueryResultItem
            {
@@ -347,5 +350,6 @@
            });
            return await request.PageModel.GetPagedListAsync<GetPersonalCancelTaskInfosQueryResult, GetPersonalCancelTaskInfosQueryResultItem>(s, cancellationToken);
        }
    }
}