diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs index 52e6fbc9..926d5c47 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs @@ -32,10 +32,15 @@ public class DeviceService : IDeviceService public async Task> GetPageAsync(DevicePageRequest request) { + var role = _currentUser.GetRole(); + var isAll = role is "tenant-admin" or "admin"; + var tenantIds = _currentUser.GetUserClaim("tenants").Split(",").ToList(); + var page = await _dbContext.Queryable() .LeftJoin((d, dt) => d.TemplateCode == dt.Code) .LeftJoin((d, dt, dr) => d.UniqueNo == dr.DeviceUniqueNo) .LeftJoin((d, dt, dr, bp) => dr.BusinessPlaceCode == bp.Code) + .WhereIF(isAll, d => tenantIds.Contains(d.TenantId)) .WhereIF(request.Type.HasValue, (d, dt) => d.Type == request.Type) .WhereIF(request.Enable.HasValue, (d, dt) => d.Enable == request.Enable) .WhereIF(request.Search.IsPresent(), d => d.UniqueNo == request.Search || d.DeployPlace.Contains(request.Search)) @@ -327,7 +332,7 @@ public class DeviceService : IDeviceService var list = devices.Where(x => offUniqueNos.Contains(x.UniqueNo)).ToList(); return list; } - + public async Task> GetOnlineStatusPageAsync(DeviceOnlineAndOfflineRequest request) {