namespace CloudGaming.Api.Admin.Controllers.DevelopmentTools; /// /// 系统账号管理 /// [ControllerDescriptor(MenuId = "30")] public class QuartzTasksController( IServiceProvider serviceProvider, IJobLoggerService jobLoggerService, IRepository quartzJobRepository) : AdminControllerBase(serviceProvider) { /// /// 获取列表 /// /// /// [HttpPost("{filter?}")] public Task> FindListAsync([FromRoute] string? filter) => Service.FindListAsync(filter); /// /// 保存数据 /// /// /// [HttpPost] public Task SaveFormAsync([FromBody] QuartzJob form) => Service.SaveAsync(form); /// /// 删除数据 /// /// /// [HttpPost] public Task DeleteListAsync([FromBody] List ids) => Service.DeleteAsync(ids); /// /// 根据Id 查询表单数据 /// /// /// [HttpGet("{id?}")] public Task FindFormAsync([FromRoute] Guid id) => Service.FindByIdAsync(id); /// /// 根据任务id 运行任务调度 /// /// /// [HttpPost] public async Task RunAsync([FromBody] List ids) { var quartzJobTasks = await quartzJobRepository.SelectNoTracking.Where(w => ids.Contains(w.Id)).ToListAsync(); await Service.RunByIdAsync(quartzJobTasks); return true; } /// /// 根据任务id 关闭任务调度 /// /// /// [HttpPost] public async Task CloseAsync([FromBody] List ids) { var quartzJobTasks = await quartzJobRepository.SelectNoTracking.Where(w => ids.Contains(w.Id)).ToListAsync(); await Service.CloseByIdAsync(quartzJobTasks); return true; } /// /// 获取运行日志 /// /// /// /// /// [HttpGet("{taskId}/{page}/{size}")] public object GetJobLoggers([FromRoute] Guid taskId, [FromRoute] int page, [FromRoute] int size) { var list = jobLoggerService.FindListById(taskId, page, size, out var total) .OrderByDescending(w => w.CreationTime) .ToList() ; return new { list, total }; } /// /// 扫描本地任务 /// /// [HttpGet] public Task ScanTaskAsync() { return Service.RecoveryTaskAsync(); } }