| | |
| | | /// 任务人员查询处理器 |
| | | /// </summary> |
| | | public class TaskUserQueryHandler( |
| | | IRepository<TaskInfoUser> rep) : |
| | | IRepository<TaskInfoUser> rep) : |
| | | IRequestHandler<GetTaskUsersQuery, GetTaskUsersQueryResult>, |
| | | IRequestHandler<GetArrangeTaskUsersQuery, GetArrangeTaskUsersQueryResult> |
| | | IRequestHandler<GetArrangeTaskUsersQuery, GetArrangeTaskUsersQueryResult>, |
| | | IRequestHandler<GetCheckReceiveTaskUserInfosQuery, GetCheckReceiveTaskUserInfosQueryResult> |
| | | { |
| | | private readonly IRepository<TaskInfoUser> rep = rep; |
| | | |
| | |
| | | var logier = JwtUtils.GetCurrentLogier(); |
| | | var q = rep.AsQueryable().AsNoTracking() |
| | | .OrderBy(it => it.CreatedTime) |
| | | .Where(it => |
| | | it.TaskInfo.EnterpriseId == logier.EnterpriseId |
| | | .Where(it => |
| | | it.TaskInfo.EnterpriseId == logier.EnterpriseId |
| | | && it.TaskInfoId == request.Id |
| | | && it.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass |
| | | && it.EnterpriseEmployee.UserSignContractStatus == EnumTaskUserSignContractStatus.Pass |
| | | && it.EnterpriseEmployee.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Pass); |
| | | if (request.ArrangeStatus.HasValue) |
| | | { |
| | | q = q.Where(it=>it.ArrangeStatus == request.ArrangeStatus); |
| | | q = q.Where(it => it.ArrangeStatus == request.ArrangeStatus); |
| | | } |
| | | if (request.Keywords.IsNotNull()) |
| | | { |
| | |
| | | }); |
| | | return await request.PageModel.GetPagedListAsync<GetArrangeTaskUsersQueryResult, GetArrangeTaskUsersQueryResultItem>(s, cancellationToken); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查询验收分页列表 |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<GetCheckReceiveTaskUserInfosQueryResult> Handle(GetCheckReceiveTaskUserInfosQuery request, CancellationToken cancellationToken) |
| | | { |
| | | var logier = JwtUtils.GetCurrentLogier(); |
| | | var q = rep.AsQueryable().AsNoTracking() |
| | | .OrderBy(it => it.CreatedTime) |
| | | .AsQueryable(); |
| | | |
| | | if (logier.Type == EnumUserType.Personal) |
| | | { |
| | | q = q.Where(it => it.EnterpriseEmployee.UserId == logier.Id); |
| | | } |
| | | else if (logier.Type == EnumUserType.Enterprise) |
| | | { |
| | | q = q.Where(it => it.TaskInfo.EnterpriseId == logier.EnterpriseId); |
| | | } |
| | | if (request.TaskInfoId.HasValue) |
| | | { |
| | | q = q.Where(it => it.TaskInfoId == request.TaskInfoId); |
| | | } |
| | | if (request.Keywords.IsNotNull()) |
| | | { |
| | | q = q.Where(it => |
| | | it.EnterpriseEmployee.User.Name.Contains(request.Keywords) |
| | | || it.EnterpriseEmployee.User.ContactPhoneNumber.Contains(request.Keywords) |
| | | || it.EnterpriseEmployee.User.Identity.Contains(request.Keywords)); |
| | | } |
| | | if (request.SubmitTimeBegin.HasValue && request.SubmitTimeEnd.HasValue) |
| | | { |
| | | q = q.Where(it => it.Submits.Any(s => request.SubmitTimeBegin <= s.CreatedTime && s.CreatedTime <= request.SubmitTimeEnd)); |
| | | } |
| | | if (request.CheckReceiveStatus.HasValue) |
| | | { |
| | | q = q.Where(it => it.CheckReceiveStatus == request.CheckReceiveStatus); |
| | | } |
| | | var s = q.Select(it => new GetCheckReceiveTaskUserInfosQueryResultItem |
| | | { |
| | | |
| | | }); |
| | | return await request.PageModel.GetPagedListAsync<GetCheckReceiveTaskUserInfosQueryResult, GetCheckReceiveTaskUserInfosQueryResultItem>(s, cancellationToken); |
| | | } |
| | | } |
| | | } |