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