From f7441ac8e0ef8778c4271d4ffec890a7e39bd3ab Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期五, 22 八月 2025 14:39:27 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs | 20 ++++++++++++++++---- 1 files changed, 16 insertions(+), 4 deletions(-) diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs index 2c8ab69..949cc7d 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,20 @@ /// <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() + .Where(it => !it.IsDisabled); + if (logier.Type == EnumUserType.Enterprise) + { + var accesses = await repEnterpriseElectronSignSetting.AsQueryable() + .Where(it => it.EnterpriseId == logier.EnterpriseId) + .Select(it => it.ElectronSignAccess) + .ToListAsync(); + q = q.Where(it => accesses.Contains(it.Access)); + } + return q .ProjectToType<GetEnabledElectronSignSettingsQueryResultItem>() .ToListAsync(); } -- Gitblit v1.9.1