From 7a42f4938e42a1c66a8b7e6d89b254e12f1133a8 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Mon, 15 Jan 2024 15:45:01 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=BD=AC=E6=88=90=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/IDevicePermissionService.cs | 8 +++ .../Implements/DevicePermissionService.cs | 63 ++++++++++--------- 2 files changed, 42 insertions(+), 29 deletions(-) diff --git a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs index b88bd079..9b35637b 100644 --- a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs @@ -29,4 +29,12 @@ public interface IDevicePermissionService : IScopeDependency /// /// Task GenerateDeviceTasksAsync(Func func, List userNos); + + + /// + /// 获取用户所有设备权限 + /// + /// + /// + Task> GetAssignDeviceCodesAsync(string userNo); } diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index e1f52e36..99c0f409 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -158,40 +158,12 @@ public class DevicePermissionService : IDevicePermissionService } - //************************************************ help methods ******************************************************* - - private async Task> GetPermissionUserNosAsync() - { - var permissions = await _dbContext.Queryable().ToListAsync(); - //User - var userNos = permissions.Where(x => x.AssignType == AssignTypeEnumType.User).Select(x => x.AssignValue).ToList(); - - //Group - var groupCode = permissions.Where(x => x.AssignType == AssignTypeEnumType.Group).Select(x => Guid.Parse(x.AssignValue)).ToList(); - var userNosByGroup = await _dbContext.Queryable() - .Where(x => groupCode.Contains(x.GroupCode)) - .Select(x => x.UserNo) - .ToListAsync(); - - //Department - var departmentNos = permissions.Where(x => x.AssignType == AssignTypeEnumType.Department).Select(x => x.AssignValue).ToList(); - var userNosByDepartment = await _dbContext.Queryable().Where(x => departmentNos.Contains(x.DepartmentNo)).Select(x => x.No).ToListAsync(); - - //Tenant - var tenants = permissions.Where(x => x.AssignType == AssignTypeEnumType.Tenant).Select(x => x.AssignValue).ToList(); - var userNosByWerk = await _dbContext.Queryable().Where(x => tenants.Contains(x.Werks)).Select(x => x.No).ToListAsync(); - - - return userNos.Concat(userNosByGroup).Concat(userNosByDepartment).Concat(userNosByWerk).ToList(); - } - - /// /// 获取用户所有设备权限 /// /// /// - private async Task> GetAssignDeviceCodesAsync(string userNo) + public async Task> GetAssignDeviceCodesAsync(string userNo) { var gainfo = await _dbContext.Queryable().Where(x => x.No == userNo).SingleAsync(); var gainfoGroups = await _dbContext.Queryable().Where(x => x.UserNo == userNo).Select(x => x.GroupCode).ToListAsync(); @@ -227,4 +199,37 @@ public class DevicePermissionService : IDevicePermissionService return deviceCodes.Distinct().ToList(); } + + + //************************************************ help methods ******************************************************* + + /// + /// 获取当前基地有权限的用户 + /// + /// + private async Task> GetPermissionUserNosAsync() + { + var permissions = await _dbContext.Queryable().ToListAsync(); + //User + var userNos = permissions.Where(x => x.AssignType == AssignTypeEnumType.User).Select(x => x.AssignValue).ToList(); + + //Group + var groupCode = permissions.Where(x => x.AssignType == AssignTypeEnumType.Group).Select(x => Guid.Parse(x.AssignValue)).ToList(); + var userNosByGroup = await _dbContext.Queryable() + .Where(x => groupCode.Contains(x.GroupCode)) + .Select(x => x.UserNo) + .ToListAsync(); + + //Department + var departmentNos = permissions.Where(x => x.AssignType == AssignTypeEnumType.Department).Select(x => x.AssignValue).ToList(); + var userNosByDepartment = await _dbContext.Queryable().Where(x => departmentNos.Contains(x.DepartmentNo)).Select(x => x.No).ToListAsync(); + + //Tenant + var tenants = permissions.Where(x => x.AssignType == AssignTypeEnumType.Tenant).Select(x => x.AssignValue).ToList(); + var userNosByWerk = await _dbContext.Queryable().Where(x => tenants.Contains(x.Werks)).Select(x => x.No).ToListAsync(); + + + return userNos.Concat(userNosByGroup).Concat(userNosByDepartment).Concat(userNosByWerk).ToList(); + } + }