From 193fa41f6419b80f33dabad90ed65ed1e310add8 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期四, 11 九月 2025 15:48:05 +0800
Subject: [PATCH] fix: s

---
 FlexJobApi.UserServer.Application/ElectronSign/Commands/ElectronSignCallbackCommandHandler.cs |  107 +++++++++++++++++++++++++++++------------------------
 1 files changed, 59 insertions(+), 48 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Commands/ElectronSignCallbackCommandHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Commands/ElectronSignCallbackCommandHandler.cs
index 45598b9..7896a22 100644
--- a/FlexJobApi.UserServer.Application/ElectronSign/Commands/ElectronSignCallbackCommandHandler.cs
+++ b/FlexJobApi.UserServer.Application/ElectronSign/Commands/ElectronSignCallbackCommandHandler.cs
@@ -44,7 +44,7 @@
             switch (request.Action)
             {
                 case "UserSign":
-                    await UserFaceReal(request);
+                    await UserSign(request);
                     break;
                 case "ContractSign":
                     await ContractSign(request);
@@ -60,6 +60,7 @@
             var data = ((JObject)request.Data).ToObject<ElectronSignCallbackCommandContractSignModel>()!;
             var contractId = data.OutContractId.ToGuid("鏃犳晥鐨勫悎鍚孖d")!.Value;
             var contract = await repEnterpriseEmployeeContract.AsQueryable()
+                .Include(it=>it.ContractTemplate)
                 .Where(it => it.Id == contractId)
                 .FirstOrDefaultAsync();
             if (contract == null) throw Oops.Oh(EnumErrorCodeType.s404, "鍚堝悓");
@@ -76,55 +77,61 @@
             {
                 throw Oops.Oh(EnumErrorCodeType.s510, "鍚堝悓宸插け鏁�");
             }
-            if (entity.ContractTemplate.Access == EnumElectronSignAccess.BestSign)
+            if (request.Success)
             {
-                if (data.UserType == Core.Models.ElectronSignServer.PersonalUserReals.EnumElectronSignUserType.Personal)
+                if (entity.ContractTemplate.Access == EnumElectronSignAccess.BestSign)
                 {
-                    if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Signing)
+                    if (data.UserType == Core.Models.ElectronSignServer.PersonalUserReals.EnumElectronSignUserType.Personal)
                     {
-                        contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Pass;
+                        if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Signing)
+                        {
+                            contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Pass;
+                            contract.UserSignContractTime = DateTime.Now;
+                            contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Wait;
+                        }
+                    }
+                    else
+                    {
+                        if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Signing)
+                        {
+                            contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Pass;
+                            contract.EnterpriseSignContractTime = DateTime.Now;
+                        }
+                    }
+                }
+                if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Completed)
+                {
+                    contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Pass;
+                    if (contract.UserSignContractTime == null)
+                    {
                         contract.UserSignContractTime = DateTime.Now;
                     }
-                    else if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Cancelled)
+                    contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Pass;
+                    if (contract.EnterpriseSignContractTime == null)
                     {
-                        contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Refuse;
+                        contract.EnterpriseSignContractTime = DateTime.Now;
+                    }
+                    contract.ContractUrl = AliyunOSSUtils.Upload("Contact", data.ContactUrl, $"{contract.ContractTemplate.Name}.pdf").Url;
+                }
+            }
+            else
+            {
+                if (entity.ContractTemplate.Access == EnumElectronSignAccess.BestSign)
+                {
+                    if (data.UserType == Core.Models.ElectronSignServer.PersonalUserReals.EnumElectronSignUserType.Personal)
+                    {
                         contract.UserSignContractErrorMessage = request.Message;
+                    }
+                    else
+                    {
+                        contract.EnterpriseSignContractErrorMessage = request.Message;
                     }
                 }
                 else
                 {
-                    if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Signing)
-                    {
-                        contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Pass;
-                        contract.EnterpriseSignContractTime = DateTime.Now;
-                    }
-                    else if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Cancelled)
-                    {
-                        contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Refuse;
-                        contract.EnterpriseSignContractErrorMessage = request.Message;
-                    }
+                    contract.UserSignContractErrorMessage = request.Message;
+                    contract.EnterpriseSignContractErrorMessage = request.Message;
                 }
-            }
-            else if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Cancelled)
-            {
-                contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Refuse;
-                contract.UserSignContractErrorMessage = request.Message;
-                contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Refuse;
-                contract.EnterpriseSignContractErrorMessage = request.Message;
-            }
-            if (data.Status == Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractStatus.Completed)
-            {
-                contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Effect;
-                if (contract.UserSignContractTime == null)
-                {
-                    contract.UserSignContractTime = DateTime.Now;
-                }
-                contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Effect;
-                if (contract.EnterpriseSignContractTime == null)
-                {
-                    contract.EnterpriseSignContractTime = DateTime.Now;
-                }
-                contract.ContractUrl = data.ContactUrl;
             }
             await repEnterpriseEmployeeContract.UpdateAsync(contract);
 
@@ -135,20 +142,23 @@
             entity.ContractUrl = contract.ContractUrl;
             await repEnterpriseEmployee.UpdateAsync(entity);
 
-            var taskUsers = await repTaskInfoUser.AsQueryable()
-                .Where(it => it.EnterpriseEmployeeId == entity.Id && it.HireStatus == EnumTaskUserHireStatus.Pass && it.ArrangeStatus == null)
-                .ToListAsync();
-            if (taskUsers.IsNotNull())
+            if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Pass && entity.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Pass)
             {
-                foreach (var taskUser in taskUsers)
+                var taskUsers = await repTaskInfoUser.AsQueryable()
+                    .Where(it => it.EnterpriseEmployeeId == entity.Id && it.HireStatus == EnumTaskUserHireStatus.Pass && it.ArrangeStatus == null)
+                    .ToListAsync();
+                if (taskUsers.IsNotNull())
                 {
-                    taskUser.ArrangeStatus = EnumTaskUserArrangeStatus.Wait;
+                    foreach (var taskUser in taskUsers)
+                    {
+                        taskUser.ArrangeStatus = EnumTaskUserArrangeStatus.Wait;
+                    }
+                    await repTaskInfoUser.UpdateAsync(taskUsers);
                 }
-                await repTaskInfoUser.UpdateAsync(taskUsers);
             }
         }
 
-        private async Task UserFaceReal(ElectronSignCallbackCommand request)
+        private async Task UserSign(ElectronSignCallbackCommand request)
         {
             var user = await repUser.AsQueryable()
                 .Include(it => it.UserAuth)
@@ -168,14 +178,15 @@
                 request.Success == true
                 ? EnumPersonalUserRealStatus.Real
                 : EnumPersonalUserRealStatus.Fail,
-                EnumUserRealMethod.Face,
+                user.RealMethod!.Value,
                 user,
                 enterpriseEmployees,
                 user.UserAuth.Name,
                 user.UserAuth.Identity,
                 user.UserAuth.IdentityImg,
                 user.UserAuth.IdentityBackImg,
-                faceRealUrl: user.UserAuth.FaceRealUrl);
+                user.UserAuth.PhoneNumber,
+                user.UserAuth.FaceRealUrl);
             await repUser.UpdateAsync(user);
         }
     }

--
Gitblit v1.9.1