From 5f935374836ec8b89c209eae174eb3f2f3d4eca5 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期五, 29 八月 2025 09:20:01 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs |   32 +++++++++++++++++++++++++++++++-
 1 files changed, 31 insertions(+), 1 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs
index fe173ab..ecd94d1 100644
--- a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs
+++ b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs
@@ -43,7 +43,8 @@
         IRequestHandler<EditEnterpriseEmployeeCommand, Guid>,
         IRequestHandler<InviteElectronSignCommand, Guid>,
         IRequestHandler<PersonalUserElectronSignCommand, PersonalUserElectronSignCommandResult>,
-        IRequestHandler<EnterpriseUserElectronSignCommand, EnterpriseUserElectronSignCommandResult>
+        IRequestHandler<EnterpriseUserElectronSignCommand, EnterpriseUserElectronSignCommandResult>,
+        IRequestHandler<StopElectronSignCommand, Guid>
     {
         private readonly IMediator mediator = mediator;
         private readonly IRepository<EnterpriseEmployee> rep = rep;
@@ -378,5 +379,34 @@
             }
             return result.Result.Adapt<EnterpriseUserElectronSignCommandResult>();
         }
+
+        /// <summary>
+        /// 鐏靛伐瑙g害
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<Guid> Handle(StopElectronSignCommand request, CancellationToken cancellationToken)
+        {
+            var logier = JwtUtils.GetCurrentLogier();
+            var entity = await rep.AsQueryable()
+                .Where(it => it.EnterpriseId == logier.EnterpriseId && it.Id == request.Id)
+                .FirstOrDefaultAsync();
+            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "鐏靛伐");
+            if (entity.UserSignContractStatus != EnumTaskUserSignContractStatus.Effect) throw Oops.Oh(EnumErrorCodeType.s400, "鏈敓鏁�");
+            entity.UserSignContractStatus = EnumTaskUserSignContractStatus.Stop;
+            entity.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Stop;
+            await rep.UpdateAsync(entity);
+
+            var contract = await repEnterpriseEmployeeContract.AsQueryable()
+                .OrderByDescending(it => it.CreatedTime)
+                .Where(it => it.EnterpriseEmployeeId == entity.Id)
+                .FirstOrDefaultAsync();
+            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "鍚堝悓");
+            contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Stop;
+            contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Stop;
+            await repEnterpriseEmployeeContract.UpdateAsync(contract);
+            return entity.Id;
+        }
     }
 }

--
Gitblit v1.9.1