From 8e2a25b07e8d4d003c61c8f7b9ee5e5e542371b4 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期四, 21 八月 2025 15:14:06 +0800
Subject: [PATCH] feat:开发

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

diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs
index 5e701ff..f507dc1 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,11 +48,15 @@
             }
             if (request.EnterpriseId == null) throw Oops.Oh(EnumErrorCodeType.s400, "璇烽�夋嫨浼佷笟");
 
+            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 =>
                  {
                      request.Adapt(entity);
@@ -68,6 +74,19 @@
 
             await SyncElectronSignContractTemplate(entity);
 
+            if (request.Id == null)
+            {
+                entity.WxmpQrCode = await wxmpUtils.GetQrCodeOssUrl(new WxmpGetQrCodeCommand
+                {
+                    UserType = EnumUserType.Personal,
+                    OssScene = "Wxmp/QrCode/ContractTemplate",
+                    OssFileName = $"{entity.Name}.png",
+                    Page = "subpackages/mine/mineAgreementSignDetail/mineAgreementSignDetail",
+                    CheckPath = false,
+                    Scene = $"{entity.Code}",
+                });
+            }
+
             return entity.Id;
         }
 

--
Gitblit v1.9.1