From d38276fb2561a2c4029229ff88864f5680b8e07c Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期四, 11 九月 2025 15:55:00 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs |   42 +++++++++++++++++++++++++++++++++++++-----
 1 files changed, 37 insertions(+), 5 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs
index 8753ea0..5dd471e 100644
--- a/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs
+++ b/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs
@@ -30,7 +30,8 @@
         ) :
         IRequestHandler<SaveContractTemplateCommand, Guid>,
         IRequestHandler<SaveContractTemplateValuesCommand, Guid>,
-        IRequestHandler<SetIsDisabledContractTemplateCommand, int>
+        IRequestHandler<SetIsDisabledContractTemplateCommand, int>,
+        IRequestHandler<CheckContractTemplateCommand, bool>
     {
         private readonly IMediator mediator = mediator;
         private readonly IRepository<ContractTemplate> rep = rep;
@@ -63,9 +64,9 @@
                 await mediator.Send(new CheckElectronSignAccessEnabledsCommand
                 {
                     Accesses = new List<EnumElectronSignAccess>
-                {
-                    request.Access.Value
-                }
+                    {
+                        request.Access.Value
+                    }
                 }, cancellationToken);
             }
 
@@ -76,7 +77,7 @@
                  null,
                  entity =>
                  {
-                     if (entity.Code.IsNotNull() && entity.Name.IsNotNull() && (entity.Code != request.Code || entity.Name != request.Name || entity.WxmpQrCode.IsNull()))
+                     if (request.Code.IsNotNull() && request.Name.IsNotNull())
                      {
                          entity.WxmpQrCode = wxmpUtils.GetQrCodeOssUrl(new WxmpGetQrCodeCommand
                          {
@@ -143,10 +144,12 @@
                || entity.Values.Any(ov =>
                        request.Values.Count(nv =>
                            ov.Id == nv.Id
+                           && ov.Name == nv.Name
                            && ov.Type == nv.Type
                            && ov.Recorder == nv.Recorder
                            && ov.UserType == nv.UserType
                            && ov.Label == nv.Label
+                           && ov.BindProperty == nv.BindProperty
                            && ov.Required == nv.Required) != 1))
             {
                 entity.Values = request.Values.Select(it =>
@@ -210,6 +213,35 @@
         }
 
         /// <summary>
+        /// 鏍¢獙鍚堝悓妯℃槸鍚﹀彲鐢�
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<bool> Handle(CheckContractTemplateCommand request, CancellationToken cancellationToken)
+        {
+            var model = await rep.AsQueryable().AsNoTracking()
+                .Where(it => it.Id == request.Id && !it.IsDisabled)
+                .Select(it => new
+                {
+                    it.Access,
+                    it.Status
+                })
+                .FirstOrDefaultAsync();
+            if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "鍚堝悓妯℃澘");
+            if (model.Status != EnumContractTemplateStatus.Completed) throw Oops.Oh(EnumErrorCodeType.s510, "鏈埗鐗�");
+            await mediator.Send(new CheckElectronSignAccessEnabledsCommand
+            {
+                Accesses = new List<EnumElectronSignAccess>
+                {
+                    model.Access!.Value
+                }
+            }, cancellationToken);
+            return true;
+
+        }
+
+        /// <summary>
         /// 鍚屾鐢靛瓙绛惧悎鍚屾ā鏉�
         /// </summary>
         /// <param name="entity"></param>

--
Gitblit v1.9.1