From f12b337fd0a9273cb982cbc09e3be43a4e078ffc Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 22 八月 2025 14:16:48 +0800
Subject: [PATCH] fix: s

---
 FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs |   47 ++++++++++++++++++++++++++---------------------
 1 files changed, 26 insertions(+), 21 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs
index 5e701ff..e01414a 100644
--- a/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs
+++ b/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs
@@ -23,13 +23,15 @@
     /// 鍚堝悓妯℃澘鍛戒护澶勭悊鍣�
     /// </summary>
     public class ContractTemplateCommandHandler(
-            IRepository<ContractTemplate> rep
+            IRepository<ContractTemplate> rep,
+            WxmpUtils wxmpUtils
         ) :
         IRequestHandler<SaveContractTemplateCommand, Guid>,
         IRequestHandler<SaveContractTemplateValuesCommand, Guid>,
         IRequestHandler<SetIsDisabledContractTemplateCommand, int>
     {
         private readonly IRepository<ContractTemplate> rep = rep;
+        private readonly WxmpUtils wxmpUtils = wxmpUtils;
 
         /// <summary>
         /// 淇濆瓨鍚堝悓妯℃澘
@@ -46,14 +48,35 @@
             }
             if (request.EnterpriseId == null) throw Oops.Oh(EnumErrorCodeType.s400, "璇烽�夋嫨浼佷笟");
 
+            if (request.Code.IsNotNull())
+            {
+                var existCode = await rep.AsQueryable().AsNoTracking()
+                    .AnyAsync(it => it.Code == request.Code && !it.IsDisabled && it.Id != request.Id);
+                if (existCode) throw Oops.Oh(EnumErrorCodeType.s405, "涓氬姟缂栫爜");
+            }
+
             var entity = await request.SaveData<ContractTemplate, SaveContractTemplateCommand>(
                  q => q
                     .Include(it => it.Values)
                     .Where(it => it.EnterpriseId == request.EnterpriseId && !it.IsDisabled),
-                 it => it.EnterpriseId == request.EnterpriseId && it.Name == request.Name && !it.IsDisabled && it.Id != request.Id,
+                 null,
                  entity =>
                  {
+                     if (entity.Code.IsNotNull() && entity.Name.IsNotNull() && (entity.Code != request.Code || entity.Name != request.Name || entity.WxmpQrCode.IsNull()))
+                     {
+                         entity.WxmpQrCode = wxmpUtils.GetQrCodeOssUrl(new WxmpGetQrCodeCommand
+                         {
+                             UserType = EnumUserType.Personal,
+                             OssScene = "Wxmp/QrCode/ContractTemplate",
+                             OssFileName = $"{request.Name}.png",
+                             Page = "subpackages/mine/mineAgreementSignDetail/mineAgreementSignDetail",
+                             CheckPath = false,
+                             Scene = $"{request.Code}",
+                         }).Result;
+                     }
+
                      request.Adapt(entity);
+
                      if (request.Id == null)
                      {
                          entity.Status = EnumContractTemplateStatus.Wait;
@@ -180,25 +203,7 @@
                 }
                 if (enterprise.EnterpriseAuth.ElectronSignEnterpriseId == null)
                 {
-                    var resultRegOrUpdateUser = await new RegOrUpdateUserInput
-                    {
-                        OutUserId = enterprise.Id.ToString(),
-                        UserType = EnumElectronSignUserType.Personal,
-                        EnterpriseName = enterprise.EnterpriseName,
-                        SocietyCreditCode = enterprise.SocietyCreditCode,
-                        Name = enterprise.EnterpriseAuth?.Name,
-                        Identity = enterprise?.EnterpriseAuth?.Identity,
-                        Mobile = enterprise?.EnterpriseAuth?.PhoneNumber
-                    }.SendHttpAsync<RegOrUpdateUserInput, ElectronSignServerResult<Guid?>>(EnumResourceHttpProvider.ElectronSignServerCustomer);
-
-                    if (resultRegOrUpdateUser?.Success == true)
-                    {
-                        enterprise!.EnterpriseAuth!.ElectronSignEnterpriseId = resultRegOrUpdateUser.Result;
-                    }
-                    else
-                    {
-                        throw Oops.Oh(EnumErrorCodeType.s510, resultRegOrUpdateUser?.Message ?? "娉ㄥ唽鐢靛瓙绛捐处鍙峰紓甯�");
-                    }
+                    throw Oops.Oh(EnumErrorCodeType.s510, "鏈敞鍐岀數瀛愮璐﹀彿锛岃閲嶆柊鍚屾818璐﹀彿淇℃伅");
                 }
                 var result = await new CreateOrUpdateContractTemplateInput
                 {

--
Gitblit v1.9.1