SysTasksQzService.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using Infrastructure.Attribute;
  2. using ZR.Model;
  3. using ZR.Model.System;
  4. using ZR.Model.System.Dto;
  5. using ZR.Repository;
  6. namespace ZR.ServiceCore.Services
  7. {
  8. /// <summary>
  9. /// 定时任务
  10. /// </summary>
  11. [AppService(ServiceType = typeof(ISysTasksQzService), ServiceLifetime = LifeTime.Transient)]
  12. public class SysTasksQzService : BaseService<SysTasks>, ISysTasksQzService
  13. {
  14. /// <summary>
  15. /// 查询任务
  16. /// </summary>
  17. /// <param name="parm"></param>
  18. /// <returns></returns>
  19. public PagedInfo<SysTasks> SelectTaskList(TasksQueryDto parm)
  20. {
  21. var predicate = Expressionable.Create<SysTasks>();
  22. predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.QueryText),
  23. m => m.Name.Contains(parm.QueryText) ||
  24. m.JobGroup.Contains(parm.QueryText) ||
  25. m.AssemblyName.Contains(parm.QueryText));
  26. predicate.AndIF(parm.TaskType != null, m => m.TaskType == parm.TaskType);
  27. predicate.AndIF(parm.IsStart != null, m => m.IsStart == parm.IsStart);
  28. return Queryable().Where(predicate.ToExpression())
  29. .ToPage(parm);
  30. }
  31. /// <summary>
  32. /// 添加任务
  33. /// </summary>
  34. /// <param name="parm"></param>
  35. /// <returns></returns>
  36. public int AddTasks(SysTasks parm)
  37. {
  38. parm.IsStart = 0;
  39. SetAssembleName(parm);
  40. return Add(parm);
  41. }
  42. private void SetAssembleName(SysTasks parm)
  43. {
  44. if (parm.ApiUrl.IfNotEmpty() && parm.TaskType == 2)
  45. {
  46. parm.AssemblyName = "ZR.Tasks";
  47. parm.ClassName = "TaskScheduler.Job_HttpRequest";
  48. }
  49. if (parm.SqlText.IfNotEmpty() && parm.TaskType == 3)
  50. {
  51. parm.AssemblyName = "ZR.Tasks";
  52. parm.ClassName = "TaskScheduler.Job_SqlExecute";
  53. }
  54. }
  55. /// <summary>
  56. /// 更新任务
  57. /// </summary>
  58. /// <param name="parm"></param>
  59. /// <returns></returns>
  60. public int UpdateTasks(SysTasks parm)
  61. {
  62. SetAssembleName(parm);
  63. return Update(f => f.ID == parm.ID, f => new SysTasks
  64. {
  65. ID = parm.ID,
  66. Name = parm.Name,
  67. JobGroup = parm.JobGroup,
  68. Cron = parm.Cron,
  69. AssemblyName = parm.AssemblyName,
  70. ClassName = parm.ClassName,
  71. Remark = parm.Remark,
  72. TriggerType = parm.TriggerType,
  73. IntervalSecond = parm.IntervalSecond,
  74. JobParams = parm.JobParams,
  75. Update_time = DateTime.Now,
  76. BeginTime = parm.BeginTime,
  77. EndTime = parm.EndTime,
  78. TaskType = parm.TaskType,
  79. ApiUrl = parm.ApiUrl,
  80. SqlText = parm.SqlText,
  81. RequestMethod = parm.RequestMethod,
  82. });
  83. }
  84. }
  85. }