fix 分配处理临时恢复

This commit is contained in:
2024-06-06 17:28:44 +08:00
parent 39b748f4bc
commit c978e773b2

View File

@@ -33,27 +33,57 @@ public class DevicePermissionService : IDevicePermissionService
public async Task AssignAsync(DevicePermissionSaveRequest request)
{
var currentTenantId = _currentUser.GetStringTenantId();
await using var handler = await _redisCache.LockAsync($"permission:generate:{currentTenantId}");
handler.Acquired.ThrowIfFalse("请勿频繁分配设备权限");
// var currentTenantId = _currentUser.GetStringTenantId();
//
// await using var handler = await _redisCache.LockAsync($"permission:generate:{currentTenantId}");
// handler.Acquired.ThrowIfFalse("请勿频繁分配设备权限");
//
// var tenantId = request.AssignType == AssignTypeEnumType.Department ? request.TenantId : _currentUser.GetStringTenantId();
// request.TenantId = tenantId;
//
// var json = request.ToJson();
// var id = await _dbContext.InsertReturnIdentityAsync(new DevicePermissionAssignmentEntity
// {
// Assignment = json,
// IsHandler = false,
// Result = null,
// TenantId = currentTenantId
// });
//
// await _hangfireApi.GeneratePermissionsAsync(new GeneratePermissionIdRequest()
// {
// Id = id
// });
var tenantId = request.AssignType == AssignTypeEnumType.Department ? request.TenantId : _currentUser.GetStringTenantId();
request.TenantId = tenantId;
var json = request.ToJson();
var id = await _dbContext.InsertReturnIdentityAsync(new DevicePermissionAssignmentEntity
await GenerateDeviceTasksAsync(async () =>
{
Assignment = json,
IsHandler = false,
Result = null,
TenantId = currentTenantId
});
//删除当前匹配的基地权限
var p = await _dbContext.Queryable<DevicePermissionEntity>()
.Where(x => x.AssignType == request.AssignType)
.Where(x => x.AssignValue == request.AssignValue)
.Where(x => x.UniqueType == request.UniqueType)
.Where(x => x.TenantId == tenantId)
.ToListAsync();
await _hangfireApi.GeneratePermissionsAsync(new GeneratePermissionIdRequest()
{
Id = id
});
await _dbContext.DeleteReallyAsync(p);
//保存配置的权限
if (request.Codes.IsPresent())
{
var devicePermissions = request.Codes.Select(code => new DevicePermissionEntity
{
AssignType = request.AssignType,
AssignValue = request.AssignValue,
UniqueType = request.UniqueType,
UniqueValue = code,
TenantId = tenantId
}).ToList();
await _dbContext.InsertAsync(devicePermissions);
}
}, null);
}
public async Task GeneratePermissionsAsync(long id)