fix code/no包含查找

This commit is contained in:
2024-06-24 17:52:19 +08:00
parent 0d08600ef4
commit ef18e20adf

View File

@@ -109,7 +109,11 @@ public class DevicePermissionService : IDevicePermissionService
//保存配置的权限
if (request.Values.IsPresent())
{
var gainfoNos = await _dbContext.Queryable<GainfoEntity>().Where(x => request.Values.Contains(x.Code)).Select(x => x.No).ToListAsync();
var gainfoNos = await _dbContext.Queryable<GainfoEntity>()
.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<GainfoEntity>().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<GainfoGroupEntity>().Where(x => x.Code == code)
.LeftJoin<GainfoGroupRelationshipEntity>((a, b) => a.Code == b.GroupCode)
.LeftJoin<GainfoEntity>((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<GainfoGroupEntity>().Where(x => x.Code == code)
.LeftJoin<GainfoGroupRelationshipEntity>((a, b) => a.Code == b.GroupCode)
.LeftJoin<GainfoEntity>((a, b, c) => b.UserNo == c.No)
.Select((a, b, c) => c.Id).ToListAsync());
}
break;
case AssignTypeEnumType.Department:
{
ids.AddRange(await _dbContext.Queryable<GainfoEntity>().Where(x => x.DepartmentNo == permission.AssignValue).Select(x => x.Id).ToListAsync());
}
{
ids.AddRange(await _dbContext.Queryable<GainfoEntity>().Where(x => x.DepartmentNo == permission.AssignValue).Select(x => x.Id).ToListAsync());
}
break;
case AssignTypeEnumType.Tenant:
{
ids.AddRange(await _dbContext.Queryable<GainfoEntity>().Where(x => x.Factory == permission.AssignValue).Select(x => x.Id).ToListAsync());
}
{
ids.AddRange(await _dbContext.Queryable<GainfoEntity>().Where(x => x.Factory == permission.AssignValue).Select(x => x.Id).ToListAsync());
}
break;
default:
throw new ArgumentOutOfRangeException();