diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index 40fd48cc..1c870be0 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -109,7 +109,11 @@ public class DevicePermissionService : IDevicePermissionService //保存配置的权限 if (request.Values.IsPresent()) { - var gainfoNos = await _dbContext.Queryable().Where(x => request.Values.Contains(x.Code)).Select(x => x.No).ToListAsync(); + var gainfoNos = await _dbContext.Queryable() + .Where(x => request.Values.Contains(x.Code) || request.Values.Contains(x.No)) + .Select(x => x.No) + .ToListAsync(); + (gainfoNos.Count != request.Values.Count).ThrowIfTrue("存在非当前权限访问的人员,操作禁止!"); var devicePermissions = gainfoNos.Select(v => new DevicePermissionEntity @@ -409,23 +413,23 @@ public class DevicePermissionService : IDevicePermissionService ids.Add(await _dbContext.Queryable().Where(x => x.No == permission.AssignValue).Select(x => x.Id).SingleAsync()); break; case AssignTypeEnumType.Group: - { - var code = Guid.Parse(permission.AssignValue); - ids.AddRange(await _dbContext.Queryable().Where(x => x.Code == code) - .LeftJoin((a, b) => a.Code == b.GroupCode) - .LeftJoin((a, b, c) => b.UserNo == c.No) - .Select((a, b, c) => c.Id).ToListAsync()); - } + { + var code = Guid.Parse(permission.AssignValue); + ids.AddRange(await _dbContext.Queryable().Where(x => x.Code == code) + .LeftJoin((a, b) => a.Code == b.GroupCode) + .LeftJoin((a, b, c) => b.UserNo == c.No) + .Select((a, b, c) => c.Id).ToListAsync()); + } break; case AssignTypeEnumType.Department: - { - ids.AddRange(await _dbContext.Queryable().Where(x => x.DepartmentNo == permission.AssignValue).Select(x => x.Id).ToListAsync()); - } + { + ids.AddRange(await _dbContext.Queryable().Where(x => x.DepartmentNo == permission.AssignValue).Select(x => x.Id).ToListAsync()); + } break; case AssignTypeEnumType.Tenant: - { - ids.AddRange(await _dbContext.Queryable().Where(x => x.Factory == permission.AssignValue).Select(x => x.Id).ToListAsync()); - } + { + ids.AddRange(await _dbContext.Queryable().Where(x => x.Factory == permission.AssignValue).Select(x => x.Id).ToListAsync()); + } break; default: throw new ArgumentOutOfRangeException();