feat 手动删除权限接口
This commit is contained in:
@@ -63,4 +63,11 @@ public class DevicePermissionManuallyController : ControllerBase
|
|||||||
{
|
{
|
||||||
await _devicePermissionService.DeleteAsync(ids);
|
await _devicePermissionService.DeleteAsync(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost("{factory}/clear/{userCode}")]
|
||||||
|
[IgnoreTenant]
|
||||||
|
public async Task ClearAllDevicePermissions(string factory, string userCode)
|
||||||
|
{
|
||||||
|
await _devicePermissionService.ClearAllDevicePermissions(factory, userCode);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -36,4 +36,6 @@ public interface IDevicePermissionManuallyService : IScopeDependency
|
|||||||
/// <param name="ids"></param>
|
/// <param name="ids"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task DeleteAsync(List<long> ids);
|
Task DeleteAsync(List<long> ids);
|
||||||
|
|
||||||
|
Task ClearAllDevicePermissions(string factory, string userCode);
|
||||||
}
|
}
|
||||||
@@ -120,4 +120,30 @@ public class DevicePermissionManuallyService : IDevicePermissionManuallyService
|
|||||||
await _dbContext.DeleteAsync(item);
|
await _dbContext.DeleteAsync(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public async Task ClearAllDevicePermissions(string factory, string userCode)
|
||||||
|
{
|
||||||
|
var userInfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == userCode).Select(x => new { x.Id, x.No }).SingleAsync()
|
||||||
|
?? await _dbContext.Queryable<GainfoLeaveEntity>().Where(x => x.Code == userCode).Select(x => new { Id = (long)x.IdentityUserId, x.No }).SingleAsync();
|
||||||
|
userInfo.ThrowIfNull($"{userCode}不存在");
|
||||||
|
var devices = await _dbContext.Queryable<DeviceEntity>().Where(x => x.TenantId == factory).ToListAsync();
|
||||||
|
|
||||||
|
var data = devices.Select(x => new DeviceTaskEntity
|
||||||
|
{
|
||||||
|
Type = DeviceTaskEnumType.Delete,
|
||||||
|
DeviceType = x.Type,
|
||||||
|
UserId = userInfo.Id,
|
||||||
|
UserNo = userInfo.No,
|
||||||
|
DeviceUniqueNo = x.UniqueNo,
|
||||||
|
Status = DeviceTaskStatusEnumType.Wait,
|
||||||
|
Version = 0,
|
||||||
|
ResultMessage = null,
|
||||||
|
Source = "手动删除处理",
|
||||||
|
Priority = 0,
|
||||||
|
TenantId = x.TenantId
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
await _dbContext.InsertAsync(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user