feat 手动删除权限接口

This commit is contained in:
2025-04-25 10:06:03 +08:00
parent caeeb8d0d5
commit 6204ddbc57
3 changed files with 35 additions and 0 deletions

View File

@@ -63,4 +63,11 @@ public class DevicePermissionManuallyController : ControllerBase
{
await _devicePermissionService.DeleteAsync(ids);
}
[HttpPost("{factory}/clear/{userCode}")]
[IgnoreTenant]
public async Task ClearAllDevicePermissions(string factory, string userCode)
{
await _devicePermissionService.ClearAllDevicePermissions(factory, userCode);
}
}

View File

@@ -36,4 +36,6 @@ public interface IDevicePermissionManuallyService : IScopeDependency
/// <param name="ids"></param>
/// <returns></returns>
Task DeleteAsync(List<long> ids);
Task ClearAllDevicePermissions(string factory, string userCode);
}

View File

@@ -120,4 +120,30 @@ public class DevicePermissionManuallyService : IDevicePermissionManuallyService
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);
}
}