From 5c45bc53e2c18e45130c21048df4af4896455c6d Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期五, 12 九月 2025 15:58:48 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.UserServer.Application/ElectronSign/Queries/ContractTemplateQueryHandler.cs |   33 +++++++++++++++++++++++++++++++--
 1 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Queries/ContractTemplateQueryHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Queries/ContractTemplateQueryHandler.cs
index 243fec9..67d6b7f 100644
--- a/FlexJobApi.UserServer.Application/ElectronSign/Queries/ContractTemplateQueryHandler.cs
+++ b/FlexJobApi.UserServer.Application/ElectronSign/Queries/ContractTemplateQueryHandler.cs
@@ -21,17 +21,20 @@
             IRepository<ContractTemplate> rep,
             IRepository<Enterprise> repEnterprise,
             IRepository<User> repUser,
-            IRepository<DbAuditLog, LogDbContextLocator> repDbAuditLog
+            IRepository<DbAuditLog, LogDbContextLocator> repDbAuditLog,
+            IRepository<EnterpriseElectronSignSetting> repEnterpriseElectronSignSetting
         ) :
         IRequestHandler<GetContractTemplateEnterprisesQuery, GetContractTemplateEnterprisesQueryResult>,
         IRequestHandler<GetEnterpriseContractTemplatesQuery, GetEnterpriseContractTemplatesQueryResult>,
         IRequestHandler<GetEnterpriseContractTemplateLogsQuery, GetEnterpriseContractTemplateLogsQueryResult>,
-        IRequestHandler<GetContractTemplateQuery, GetContractTemplateQueryResult>
+        IRequestHandler<GetContractTemplateQuery, GetContractTemplateQueryResult>,
+        IRequestHandler<GetEnterpriseContractTemplateSelectQuery, List<SelectOption<Guid, GetEnterpriseContractTemplateSelectQueryOption>>>
     {
         private readonly IRepository<ContractTemplate> rep = rep;
         private readonly IRepository<Enterprise> repEnterprise = repEnterprise;
         private readonly IRepository<User> repUser = repUser;
         private readonly IRepository<DbAuditLog, LogDbContextLocator> repDbAuditLog = repDbAuditLog;
+        private readonly IRepository<EnterpriseElectronSignSetting> repEnterpriseElectronSignSetting = repEnterpriseElectronSignSetting;
 
         /// <summary>
         /// 鏌ヨ杩愯惀绔崗璁鐞嗗垪琛�
@@ -117,6 +120,7 @@
                         Access = t.Access,
                         Code = t.Code,
                         File = t.File,
+                        WxmpQrCode = t.WxmpQrCode,
                         Status = t.Status,
                         CompletedTime = t.CompletedTime,
                         Operator = uugi == null
@@ -158,6 +162,10 @@
                     "IsDeleted",
                     "Values",
                     "TemplateId",
+                    "TemplateEditData",
+                    "TemplateJsonData",
+                    "BindProperty",
+                    "ElectronSignContractTemplateId"
                 };
                 var properties = type.GetProperties().Where(it => !ignorePropertyNames.Contains(it.Name)).ToList();
                 var traceIds = result.Data.DistinctSelect(it => it.TraceId);
@@ -213,6 +221,27 @@
             return model;
         }
 
+        /// <summary>
+        /// 鏌ヨ浼佷笟鍚堝悓妯℃澘閫夋嫨鍣ㄦ暟鎹�
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<List<SelectOption<Guid, GetEnterpriseContractTemplateSelectQueryOption>>> Handle(GetEnterpriseContractTemplateSelectQuery request, CancellationToken cancellationToken)
+        {
+            var logier = JwtUtils.GetCurrentLogier();
+
+            var accesses = await repEnterpriseElectronSignSetting.AsQueryable()
+                    .Where(it => it.EnterpriseId == logier.EnterpriseId)
+                    .Select(it => it.ElectronSignAccess)
+                    .ToListAsync();
+            return await request.GetSelect<ContractTemplate, Guid, GetEnterpriseContractTemplateSelectQueryOption>(
+                it => it.Id,
+                it => it.Name,
+                q => q.Where(it => it.EnterpriseId == logier.EnterpriseId && !it.IsDisabled && it.Status== EnumContractTemplateStatus.Completed && it.Access.HasValue && accesses.Contains(it.Access.Value)),
+                cancellationToken);
+        }
+
         private async Task AddContractTemplateLogsAsync(
             GetEnterpriseContractTemplateLogsQueryResultItem item,
             List<PropertyInfo> properties,

--
Gitblit v1.9.1