From ab38e4f6313bb3e053f7a26535f865da6829dae9 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期四, 11 九月 2025 15:53:03 +0800 Subject: [PATCH] - --- FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs | 31 +++++++++++++++++++++++++++---- 1 files changed, 27 insertions(+), 4 deletions(-) diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs index 2c8ab69..c94930f 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,12 +29,33 @@ /// <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; + } + var models = await q .ProjectToType<GetEnabledElectronSignSettingsQueryResultItem>() .ToListAsync(); + if (request.EnterpriseId.HasValue) + { + var accesses = await repEnterpriseElectronSignSetting.AsQueryable() + .Where(it => it.EnterpriseId == request.EnterpriseId) + .Select(it => it.ElectronSignAccess) + .ToListAsync(); + foreach (var model in models) + { + model.IsDisabled = !accesses.Contains(model.Access); + } + } + return models; } } } -- Gitblit v1.9.1