fix 逻辑取反,当前忽略租户操作

This commit is contained in:
2024-07-11 13:52:25 +08:00
parent a865a7425a
commit 04ea94787c

View File

@@ -41,34 +41,37 @@ public class DevicePermissionService : IDevicePermissionService
var role = _currentUser.GetRole();
var isAll = role is "admin" or "tenant-admin";
var deviceCodes = _myDataPermissionService.GetMyDeviceCodes();
//删除当前匹配的基地权限
var p = await _dbContext.Queryable<DevicePermissionEntity>()
.Where(x => x.AssignType == request.AssignType)
.Where(x => x.AssignValue == request.AssignValue)
.Where(x => x.UniqueType == request.UniqueType)
.WhereIF(request.UniqueType == DeviceAssignmentTypeEnumType.Device && isAll, x => deviceCodes.Contains(x.UniqueValue))
.Where(x => x.Type == request.Type)
.Where(x => x.TenantId == currentTenantId)
.ToListAsync();
await _dbContext.DeleteAsync(p);
//保存配置的权限
if (request.Codes.IsPresent())
await _dbContext.IgnoreAsync<ITenantId>(async () =>
{
var devicePermissions = request.Codes.Select(code => new DevicePermissionEntity
{
AssignType = request.AssignType,
AssignValue = request.AssignValue,
UniqueType = request.UniqueType,
UniqueValue = code,
Type = request.Type,
TenantId = currentTenantId
}).ToList();
//删除当前匹配的基地权限
var p = await _dbContext.Queryable<DevicePermissionEntity>()
.Where(x => x.AssignType == request.AssignType)
.Where(x => x.AssignValue == request.AssignValue)
.Where(x => x.UniqueType == request.UniqueType)
.WhereIF(request.UniqueType == DeviceAssignmentTypeEnumType.Device && !isAll, x => deviceCodes.Contains(x.UniqueValue))
.Where(x => x.Type == request.Type)
.Where(x => x.TenantId == currentTenantId)
.ToListAsync();
await _dbContext.InsertAsync(devicePermissions);
}
await _dbContext.DeleteAsync(p);
//保存配置的权限
if (request.Codes.IsPresent())
{
var devicePermissions = request.Codes.Select(code => new DevicePermissionEntity
{
AssignType = request.AssignType,
AssignValue = request.AssignValue,
UniqueType = request.UniqueType,
UniqueValue = code,
Type = request.Type,
TenantId = currentTenantId
}).ToList();
await _dbContext.InsertAsync(devicePermissions);
}
});
}, null);
}