package com.iailab.module.job.controller; import com.iailab.framework.common.page.PageData; import com.iailab.common.utils.Constant; import com.iailab.framework.common.pojo.CommonResult; import com.iailab.framework.common.util.validation.ValidationUtils; import com.iailab.framework.common.validation.group.AddGroup; import com.iailab.framework.common.validation.group.DefaultGroup; import com.iailab.framework.common.validation.group.UpdateGroup; import com.iailab.module.job.dto.ScheduleJobDTO; import com.iailab.module.job.service.ScheduleJobService; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import javax.annotation.Resource; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.Map; /** * 定时任务 * * @author Mark sunlightcs@gmail.com */ @RestController @RequestMapping("mcs/schedule") @Tag(name = "定时任务") public class ScheduleJobController { @Resource private ScheduleJobService scheduleJobService; @GetMapping("page") @Operation(summary = "分页") @Parameters({ @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true) , @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true) , @Parameter(name = Constant.ORDER_FIELD, description = "排序字段") , @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)") , @Parameter(name = "beanName", description = "beanName") }) public CommonResult> page(@RequestParam Map params){ PageData page = scheduleJobService.page(params); return new CommonResult>().setData(page); } @GetMapping("{id}") @Operation(summary = "信息") public CommonResult info(@PathVariable("id") Long id){ ScheduleJobDTO schedule = scheduleJobService.get(id); return new CommonResult().setData(schedule); } @PostMapping @Operation(summary = "保存") @PreAuthorize("@ss.hasPermission('mcs:schedule:save')") public CommonResult save(@RequestBody ScheduleJobDTO dto){ ValidationUtils.validate(dto, AddGroup.class, DefaultGroup.class); scheduleJobService.save(dto); return new CommonResult(); } @PutMapping @Operation(summary = "修改") @PreAuthorize("@ss.hasPermission('mcs:schedule:update')") public CommonResult update(@RequestBody ScheduleJobDTO dto){ ValidationUtils.validate(dto, UpdateGroup.class, DefaultGroup.class); scheduleJobService.update(dto); return new CommonResult(); } @DeleteMapping @Operation(summary = "删除") @PreAuthorize("@ss.hasPermission('mcs:schedule:delete')") public CommonResult delete(@RequestBody Long[] ids){ scheduleJobService.deleteBatch(ids); return new CommonResult(); } @PutMapping("/run") @Operation(summary = "立即执行") @PreAuthorize("@ss.hasPermission('mcs:schedule:run')") public CommonResult run(@RequestBody Long[] ids){ scheduleJobService.run(ids); return new CommonResult(); } @PutMapping("/pause") @Operation(summary = "暂停") @PreAuthorize("@ss.hasPermission('mcs:schedule:pause')") public CommonResult pause(@RequestBody Long[] ids){ scheduleJobService.pause(ids); return new CommonResult(); } @PutMapping("/resume") @Operation(summary = "恢复") @PreAuthorize("@ss.hasPermission('mcs:schedule:resume')") public CommonResult resume(@RequestBody Long[] ids){ scheduleJobService.resume(ids); return new CommonResult(); } }