| | |
| | | /// <returns></returns> |
| | | public async Task<GetTaskInfoQueryResult> Handle(GetTaskInfoQuery request, CancellationToken cancellationToken) |
| | | { |
| | | var logier = JwtUtils.GetCurrentLogier(); |
| | | var model = await TaskInfoRepository.GetQueryable(rep) |
| | | .Where(it => it.Id == request.Id) |
| | | .ProjectToType<GetTaskInfoQueryResult>() |
| | | .FirstOrDefaultAsync(cancellationToken); |
| | | .GetDetail<TaskInfo, GetTaskInfoQueryResult>(cancellationToken); |
| | | model.TaskCount = await rep.AsQueryable().AsNoTracking() |
| | | .Where(it => it.EnterpriseId == model.EnterpriseId && it.ReleaseStatus == EnumTaskReleaseStatus.InProcess) |
| | | .CountAsync(); |
| | | model.ApplyCount = await rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking() |
| | | .CountAsync(it => it.TaskInfoId == model.Id); |
| | | if (logier.Type == EnumUserType.Personal) |
| | | { |
| | | model.HireStatus = await rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking() |
| | | .Where(it => it.TaskInfoId == model.Id && it.UserId == logier.Id) |
| | | .Select(it => it.HireStatus) |
| | | .FirstOrDefaultAsync(); |
| | | } |
| | | return model; |
| | | } |
| | | |
| | |
| | | AddressDetail = t.AddressDetail, |
| | | Latitude = t.Latitude, |
| | | Longitude = t.Longitude, |
| | | UserCount = t.TaskInfoUsers.Count(tu => tu.SignContractStatus == EnumTaskUserSignContractStatus.Pass), |
| | | UserCount = t.TaskInfoUsers.Count(), |
| | | Status = t.Status, |
| | | BeginTime = t.BeginTime, |
| | | EndTime = t.EndTime, |