using WaterCloud.Service.SystemSecurity; using WaterCloud.Code; using System; using Microsoft.AspNetCore.Mvc; using System.Threading.Tasks; using WaterCloud.Domain.SystemSecurity; using WaterCloud.Service; using System.Linq; namespace WaterCloud.Web.Areas.SystemSecurity.Controllers { /// /// 定时任务 /// [Area("SystemSecurity")] public class OpenJobsController : BaseController { public OpenJobsService _service { get; set; } //获取详情 [HttpGet] public async Task GetFormJson(string keyValue) { var data = await _service.GetForm(keyValue); return Content(data.ToJson()); } [HttpPost] [HandlerAjaxOnly] public async Task SubmitForm(OpenJobEntity entity, string keyValue) { if (string.IsNullOrEmpty(keyValue)) { entity.F_EnabledMark = false; entity.F_DeleteMark = false; } else { entity.F_EnabledMark = null; } try { await _service.SubmitForm(entity, keyValue); return await Success("操作成功。", "", keyValue); } catch (Exception ex) { return await Error(ex.Message, "", keyValue); } } [HttpPost] [HandlerAjaxOnly] [ServiceFilter(typeof(HandlerAuthorizeAttribute))] public async Task DeleteForm(string keyValue) { try { await _service.DeleteForm(keyValue); return await Success("操作成功。", "", keyValue, DbLogType.Delete); } catch (Exception ex) { return await Error(ex.Message, "", keyValue, DbLogType.Delete); } } /// /// 获取本地可执行的任务列表 /// [HttpGet] public async Task QueryLocalHandlers() { var data = _service.QueryLocalHandlers(); return Content(data.ToJson()); } [HttpGet] [HandlerAjaxOnly] public async Task GetGridJson(Pagination pagination, string keyword) { pagination.order = "desc"; pagination.sort = "F_EnabledMark"; //导出全部页使用 if (pagination.rows == 0 && pagination.page == 0) { pagination.rows = 99999999; pagination.page = 1; } var data = await _service.GetLookList(pagination, keyword); return Success(pagination.records, data); } [HttpGet] [HandlerAjaxOnly] public async Task GetLogJson(string keyValue, string keyword) { var data = await _service.GetLogList(keyValue); if (!string.IsNullOrEmpty(keyword)) { data = data.Where(a => a.F_Description.Contains(keyword)).ToList(); } return Success(data.Count, data); } /// /// 改变任务状态,启动/停止 /// [HttpPost] public async Task ChangeStatus(string keyValue, int status) { try { await _service.ChangeJobStatus(keyValue, status); return await Success("操作成功。", "", keyValue); } catch (Exception ex) { return await Error(ex.Message, "", keyValue); } } [HttpPost] [HandlerAjaxOnly] public async Task DeleteLogForm(string keyValue) { try { await _service.DeleteLogForm(keyValue); return await Success("操作成功。", "", keyValue, DbLogType.Delete); } catch (Exception ex) { return await Error(ex.Message, "", keyValue, DbLogType.Delete); } } } }