LeoSat2TaskProcessingController.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Configuration;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Web.Http;
  7. using XdCxRhDW.Dto;
  8. using XdCxRhDW.WebApi;
  9. using X2LeoTaskServer54.Service;
  10. using System.Threading.Tasks;
  11. namespace X2LeoTaskServer54.Controllers
  12. {
  13. /// <summary>
  14. ///低轨双星任务处理接口
  15. /// </summary>
  16. public class LeoSat2TaskProcessingController : BaseController
  17. {
  18. /*******************
  19. * !!!不要在Controller中放业务逻辑的全局变量(每次调用Http接口Controller都可能是一个新的对象)
  20. * Controller主要就是调用Service层的东西。Service层执行业务逻辑和调用Repository层操作数据库
  21. * ********************/
  22. private readonly TaskService _service;
  23. public LeoSat2TaskProcessingController(TaskService service)
  24. {
  25. _service = service;
  26. }
  27. /// <summary>
  28. /// 执行任务
  29. /// </summary>
  30. /// <param name="dto">任务信息</param>
  31. /// <returns></returns>
  32. [HttpPost]
  33. public async Task<AjaxResult> Run(LeoSat2TaskHandleDto dto)
  34. {
  35. try
  36. {
  37. await XdCxRhDW.UI.Lib.LogHelper.Info($"接收到任务编号:{dto.ID}");
  38. _service.StartAsync(dto);
  39. return Success();
  40. }
  41. catch (Exception ex)
  42. {
  43. await XdCxRhDW.UI.Lib.LogHelper.Error($"【任务{dto.ID}】任务执行出错!", ex);
  44. return Error($"【任务{dto.ID}】任务执行出错!");
  45. }
  46. }
  47. /// <summary>
  48. /// 任务停止
  49. /// </summary>
  50. /// <param name="dto"></param>
  51. /// <returns></returns>
  52. [HttpPost]
  53. public async Task<AjaxResult> Stop(TaskStopHandleDto dto)
  54. {
  55. try
  56. {
  57. await XdCxRhDW.UI.Lib.LogHelper.Warning($"用户停止了任务,ID={dto.ID}");
  58. _service.Stop();
  59. return Success();
  60. }
  61. catch (Exception ex)
  62. {
  63. await XdCxRhDW.UI.Lib.LogHelper.Error($"【任务{dto.ID}】停止执行异常!", ex);
  64. return Error($"【任务{dto.ID}】停止执行异常!");
  65. }
  66. }
  67. [HttpGet]
  68. public async Task<AjaxResult<LeoSat2AppSettingDto>> GetAppSetting()
  69. {
  70. try
  71. {
  72. var res = await _service.GetAppSetting();
  73. return Success(res);
  74. }
  75. catch (Exception ex)
  76. {
  77. await XdCxRhDW.UI.Lib.LogHelper.Error($"获取两星配置文件异常", ex);
  78. return Error<LeoSat2AppSettingDto>($"获取两星配置文件异常!");
  79. }
  80. }
  81. }
  82. }