From 234b9a97eabe4fc6ebd52204ffdd575023a1736f Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期二, 12 八月 2025 09:42:41 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs | 39 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 38 insertions(+), 1 deletions(-) diff --git a/FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs b/FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs index 0f9abe1..6e8a1e9 100644 --- a/FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs +++ b/FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs @@ -18,7 +18,8 @@ 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; @@ -82,5 +83,41 @@ } 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.HireTime = DateTime.Now; + entity.UserSignContractStatus = EnumTaskUserSignContractStatus.Pass; + entity.UserSignContractTime = DateTime.Now; + entity.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Pass; + entity.EnterpriseSignContractTime = DateTime.Now; + entity.ArrangeStatus = EnumTaskUserArrangeStatus.Wait; + } + } + await rep.UpdateAsync(entities); + } + return entities.Count; + } } } -- Gitblit v1.9.1