From 157e63d5bae9121307a6d0cfab36b1a5df3cd5ea Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期二, 12 八月 2025 14:20:04 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs |   40 ++++++++++++++++------------------------
 1 files changed, 16 insertions(+), 24 deletions(-)

diff --git a/FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs b/FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs
index 3bda8d9..22a668b 100644
--- a/FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs
+++ b/FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs
@@ -19,7 +19,7 @@
             IRepository<UserTaskCollect> repUserTaskCollect
         ) :
         IRequestHandler<CollectTaskCommand, int>,
-        IRequestHandler<SetTaskUserHireCommand, int>
+        IRequestHandler<SetTaskUserHireCommand, Guid>
     {
         private readonly IRepository<TaskInfoUser> rep = rep;
         private readonly IRepository<UserTaskCollect> repUserTaskCollect = repUserTaskCollect;
@@ -63,37 +63,29 @@
         /// <param name="request"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
-        public async Task<int> Handle(SetTaskUserHireCommand request, CancellationToken cancellationToken)
+        public async Task<Guid> Handle(SetTaskUserHireCommand request, CancellationToken cancellationToken)
         {
             var logier = JwtUtils.GetCurrentLogier();
-            var entities = await rep.AsQueryable()
+            var entity = await rep.AsQueryable()
                 .Include(it => it.EnterpriseEmployee)
                 .Where(it =>
                     it.TaskInfo.EnterpriseId == logier.Id
-                    && it.TaskInfoId == request.Id
-                    && it.EnterpriseEmployee.UserId.HasValue
-                    && request.UserIds.Contains(it.EnterpriseEmployee.UserId.Value)
-                    && it.EnterpriseEmployee.HireStatus != request.HireStatus)
-                .ToListAsync(cancellationToken);
-            if (entities.IsNotNull())
+                    && it.Id == request.Id)
+                .FirstOrDefaultAsync(cancellationToken);
+            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "璇ユ姤鍚嶄俊鎭�");
+            if (entity.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s510, "璇ョ伒宸ュ凡褰曠敤");
+            entity.EnterpriseEmployee.HireStatus = request.HireStatus;
+            if (entity.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass)
             {
-                foreach (var entity in entities)
-                {
-                    entity.EnterpriseEmployee.HireStatus = request.HireStatus;
-                    if (entity.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass)
-                    {
-                        entity.EnterpriseEmployee.HireTime = DateTime.Now;
-                        entity.EnterpriseEmployee.UserSignContractStatus = EnumTaskUserSignContractStatus.Pass;
-                        entity.EnterpriseEmployee.UserSignContractTime = DateTime.Now;
-                        entity.EnterpriseEmployee.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Pass;
-                        entity.EnterpriseEmployee.EnterpriseSignContractTime = DateTime.Now;
+                entity.EnterpriseEmployee.HireTime = DateTime.Now;
+                entity.EnterpriseEmployee.UserSignContractStatus = EnumTaskUserSignContractStatus.Pass;
+                entity.EnterpriseEmployee.UserSignContractTime = DateTime.Now;
+                entity.EnterpriseEmployee.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Pass;
+                entity.EnterpriseEmployee.EnterpriseSignContractTime = DateTime.Now;
 
-                        entity.ArrangeStatus = EnumTaskUserArrangeStatus.Wait;
-                    }
-                }
-                await rep.UpdateAsync(entities);
+                entity.ArrangeStatus = EnumTaskUserArrangeStatus.Wait;
             }
-            return entities.Count;
+            return entity.Id;
         }
     }
 }

--
Gitblit v1.9.1