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