From d6fee46081e394fd04389b842ef65ec12e1e1799 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Wed, 28 Aug 2024 17:29:17 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=85=BC=E5=AE=B9=E5=87=BA=E5=B7=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/Implements/DevicePermissionService.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index 1ed14e4e..36f67d0f 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -8,6 +8,7 @@ using Dlhis.Entity.Device.Entities; using Dlhis.Entity.Device.Enums; using Dlhis.Entity.Sys.Entities; using Dlhis.Entity.Sys.Enums; +using Dlhis.Entity.Visitor.Entity; using Dlhis.Sys.Api; using Kurisu.AspNetCore.Authentication.Abstractions; using Kurisu.AspNetCore.DataAccess.Dto; @@ -98,9 +99,16 @@ public class DevicePermissionService : IDevicePermissionService //保存配置的权限 if (request.Values.IsPresent()) { - var gainfoNos = await _dbContext.Queryable() - .Where(x => request.Values.Contains(x.Code) || request.Values.Contains(x.No) || request.Values.Contains(x.IdNo)) - .Select(x => x.No) + var today = DateTime.Today; + var factories = _currentUser.GetUserClaim("tenants").Split(",").ToList(); + + var gainfoNos = await _dbContext.Client.Queryable() + .Where(gainfo => factories.Contains(gainfo.Factory) || SqlFunc.Subqueryable() + .Where(x => factories.Contains(x.Destination) && SqlFunc.DateIsSame(x.BeginDate, today)) + .Any() + ) + .Where(gainfo => request.Values.Contains(gainfo.Code) || request.Values.Contains(gainfo.No) || request.Values.Contains(gainfo.IdNo)) + .Select(gainfo => gainfo.No) .ToListAsync(); (gainfoNos.Count != request.Values.Count).ThrowIfTrue("存在非当前权限访问的人员,操作禁止!");