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

---
 FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs |   51 +++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 39 insertions(+), 12 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs
index 1545b63..ed137f5 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;
@@ -76,18 +77,15 @@
                  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
                      {
-                         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;
-                     }
+                         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);
 
@@ -212,6 +210,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