using System; using System.Linq.Expressions; using System.Threading.Tasks; using New_College.IServices; using New_College.Model; using New_College.Model.Models; using New_College.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace New_College.Controllers { [Route("api/[controller]/[action]")] [ApiController] [Authorize(Permissions.Name)] public class TasksQzController : ControllerBase { private readonly ITasksQzServices _tasksQzServices; private readonly ISchedulerCenter _schedulerCenter; public TasksQzController(ITasksQzServices tasksQzServices, ISchedulerCenter schedulerCenter) { _tasksQzServices = tasksQzServices; _schedulerCenter = schedulerCenter; } /// /// 分页获取 /// /// /// /// // GET: api/Buttons/5 [HttpGet] public async Task>> Get(int page = 1, string key = "") { if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) { key = ""; } int intPageSize = 50; Expression> whereExpression = a => a.IsDelete != true && (a.Name != null && a.Name.Contains(key)); var data = await _tasksQzServices.QueryPage(whereExpression, page, intPageSize, " Id desc "); return new MessageModel>() { msg = "获取成功", success = data.dataCount >= 0, response = data }; } /// /// 添加计划任务 /// /// /// [HttpPost] public async Task> Post([FromBody] TasksQz tasksQz) { var data = new MessageModel(); var id = (await _tasksQzServices.Add(tasksQz)); data.success = id > 0; if (data.success) { data.response = id.ObjToString(); data.msg = "添加成功"; } return data; } /// /// 修改计划任务 /// /// /// [HttpPut] public async Task> Put([FromBody] TasksQz tasksQz) { var data = new MessageModel(); if (tasksQz != null && tasksQz.Id > 0) { data.success = await _tasksQzServices.Update(tasksQz); if (data.success) { data.msg = "更新成功"; data.response = tasksQz?.Id.ObjToString(); } } return data; } /// /// 启动计划任务 /// /// /// [HttpGet] public async Task> StartJob(int jobId) { var data = new MessageModel(); var model = await _tasksQzServices.QueryById(jobId); if (model != null) { var ResuleModel = await _schedulerCenter.AddScheduleJobAsync(model); if (ResuleModel.success) { model.IsStart = true; data.success = await _tasksQzServices.Update(model); } if (data.success) { data.msg = "启动成功"; data.response = jobId.ObjToString(); } } return data; } /// /// 停止一个计划任务 /// /// /// [HttpGet] public async Task> StopJob(int jobId) { var data = new MessageModel(); var model = await _tasksQzServices.QueryById(jobId); if (model != null) { var ResuleModel = await _schedulerCenter.StopScheduleJobAsync(model); if (ResuleModel.success) { model.IsStart = false; data.success = await _tasksQzServices.Update(model); } if (data.success) { data.msg = "暂停成功"; data.response = jobId.ObjToString(); } } return data; } /// /// 重启一个计划任务 /// /// /// [HttpGet] public async Task> ReCovery(int jobId) { var data = new MessageModel(); var model = await _tasksQzServices.QueryById(jobId); if (model != null) { var ResuleModel = await _schedulerCenter.ResumeJob(model); if (ResuleModel.success) { model.IsStart = true; data.success = await _tasksQzServices.Update(model); } if (data.success) { data.msg = "重启成功"; data.response = jobId.ObjToString(); } } return data; } } }