dongyukun
2025-02-07 8aadcbe920f02806b9fa363b386d3d6c693c5c56
提交 | 用户 | 时间
1c9291 1 package com.iailab.module.model.job.controller.admin;
L 2
3 import com.iailab.framework.common.constant.Constant;
4 import com.iailab.framework.common.pojo.CommonResult;
5 import com.iailab.framework.common.pojo.PageResult;
6 import com.iailab.framework.common.util.object.BeanUtils;
7 import com.iailab.framework.common.util.validation.ValidationUtils;
8 import com.iailab.framework.common.validation.group.AddGroup;
9 import com.iailab.framework.common.validation.group.DefaultGroup;
10 import com.iailab.framework.common.validation.group.UpdateGroup;
11 import com.iailab.framework.tenant.core.context.TenantContextHolder;
12 import com.iailab.module.model.job.dto.ScheduleJobDTO;
13 import com.iailab.module.model.job.entity.ScheduleJobEntity;
14 import com.iailab.module.model.job.service.ScheduleJobService;
15 import com.iailab.module.model.job.vo.ScheduleJobReqVO;
16 import io.swagger.v3.oas.annotations.Operation;
17 import io.swagger.v3.oas.annotations.Parameter;
18 import io.swagger.v3.oas.annotations.Parameters;
19 import io.swagger.v3.oas.annotations.tags.Tag;
20 import org.springframework.security.access.prepost.PreAuthorize;
21 import org.springframework.validation.annotation.Validated;
22 import org.springframework.web.bind.annotation.*;
23
24 import javax.annotation.Resource;
25
26 import static com.iailab.framework.common.pojo.CommonResult.success;
27
28 /**
29  * 定时任务
30  *
31  * @author Mark sunlightcs@gmail.com
32  */
33 @RestController
34 @RequestMapping("/model/job/schedule")
35 @Tag(name = "定时任务")
36 public class ScheduleJobController {
37     @Resource
38     private ScheduleJobService scheduleJobService;
39
40     @GetMapping("page")
41     @Operation(summary = "分页")
42     @Parameters({
43         @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true) ,
44         @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true) ,
45         @Parameter(name = Constant.ORDER_FIELD, description = "排序字段") ,
46         @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)") ,
47         @Parameter(name = "beanName", description = "beanName")
48     })
49     @PreAuthorize("@ss.hasPermission('model:schedule:query')")
50     public CommonResult<PageResult<ScheduleJobDTO>> page(@Validated ScheduleJobReqVO reqVO){
51         reqVO.setTenantId(TenantContextHolder.getTenantId());
52         PageResult<ScheduleJobEntity> page = scheduleJobService.page(reqVO);
53
54         return success(BeanUtils.toBean(page, ScheduleJobDTO.class));
55     }
56
57     @GetMapping("info")
58     @Operation(summary = "信息")
59     @PreAuthorize("@ss.hasPermission('model:schedule:query')")
60     public CommonResult<ScheduleJobDTO> info(@RequestParam("id") Long id){
61         ScheduleJobDTO schedule = scheduleJobService.get(id);
62         
63         return new CommonResult<ScheduleJobDTO>().setData(schedule);
64     }
65
66     @PostMapping("/create")
67     @Operation(summary = "保存")
68     @PreAuthorize("@ss.hasPermission('model:schedule:create')")
69     public CommonResult save(@RequestBody ScheduleJobDTO dto){
70         ValidationUtils.validate(dto, AddGroup.class, DefaultGroup.class);
71         
72         scheduleJobService.save(dto);
73         
74         return new CommonResult();
75     }
76
77     @PutMapping("/update")
78     @Operation(summary = "修改")
79     @PreAuthorize("@ss.hasPermission('model:schedule:update')")
80     public CommonResult update(@RequestBody ScheduleJobDTO dto){
81         ValidationUtils.validate(dto, UpdateGroup.class, DefaultGroup.class);
82                 
83         scheduleJobService.update(dto);
84         
85         return new CommonResult();
86     }
87
88     @DeleteMapping("/delete")
89     @Operation(summary = "删除")
90     @PreAuthorize("@ss.hasPermission('model:schedule:delete')")
91     public CommonResult delete(@RequestParam("id") Long id){
92         scheduleJobService.deleteBatch(id);
93         
94         return new CommonResult();
95     }
96
97     @PutMapping("/run")
98     @Operation(summary = "立即执行")
99     public CommonResult run(@RequestParam("id") Long id){
100         Long[] ids = new Long[1];
101         ids[0] = id;
102         scheduleJobService.run(ids);
103         
104         return new CommonResult();
105     }
106
107     @PutMapping("/pause")
108     @Operation(summary = "暂停")
109     public CommonResult pause(@RequestParam("id") Long id){
110         Long[] ids = new Long[1];
111         ids[0] = id;
112         scheduleJobService.pause(ids);
113         
114         return new CommonResult();
115     }
116
117     @PutMapping("/resume")
118     @Operation(summary = "恢复")
119     public CommonResult resume(@RequestParam("id") Long id){
120         Long[] ids = new Long[1];
121         ids[0] = id;
122         scheduleJobService.resume(ids);
123         
124         return new CommonResult();
125     }
126
127 }