| | |
| | | IRepository<DictionaryData> repDictionaryData |
| | | ) : |
| | | IRequestHandler<GetTaskInfoQuery, GetTaskInfoQueryResult>, |
| | | IRequestHandler<GetOpenTaskInfosQuery, GetTaskInfosQueryResult>, |
| | | IRequestHandler<GetTaskInfosQuery, GetTaskInfosQueryResult>, |
| | | IRequestHandler<GetPersonalApplyTaskInfosQuery, GetPersonalApplyTaskInfosQueryResult>, |
| | | IRequestHandler<GetPersonalHireTaskInfosQuery, GetPersonalHireTaskInfosQueryResult>, |
| | |
| | | .Select(it => new |
| | | { |
| | | it.Id, |
| | | it.EnterpriseEmployee.HireStatus, |
| | | it.HireStatus, |
| | | it.EnterpriseEmployee.UserSignContractStatus |
| | | }) |
| | | .FirstOrDefaultAsync(); |
| | |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | model.IsCollected = await rep.Change<UserTaskCollect>().AsQueryable().AsNoTracking() |
| | | model.IsCollected = await rep.Change<TaskUserCollect>().AsQueryable().AsNoTracking() |
| | | .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> |
| | |
| | | } |
| | | 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()) |
| | | { |
| | |
| | | { |
| | | 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 |
| | | { |
| | |
| | | |
| | | 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) |
| | | { |
| | |
| | | CheckReceiveStatus = t.CheckReceiveStatus, |
| | | CreatedTime = t.CreatedTime, |
| | | RecommendStatus = t.RecommendStatus, |
| | | SettlementStatus = t.SettlementStatus |
| | | SettlementStatus = t.SettlementStatus, |
| | | }; |
| | | var result = await request.PageModel.GetPagedListAsync<GetTaskInfosQueryResult, GetTaskInfosQueryResultItem>(s, cancellationToken); |
| | | result.ObjectData = count; |
| | |
| | | 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 => |
| | |
| | | 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 |
| | |
| | | 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 |
| | | }); |
| | |
| | | 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 |
| | |
| | | }); |
| | | return await request.PageModel.GetPagedListAsync<GetPersonalCancelTaskInfosQueryResult, GetPersonalCancelTaskInfosQueryResultItem>(s, cancellationToken); |
| | | } |
| | | |
| | | } |
| | | } |