using System; using System.Collections.Generic; using System.Threading.Tasks; using Infrastructure; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; using OpenAuth.App.Request; using OpenAuth.App.Response; using OpenAuth.Repository.Domain; namespace OpenAuth.WebApi.Controllers { /// /// 定时任务操作 /// 【系统模块】 /// [Route("api/[controller]/[action]")] [ApiController] [ApiExplorerSettings(GroupName = "定时任务_OpenJobs")] public class OpenJobsController : ControllerBase { private readonly OpenJobApp _app; //获取详情 [HttpGet] public Response Get(string id) { var result = new Response(); try { result.Result = _app.Get(id); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 添加 /// /// /// [HttpPost] public Response Add(AddOrUpdateOpenJobReq obj) { var result = new Response(); try { _app.Add(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 修改 /// /// /// [HttpPost] public Response Update(AddOrUpdateOpenJobReq obj) { var result = new Response(); try { _app.Update(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 加载列表 /// [HttpGet] public async Task Load([FromQuery]QueryOpenJobListReq request) { return await _app.Load(request); } /// /// 批量删除 /// [HttpPost] public Response Delete([FromBody]string[] ids) { var result = new Response(); try { _app.Delete(ids); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 获取本地可执行的任务列表 /// [HttpPost] public Response> QueryLocalHandlers() { var result = new Response>(); try { result.Result = _app.QueryLocalHandlers(); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 改变任务状态,启动/停止 /// [HttpPost] public Response ChangeStatus(ChangeJobStatusReq req) { var result = new Response(); try { _app.ChangeJobStatus(req); result.Message = "切换成功,可以在系统日志中查看运行结果"; } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } public OpenJobsController(OpenJobApp app) { _app = app; } } }