From 193fa41f6419b80f33dabad90ed65ed1e310add8 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期四, 11 九月 2025 15:48:05 +0800
Subject: [PATCH] fix: s

---
 FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs |   28 ++++++++++++++++++++++++----
 1 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs
index 2c8ab69..5894719 100644
--- a/FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs
+++ b/FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs
@@ -15,11 +15,13 @@
     /// 鐢靛瓙绛鹃厤缃煡璇㈠鐞嗗櫒
     /// </summary>
     public class ElectronSignSettingQueryHandler(
-            IRepository<ElectronSignSetting> rep
+            IRepository<ElectronSignSetting> rep,
+            IRepository<EnterpriseElectronSignSetting> repEnterpriseElectronSignSetting
         ) :
         IRequestHandler<GetEnabledElectronSignSettingsQuery, List<GetEnabledElectronSignSettingsQueryResultItem>>
     {
         private readonly IRepository<ElectronSignSetting> rep = rep;
+        private readonly IRepository<EnterpriseElectronSignSetting> repEnterpriseElectronSignSetting = repEnterpriseElectronSignSetting;
 
         /// <summary>
         /// 鏌ヨ宸插惎鐢ㄧ殑鐢靛瓙绛鹃厤缃�
@@ -27,10 +29,28 @@
         /// <param name="request"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
-        public Task<List<GetEnabledElectronSignSettingsQueryResultItem>> Handle(GetEnabledElectronSignSettingsQuery request, CancellationToken cancellationToken)
+        public async Task<List<GetEnabledElectronSignSettingsQueryResultItem>> Handle(GetEnabledElectronSignSettingsQuery request, CancellationToken cancellationToken)
         {
-            return rep.AsQueryable().AsNoTracking()
-                .Where(it => !it.IsDisabled)
+            var logier = JwtUtils.GetCurrentLogier();
+            var q = rep.AsQueryable().AsNoTracking();
+            if (request.All != true)
+            {
+                q = q.Where(it => !it.IsDisabled);
+            }
+            if (logier.Type == EnumUserType.Enterprise)
+            {
+                request.EnterpriseId = logier.EnterpriseId;
+            }
+            if (request.EnterpriseId.HasValue)
+            {
+                var accesses = await repEnterpriseElectronSignSetting.AsQueryable()
+                    .Where(it => it.EnterpriseId == request.EnterpriseId)
+                    .Select(it => it.ElectronSignAccess)
+                    .ToListAsync();
+                q = q.Where(request.All != true, it => accesses.Contains(it.Access));
+
+            }
+            return await q
                 .ProjectToType<GetEnabledElectronSignSettingsQueryResultItem>()
                 .ToListAsync();
         }

--
Gitblit v1.9.1