package org.springblade.modules.quartz.controller;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import lombok.AllArgsConstructor;
|
import org.springblade.core.mp.support.Condition;
|
import org.springblade.core.mp.support.Query;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.utils.Func;
|
import org.springblade.modules.quartz.config.ScheduledManager;
|
import org.springblade.modules.quartz.entity.ScheduledJob;
|
import org.springblade.modules.quartz.service.ScheduledJobService;
|
import org.springblade.modules.quartz.vo.ScheduledJobVO;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.validation.constraints.NotNull;
|
import java.util.Arrays;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 定时任务控制层
|
* @author zhongrj
|
* @since 2022-03-07
|
*/
|
@AllArgsConstructor
|
@RestController
|
@RequestMapping("/scheduled")
|
public class ScheduledController {
|
private final ScheduledJobService scheduledJobService;
|
|
private final ScheduledManager scheduleManager;
|
|
/**
|
* 查询定时任务的分页数据
|
* @param page
|
* @param scheduledJob
|
* @return
|
*/
|
@GetMapping("/list")
|
public R list(Query query, ScheduledJob scheduledJob){
|
return R.data(scheduledJobService.page(Condition.getPage(query),Condition.getQueryWrapper(scheduledJob)));
|
}
|
|
|
/**
|
* 自定义定时任务的分页数据
|
* @param page
|
* @param scheduledJob
|
* @return
|
*/
|
@GetMapping("/page")
|
public R page(ScheduledJobVO scheduledJob,Query query){
|
return R.data(scheduledJobService.selectPageScheduledJobList(Condition.getPage(query),scheduledJob));
|
}
|
|
/**
|
* 定时任务详情信息
|
* @param scheduledJob
|
* @return
|
*/
|
@GetMapping("/detail")
|
public R detail(ScheduledJob scheduledJob){
|
return R.data(scheduledJobService.getOne(new QueryWrapper<>(scheduledJob)));
|
}
|
|
|
/**
|
* 定时任务新增
|
* @param scheduledJob
|
* @return
|
*/
|
@PostMapping("/save")
|
public R save(@RequestBody ScheduledJob scheduledJob){
|
scheduledJob.setCreateTime(new Date());
|
boolean status = scheduledJobService.save(scheduledJob);
|
if (status){
|
//创建定时任务
|
scheduleManager.createScheduledJob(scheduledJob);
|
}
|
return R.status(status);
|
}
|
|
/**
|
* 定时任务修改
|
* @param scheduledJob
|
* @return
|
*/
|
@PostMapping("/update")
|
public R update(@RequestBody ScheduledJob scheduledJob){
|
scheduledJob.setUpdateTime(new Date());
|
boolean status = scheduledJobService.updateById(scheduledJob);
|
if (status){
|
//修改定时任务
|
scheduleManager.updateScheduledJob(scheduledJob);
|
}
|
return R.status(status);
|
}
|
|
|
/**
|
* 删除,批量删除
|
* @param ids
|
* @return
|
*/
|
@PostMapping("/remove")
|
public R remove(@NotNull String ids){
|
List<String> list = Arrays.asList(ids.split(","));
|
list.forEach(s -> {
|
ScheduledJob scheduledJob = new ScheduledJob();
|
scheduledJob.setId(Integer.parseInt(s));
|
//删除定时任务
|
scheduleManager.deleteScheduledJob(scheduledJob);
|
});
|
return R.status(scheduledJobService.removeByIds(Func.toLongList(ids)));
|
}
|
|
/**
|
* 定时任务恢复
|
* @param scheduledJob
|
* @return
|
*/
|
@PostMapping("/activateQuartz")
|
public R activateQuartz(@RequestBody ScheduledJob scheduledJob){
|
scheduledJob.setUpdateTime(new Date());
|
boolean status = scheduledJobService.updateById(scheduledJob);
|
if (status){
|
//恢复定时任务
|
scheduleManager.resumeJob(scheduledJob);
|
}
|
return R.status(status);
|
}
|
|
/**
|
* 启动定时任务
|
* @param scheduledJob
|
* @return
|
*/
|
@PostMapping("/runQuartz")
|
public R runQuartz(@RequestBody ScheduledJob scheduledJob){
|
scheduledJob.setUpdateTime(new Date());
|
boolean status = scheduledJobService.updateById(scheduledJob);
|
if (status){
|
//立即启动任务
|
scheduleManager.run(scheduledJob);
|
}
|
return R.status(status);
|
}
|
|
/**
|
* 暂停定时任务
|
* @param scheduledJob
|
* @return
|
*/
|
@PostMapping("/stopQuartz")
|
public R stopQuartz(@RequestBody ScheduledJob scheduledJob){
|
scheduledJob.setUpdateTime(new Date());
|
boolean status = scheduledJobService.updateById(scheduledJob);
|
if (status){
|
//暂停定时任务
|
scheduleManager.pauseJob(scheduledJob);
|
}
|
return R.status(status);
|
}
|
}
|