feat 权限重置
This commit is contained in:
@@ -17,5 +17,5 @@ public interface IGainfoPermissionService : IScopeDependency
|
||||
|
||||
Task<List<DeviceGroupTreeResponse>> GetAssignGroupAsync(string userNo);
|
||||
|
||||
Task ResetPermissionsAsync(string userNo, DeviceTaskEnumType type, List<Guid> deviceCodes);
|
||||
Task<DevicePermissionAssignResponse> ResetPermissionsAsync(string userNo, DeviceTaskEnumType type, List<Guid> deviceCodes);
|
||||
}
|
||||
@@ -33,7 +33,7 @@ public class GainfoPermissionService : IGainfoPermissionService
|
||||
{
|
||||
var gainfo = await _gainfoStore.Queryable()
|
||||
.Where(x => x.No == request.UserNo)
|
||||
.FirstAsync();
|
||||
.SingleAsync();
|
||||
|
||||
if (gainfo == null)
|
||||
{
|
||||
@@ -77,7 +77,7 @@ public class GainfoPermissionService : IGainfoPermissionService
|
||||
return new List<GetDevicesUnderGroupByUserNoResponse>();
|
||||
}
|
||||
|
||||
var groups = RecursionGetNext(currentGroup, deviceGroups).ToList();
|
||||
var groups = RecursionHelper.HandlerDeviceGroupNextCodes(currentGroup.Code, deviceGroups);
|
||||
|
||||
return groups.Select(groupCode =>
|
||||
{
|
||||
@@ -191,7 +191,7 @@ public class GainfoPermissionService : IGainfoPermissionService
|
||||
}
|
||||
|
||||
|
||||
public async Task ResetPermissionsAsync(string userNo, DeviceTaskEnumType type, List<Guid> deviceCodes)
|
||||
public async Task<DevicePermissionAssignResponse> ResetPermissionsAsync(string userNo, DeviceTaskEnumType type, List<Guid> deviceCodes)
|
||||
{
|
||||
var gainfo = await _dbContext.Queryable<GainfoEntity>()
|
||||
.Where(x => x.No == userNo)
|
||||
@@ -230,10 +230,14 @@ public class GainfoPermissionService : IGainfoPermissionService
|
||||
DeviceType = x.Type,
|
||||
TenantId = x.TenantId,
|
||||
Priority = 10,
|
||||
Source = DeviceTaskSourceEnumType.Manually
|
||||
Source = DeviceTaskSourceEnumType.Manually,
|
||||
}).ToList();
|
||||
|
||||
await _dbContext.InsertAsync(tasks);
|
||||
|
||||
var addCount = type == DeviceTaskEnumType.Add ? tasks.Count : 0;
|
||||
var deleteCount = type == DeviceTaskEnumType.Delete ? tasks.Count : 0;
|
||||
return new DevicePermissionAssignResponse(addCount, deleteCount);
|
||||
}
|
||||
|
||||
|
||||
@@ -252,17 +256,4 @@ public class GainfoPermissionService : IGainfoPermissionService
|
||||
.Select<DeviceGroupTreeResponse>()
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
//**********************************************************************************************************************************************
|
||||
|
||||
private static IEnumerable<Guid> RecursionGetNext(DeviceGroupEntity current, List<DeviceGroupEntity> deviceGroups)
|
||||
{
|
||||
var next = deviceGroups.Where(x => x.PCode == current.Code).ToList();
|
||||
foreach (var item in next)
|
||||
{
|
||||
RecursionGetNext(item, deviceGroups);
|
||||
}
|
||||
|
||||
yield return current.Code;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user