|
|
package com.aurora.controller;
|
|
|
|
|
|
import com.aurora.annotation.OptLog;
|
|
|
import com.aurora.model.dto.JobDTO;
|
|
|
import com.aurora.model.dto.PageResultDTO;
|
|
|
import com.aurora.service.JobService;
|
|
|
import com.aurora.model.vo.*;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
import static com.aurora.constant.OptTypeConstant.*;
|
|
|
|
|
|
@Api(tags = "定时任务模块")//定时任务管理的控制器类
|
|
|
@RestController
|
|
|
public class JobController {
|
|
|
|
|
|
@Autowired
|
|
|
private JobService jobService;
|
|
|
|
|
|
@OptLog(optType = SAVE)
|
|
|
@ApiOperation("添加定时任务")
|
|
|
@PostMapping("/admin/jobs")
|
|
|
public ResultVO<?> saveJob(@RequestBody JobVO jobVO) {
|
|
|
//JobVO jobVO:封装添加定时任务的所有参数(包含定时任务的名称、执行时间、执行逻辑相关配置等添加所需信息)
|
|
|
jobService.saveJob(jobVO);
|
|
|
return ResultVO.ok();
|
|
|
}
|
|
|
|
|
|
@OptLog(optType = UPDATE)
|
|
|
@ApiOperation("修改定时任务")
|
|
|
@PutMapping("/admin/jobs")
|
|
|
public ResultVO<?> updateJob(@RequestBody JobVO jobVO) {
|
|
|
jobService.updateJob(jobVO);
|
|
|
return ResultVO.ok();
|
|
|
}
|
|
|
|
|
|
@OptLog(optType = DELETE)
|
|
|
@ApiOperation("删除定时任务")
|
|
|
@DeleteMapping("/admin/jobs")
|
|
|
public ResultVO<?> deleteJobById(@RequestBody List<Integer> jobIds) {
|
|
|
jobService.deleteJobs(jobIds);
|
|
|
return ResultVO.ok();
|
|
|
}
|
|
|
|
|
|
@ApiOperation("根据id获取任务")
|
|
|
@GetMapping("/admin/jobs/{id}")//Spring的请求映射注解,{id}是路径参数,前端调用时需填充具体的任务ID
|
|
|
//如:/admin/jobs/5 表示查询ID为5的定时任务
|
|
|
public ResultVO<JobDTO> getJobById(@PathVariable("id") Integer jobId) {
|
|
|
//@PathVariable("id"):Spring的参数接收注解,获取URL路径中{id}对应的实际值,赋值给Integer jobId
|
|
|
//JobDTO是定时任务的数据传输对象(封装定时任务的详细信息,比如任务名称、执行规则、状态等),返回该ID对应的定时任务详情
|
|
|
return ResultVO.ok(jobService.getJobById(jobId));
|
|
|
}
|
|
|
|
|
|
@ApiOperation("获取任务列表")
|
|
|
@GetMapping("/admin/jobs")
|
|
|
public ResultVO<PageResultDTO<JobDTO>> listJobs(JobSearchVO jobSearchVO) {
|
|
|
//JobSearchVO jobSearchVO:封装定时任务的查询条件(比如任务名称关键词、任务分组、任务状态等)
|
|
|
return ResultVO.ok(jobService.listJobs(jobSearchVO));
|
|
|
}
|
|
|
|
|
|
@ApiOperation("更改任务的状态")//比如启用、禁用任务
|
|
|
@PutMapping("/admin/jobs/status")
|
|
|
public ResultVO<?> updateJobStatus(@RequestBody JobStatusVO jobStatusVO) {
|
|
|
//JobStatusVO jobStatusVO:封装任务状态修改的参数(包含任务ID、要修改的目标状态等信息)
|
|
|
jobService.updateJobStatus(jobStatusVO);
|
|
|
return ResultVO.ok();
|
|
|
}
|
|
|
|
|
|
@ApiOperation("执行某个任务")//说明接口功能是手动触发某个定时任务立即执行(无需等待定时时间)
|
|
|
@PutMapping("/admin/jobs/run")
|
|
|
public ResultVO<?> runJob(@RequestBody JobRunVO jobRunVO) {
|
|
|
//JobRunVO jobRunVO:封装手动执行任务的参数(包含要执行的任务ID等信息)
|
|
|
jobService.runJob(jobRunVO);
|
|
|
return ResultVO.ok();
|
|
|
}
|
|
|
|
|
|
@ApiOperation("获取所有job分组")//用于后台查询、添加任务时选择分组
|
|
|
@GetMapping("/admin/jobs/jobGroups")
|
|
|
public ResultVO<List<String>> listJobGroup() {
|
|
|
//返回值ResultVO<List<String>>:返回包含所有任务分组名称的字符串列表
|
|
|
return ResultVO.ok(jobService.listJobGroups());
|
|
|
}
|
|
|
}
|