| | |
| | | IRepository<UserTaskCollect> repUserTaskCollect |
| | | ) : |
| | | IRequestHandler<CollectTaskCommand, int>, |
| | | IRequestHandler<ApplyTaskCommand, int> |
| | | IRequestHandler<ApplyTaskCommand, int>, |
| | | IRequestHandler<SetTaskUserHireCommand, int> |
| | | { |
| | | private readonly IRepository<TaskInfoUser> rep = rep; |
| | | private readonly IRepository<UserTaskCollect> repUserTaskCollect = repUserTaskCollect; |
| | |
| | | } |
| | | return addIds.Count; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 任务录用 |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<int> Handle(SetTaskUserHireCommand request, CancellationToken cancellationToken) |
| | | { |
| | | var logier = JwtUtils.GetCurrentLogier(); |
| | | var entities = await rep.AsQueryable() |
| | | .Where(it => |
| | | it.TaskInfo.EnterpriseId == logier.Id |
| | | && it.TaskInfoId == request.Id |
| | | && request.UserIds.Contains(it.UserId) |
| | | && it.HireStatus != request.HireStatus) |
| | | .ToListAsync(cancellationToken); |
| | | if (entities.IsNotNull()) |
| | | { |
| | | foreach (var entity in entities) |
| | | { |
| | | entity.HireStatus = request.HireStatus; |
| | | if (entity.HireStatus == EnumTaskUserHireStatus.Pass) |
| | | { |
| | | entity.SignContractStatus = EnumTaskUserSignContractStatus.Pass; |
| | | } |
| | | } |
| | | await rep.UpdateAsync(entities); |
| | | } |
| | | return entities.Count; |
| | | } |
| | | } |
| | | } |