QuartzTaskController.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package com.example.demo.controller;
  2. import com.example.demo.base.Constants;
  3. import com.example.demo.domain.dto.QrtzTaskAddNewDTO;
  4. import com.example.demo.domain.dto.QrtzTaskUpdateDTO;
  5. import com.example.demo.domain.dto.QueryPageDTO;
  6. import com.example.demo.domain.dto.QueryTaskDetailsDTO;
  7. import com.example.demo.domain.entity.QrtzTask;
  8. import com.example.demo.service.JobService;
  9. import com.example.demo.service.QrTaskDetailService;
  10. import com.example.demo.service.QrTaskService;
  11. import com.example.demo.util.Response;
  12. import io.swagger.v3.oas.annotations.Operation;
  13. import io.swagger.v3.oas.annotations.tags.Tag;
  14. import lombok.RequiredArgsConstructor;
  15. import org.quartz.SchedulerException;
  16. import org.springframework.context.annotation.Lazy;
  17. import org.springframework.web.bind.annotation.*;
  18. import java.io.IOException;
  19. import java.util.List;
  20. @RestController
  21. @Tag(name = "任务条件管理")
  22. @RequestMapping(Constants.QUARTZ_API + "/task")
  23. @RequiredArgsConstructor(onConstructor_ = {@Lazy})
  24. public class QuartzTaskController {
  25. private final JobService jobService;
  26. private final QrTaskService qrTaskService;
  27. private final QrTaskDetailService qrTaskDetailService;
  28. @Operation(summary = "添加任务条件")
  29. @PostMapping("/addTask")
  30. public String addTask(@RequestBody QrtzTaskAddNewDTO qrtzTaskAddNewDTO) throws SchedulerException {
  31. //添加任务
  32. QrtzTask qrtzTask = qrTaskService.addQuartzTask(qrtzTaskAddNewDTO);
  33. if (qrtzTask == null) {
  34. return Response.error("未配置网站登录信息");
  35. }
  36. //任务添加完,判断是定时任务则任务调度添加该定时任务
  37. if (qrtzTask.getTaskType() == 1) {
  38. jobService.addJob(qrtzTask);
  39. }
  40. return Response.success("添加任务完成");
  41. }
  42. @Operation(summary = "删除任务条件")
  43. @PostMapping("/deleteTasks")
  44. public String deleteTasks(@RequestBody List<Integer> taskIds) throws SchedulerException {
  45. return Response.success(qrTaskService.deleteQuartzTask(taskIds));
  46. }
  47. @Operation(summary = "查询任务条件列表")
  48. @PostMapping("/getTasks")
  49. public String getTasks(@RequestBody QueryPageDTO queryPageDTO) throws IOException {
  50. return Response.success(qrTaskService.getTasks(queryPageDTO));
  51. }
  52. @Operation(summary = "查询任务执行情况列表")
  53. @PostMapping("/getTaskDetails")
  54. public String getTaskDetails(@RequestBody QueryTaskDetailsDTO queryTaskDetailsDTO) {
  55. return Response.success(qrTaskService.getTaskDetails(queryTaskDetailsDTO));
  56. }
  57. @Operation(summary = "更新任务条件")
  58. @PostMapping("/update")
  59. public String update(@RequestBody QrtzTaskUpdateDTO qrtzTaskUpdateDTO) throws InterruptedException, SchedulerException {
  60. QrtzTask qrtzTask = qrTaskService.updateQuartzTask(qrtzTaskUpdateDTO);
  61. if (qrtzTask.getTaskType() == 1) {
  62. jobService.updateJob(qrtzTask);
  63. }
  64. return Response.success();
  65. }
  66. @Operation(summary = "暂停任务条件")
  67. @GetMapping("/pauseJob")
  68. public String pauseJob(Integer taskId) throws SchedulerException {
  69. jobService.pauseJob(taskId);
  70. return Response.success();
  71. }
  72. @Operation(summary = "继续任务")
  73. @GetMapping("/resumeJob")
  74. public String resumeJob(Integer taskId) throws SchedulerException {
  75. jobService.resumeJob(taskId);
  76. return Response.success();
  77. }
  78. @Operation(summary = "更改任务详情状态")
  79. @GetMapping("/setDetailState")
  80. public String setDetailState(Integer taskId, Integer state) throws SchedulerException {
  81. Integer flag = qrTaskDetailService.setDetailState(taskId, state);
  82. if (flag.equals(-1)) {
  83. return Response.error("更改状态失败");
  84. }
  85. return Response.success("更改状态成功");
  86. }
  87. }