From e49c42ad641fa7ddaa4250ffd408666b087d1d48 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期五, 29 八月 2025 13:25:26 +0800
Subject: [PATCH] feat:开发

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

diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs
index 1545b63..945ba7b 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;
@@ -212,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