| | |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using TaskInfo = FlexJobApi.Core.TaskInfo; |
| | | |
| | | namespace FlexJobApi.FlexJobServer.Application |
| | | { |
| | |
| | | /// 任务人员查询处理器 |
| | | /// </summary> |
| | | public class TaskUserQueryHandler( |
| | | IRepository<TaskInfoUser> rep) : |
| | | IRepository<TaskInfoUser> rep, |
| | | IRepository<TaskInfo> repTaskInfo |
| | | ) : |
| | | IRequestHandler<GetTaskUsersQuery, GetTaskUsersQueryResult>, |
| | | IRequestHandler<GetArrangeTaskUsersQuery, GetArrangeTaskUsersQueryResult>, |
| | | IRequestHandler<GetTaskUserHireStatusQuery, GetTaskUserHireStatusQueryResult>, |
| | | IRequestHandler<GetSettlementTaskUsersQuery, GetSettlementTaskUsersQueryResult> |
| | | { |
| | | private readonly IRepository<TaskInfoUser> rep = rep; |
| | | private readonly IRepository<TaskInfo> repTaskInfo = repTaskInfo; |
| | | |
| | | /// <summary> |
| | | /// B端查询应聘报名分页列表信息 |
| | |
| | | public async Task<GetSettlementTaskUsersQueryResult> Handle(GetSettlementTaskUsersQuery request, CancellationToken cancellationToken) |
| | | { |
| | | var logier = JwtUtils.GetCurrentLogier(); |
| | | var list = new GetSettlementTaskUsersQueryResult(); |
| | | var q = rep.AsQueryable().AsNoTracking() |
| | | .Where(it => it.TaskInfoId == request.TaskInfoId); |
| | | var s = q |
| | | list.Data = q |
| | | .Select(it => new GetSettlementTaskUsersQueryResultItem |
| | | { |
| | | Id = it.Id, |
| | |
| | | ReceiveAccount = it.ReceiveAccount, |
| | | SettlementAmount = it.SettlementAmount, |
| | | ActualSettlementAmount = it.ActualSettlementAmount, |
| | | SettlementTime = it.SettlementTime |
| | | }); |
| | | var list = await request.PageModel.GetPagedListAsync<GetSettlementTaskUsersQueryResult, GetSettlementTaskUsersQueryResultItem>(s, cancellationToken); |
| | | SettlementTime = it.SettlementTime, |
| | | SettlementStatus = it.SettlementStatus, |
| | | }) |
| | | .ToList(); |
| | | |
| | | var successList = new List<GetSettlementTaskUsersQueryResultExcelRow>(); |
| | | if (request.SettlementOrderUrl.IsNotNull()) |
| | |
| | | { |
| | | errors.Add("未完成验收"); |
| | | } |
| | | else if (item.Name != model.Name) |
| | | { |
| | | errors.Add("灵工姓名与实名信息不一致"); |
| | | } |
| | | else |
| | | { |
| | | item.SettlementAmount = model.SettlementAmount; |
| | |
| | | successList.Add(model); |
| | | } |
| | | } |
| | | } |
| | | |
| | | var pagedList = await list.Data |
| | | .Where(it => successList.Any(s => s.Identity == it.Identity)) |
| | | .AsQueryable() |
| | | .ToPagedListAsync(request.PageModel.Page, request.PageModel.Rows, cancellationToken); |
| | | list.PageModel = request.PageModel.Adapt<PagedListQueryResultPageModel>(); |
| | | list.PageModel.TotalCount = pagedList.TotalCount; |
| | | list.PageModel.TotalPage = pagedList.TotalPages; |
| | | list.Data = pagedList.Items.ToList(); |
| | | if (list.Errors.IsNotNull()) |
| | | { |
| | | list.Data = new List<GetSettlementTaskUsersQueryResultItem>(); |
| | | } |
| | | else |
| | | { |
| | | list.Data = list.Data |
| | | .Where(it => successList.Any(s => s.Identity == it.Identity)) |
| | | .ToList(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | var task = await repTaskInfo.AsQueryable().AsNoTracking() |
| | | .Where(it => it.Id == request.TaskInfoId) |
| | | .FirstOrDefaultAsync(); |
| | | if (task == null) throw Oops.Oh(EnumErrorCodeType.s404, "任务"); |
| | | list.Data = list.Data |
| | | .Where(it => it.SettlementStatus == task.SettlementStatus) |
| | | .ToList(); |
| | | } |
| | | |
| | | return list; |
| | | } |