fix devicePermission-unique

This commit is contained in:
2024-12-24 19:41:11 +08:00
parent 303319c0fd
commit d6e8976ff2

View File

@@ -23,21 +23,18 @@ public class DevicePermissionService : IDevicePermissionService
private readonly IDbContext _dbContext;
private readonly ITenantApi _tenantApi;
private readonly INamedResolver _namedResolver;
private readonly ILogger<DevicePermissionService> _logger;
private readonly IDevicePermissionAnalyzeService _devicePermissionAnalyzeService;
private readonly ICurrentUser _currentUser;
public DevicePermissionService(IDbContext dbContext,
ITenantApi tenantApi,
INamedResolver namedResolver,
ILogger<DevicePermissionService> logger,
IDevicePermissionAnalyzeService devicePermissionAnalyzeService,
ICurrentUser currentUser)
{
_dbContext = dbContext;
_tenantApi = tenantApi;
_namedResolver = namedResolver;
_logger = logger;
_devicePermissionAnalyzeService = devicePermissionAnalyzeService;
_currentUser = currentUser;
}
@@ -114,18 +111,14 @@ public class DevicePermissionService : IDevicePermissionService
{
if (userTenantDeviceCodes.TryGetValue(userNo, out var permissions))
{
var ov = permissions.ToJson();
foreach (var permission in permissions)
{
permission.AssignTypes = permission.AssignTypes
.Where(x => x.UniqueType != DeviceAssignmentTypeEnumType.Device && x.AssignType != AssignTypeEnumType.User)
.ToList();
permission.AssignTypes.RemoveAll(x => x.UniqueType == DeviceAssignmentTypeEnumType.Device && x.AssignType == AssignTypeEnumType.User);
}
var myDeviceCodes = permissions.SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).Distinct().ToList();
if (myDeviceCodes.All(x => x != device.Code))
{
_logger.LogInformation("触发删除:{userNo} . {originalJson} . {json}", userNo, ov, permissions.ToJson());
tasksToDelete.Add(new DeviceTaskEntity
{
Type = DeviceTaskEnumType.Delete,