package com.iailab.module.shasteel.job.controller.admin; import com.iailab.framework.common.pojo.CommonResult; import com.iailab.framework.common.pojo.PageResult; import com.iailab.framework.common.util.object.BeanUtils; 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.framework.tenant.core.context.TenantContextHolder; import com.iailab.module.shasteel.job.dto.ScheduleJobDTO; import com.iailab.module.shasteel.job.entity.ScheduleJobEntity; import com.iailab.module.shasteel.job.service.ScheduleJobService; import com.iailab.module.shasteel.job.vo.ScheduleJobReqVO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import static com.iailab.framework.common.pojo.CommonResult.success; /** * 定时任务 * * @author Mark sunlightcs@gmail.com */ @RestController @RequestMapping("/shasteel/job/schedule") @Tag(name = "定时任务") public class ScheduleJobController { @Resource private ScheduleJobService scheduleJobService; @GetMapping("page") @Operation(summary = "分页") @PreAuthorize("@ss.hasPermission('shasteel:schedule:query')") public CommonResult> page(@Validated ScheduleJobReqVO reqVO){ reqVO.setTenantId(TenantContextHolder.getTenantId()); PageResult page = scheduleJobService.page(reqVO); return success(BeanUtils.toBean(page, ScheduleJobDTO.class)); } @GetMapping("info") @Operation(summary = "信息") @PreAuthorize("@ss.hasPermission('shasteel:schedule:query')") public CommonResult info(@RequestParam("id") Long id){ ScheduleJobDTO schedule = scheduleJobService.get(id); return new CommonResult().setData(schedule); } @PostMapping("/create") @Operation(summary = "保存") @PreAuthorize("@ss.hasPermission('shasteel:schedule:create')") public CommonResult save(@RequestBody ScheduleJobDTO dto){ ValidationUtils.validate(dto, AddGroup.class, DefaultGroup.class); scheduleJobService.save(dto); return new CommonResult(); } @PutMapping("/update") @Operation(summary = "修改") @PreAuthorize("@ss.hasPermission('shasteel:schedule:update')") public CommonResult update(@RequestBody ScheduleJobDTO dto){ ValidationUtils.validate(dto, UpdateGroup.class, DefaultGroup.class); scheduleJobService.update(dto); return new CommonResult(); } @DeleteMapping("/delete") @Operation(summary = "删除") @PreAuthorize("@ss.hasPermission('shasteel:schedule:delete')") public CommonResult delete(@RequestParam("id") Long id){ scheduleJobService.deleteBatch(id); return new CommonResult(); } @PutMapping("/run") @Operation(summary = "立即执行") public CommonResult run(@RequestParam("id") Long id){ Long[] ids = new Long[1]; ids[0] = id; scheduleJobService.run(ids); return new CommonResult(); } @PutMapping("/pause") @Operation(summary = "暂停") public CommonResult pause(@RequestParam("id") Long id){ Long[] ids = new Long[1]; ids[0] = id; scheduleJobService.pause(ids); return new CommonResult(); } @PutMapping("/resume") @Operation(summary = "恢复") public CommonResult resume(@RequestParam("id") Long id){ Long[] ids = new Long[1]; ids[0] = id; scheduleJobService.resume(ids); return new CommonResult(); } }