using System; using System.Threading; using System.Threading.Tasks; using System.Web.Http; using X2D1TaskServer54.Service; using XdCxRhDW.Dto; using XdCxRhDW.WebApi; namespace X2D1TaskServer54.Controllers { /// ///两星一地任务处理接口 /// public class X2D1TaskProcessingController : BaseController { /******************* * !!!不要在Controller中放业务逻辑的全局变量 * !!!不要在Controller写太复杂的业务逻辑 * Controller主要就是调用Service层的东西。Service层执行业务逻辑和调用Repository层操作数据库 * ********************/ private readonly TaskHistoryService _tskHservice; private readonly TaskRealService _tskRservice; public X2D1TaskProcessingController(TaskHistoryService tskHservice, TaskRealService tskRservice) { _tskHservice = tskHservice; _tskRservice = tskRservice; } /// /// 开始执行两星一地无参任务 /// /// 离线任务信息 /// [HttpPost] public AjaxResult Run(X2D1TaskHandleDto dto) { try { if (dto.TaskType == EnumTaskTypeDto.History) { if (_tskHservice.Stop(dto.ID)) { Thread.Sleep(2000); } _tskHservice.StartAsync(dto); } else { if (_tskRservice.Stop(dto.ID)) { Thread.Sleep(2000); } _tskRservice.StartAsync(dto); } return Success(); } catch (Exception ex) { XdCxRhDW.Framework.LogHelper.Error($"【任务{dto.ID}】开始执行异常!", ex); return Error($"【任务{dto.ID}】开始执行异常!"); } } /// /// 停止执行两星一地无参任务 /// /// /// [HttpPost] public async Task Stop(TaskStopHandleDto dto) { try { await XdCxRhDW.UI.Lib.LogHelper.Warning($"用户停止了任务,ID={dto.ID}"); if (dto.TaskType == EnumTaskTypeDto.History) _tskHservice.Stop(dto.ID); else _tskRservice.Stop(dto.ID); return Success(); } catch (Exception ex) { XdCxRhDW.Framework.LogHelper.Error($"【任务{dto.ID}】停止执行异常!", ex); return Error($"【任务{dto.ID}】停止执行异常!"); } } } }