| | |
| | | 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端查询应聘报名分页列表信息 |
| | |
| | | { |
| | | var logier = JwtUtils.GetCurrentLogier(); |
| | | var list = new GetSettlementTaskUsersQueryResult(); |
| | | |
| | | list.Detail = await TaskInfoRepository.GetQueryable(repTaskInfo, true, logier) |
| | | .Where(it => it.Id == request.TaskInfoId) |
| | | .GetDetail<TaskInfo, GetSettlementTaskQueryResult>(); |
| | | |
| | | var q = rep.AsQueryable().AsNoTracking() |
| | | .Where(it => it.TaskInfoId == request.TaskInfoId); |
| | | list.Data = q |
| | |
| | | ReceiveAccount = it.ReceiveAccount, |
| | | SettlementAmount = it.SettlementAmount, |
| | | ActualSettlementAmount = it.ActualSettlementAmount, |
| | | SettlementTime = it.SettlementTime |
| | | SettlementTime = it.SettlementTime, |
| | | SettlementStatus = it.SettlementStatus, |
| | | }) |
| | | .ToList(); |
| | | |
| | |
| | | { |
| | | errors.Add("未完成验收"); |
| | | } |
| | | else if (item.Name != model.Name) |
| | | { |
| | | errors.Add("灵工姓名与实名信息不一致"); |
| | | } |
| | | else |
| | | { |
| | | item.SettlementAmount = model.SettlementAmount; |
| | |
| | | item.ReceiveAccount = model.ReceiveAccount; |
| | | item.Bank = model.Bank; |
| | | item.BankBranch = model.BankBranch; |
| | | } |
| | | if (model.TaskName != list.Detail.Name) |
| | | { |
| | | errors.Add("任务名称不一致"); |
| | | } |
| | | |
| | | if (errors.IsNotNull()) |
| | |
| | | successList.Add(model); |
| | | } |
| | | } |
| | | } |
| | | |
| | | list.Data = list.Data |
| | | .Where(it => successList.Any(s => s.Identity == it.Identity)) |
| | | .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(); |
| | | } |
| | | |
| | | list.Detail.SettlementOrderStatus = EnumTaskSettlementOrderStatus.Wait; |
| | | list.Detail.SettlementOrderName = request.SettlementOrderUrl.Substring(request.SettlementOrderUrl.LastIndexOf("/") + 1); |
| | | list.Detail.SettlementOrderTime = DateTime.Now; |
| | | list.Detail.SettlementStatus = EnumTaskSettlementStatus.Wait; |
| | | list.Detail.SettlementAmount = list.Data.Sum(it => it.SettlementAmount ?? 0); |
| | | list.Detail.ActualSettlementAmount = list.Data.Sum(it => it.ActualSettlementAmount ?? 0); |
| | | } |
| | | 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; |
| | | } |