Commit e541fe63246e140b9e3c1e309ec7f7d6540f191b
1 parent
35d171b1
🔧 简化 job 模块的 VO
Showing
22 changed files
with
151 additions
and
591 deletions
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/JobController.java
| 1 | 1 | package cn.iocoder.yudao.module.infra.controller.admin.job; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 4 | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | |
| 5 | 7 | import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; |
| 6 | 8 | import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; |
| 7 | 9 | import cn.iocoder.yudao.framework.quartz.core.util.CronUtils; |
| 8 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.*; | |
| 9 | -import cn.iocoder.yudao.module.infra.convert.job.JobConvert; | |
| 10 | +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobPageReqVO; | |
| 11 | +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobRespVO; | |
| 12 | +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobSaveReqVO; | |
| 10 | 13 | import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobDO; |
| 11 | 14 | import cn.iocoder.yudao.module.infra.service.job.JobService; |
| 12 | -import io.swagger.v3.oas.annotations.tags.Tag; | |
| 15 | +import io.swagger.v3.oas.annotations.Operation; | |
| 13 | 16 | import io.swagger.v3.oas.annotations.Parameter; |
| 14 | 17 | import io.swagger.v3.oas.annotations.Parameters; |
| 15 | -import io.swagger.v3.oas.annotations.Operation; | |
| 18 | +import io.swagger.v3.oas.annotations.tags.Tag; | |
| 16 | 19 | import org.quartz.SchedulerException; |
| 17 | 20 | import org.springframework.security.access.prepost.PreAuthorize; |
| 18 | 21 | import org.springframework.validation.annotation.Validated; |
| ... | ... | @@ -23,7 +26,6 @@ import javax.servlet.http.HttpServletResponse; |
| 23 | 26 | import javax.validation.Valid; |
| 24 | 27 | import java.io.IOException; |
| 25 | 28 | import java.time.LocalDateTime; |
| 26 | -import java.util.Collection; | |
| 27 | 29 | import java.util.Collections; |
| 28 | 30 | import java.util.List; |
| 29 | 31 | |
| ... | ... | @@ -42,7 +44,7 @@ public class JobController { |
| 42 | 44 | @PostMapping("/create") |
| 43 | 45 | @Operation(summary = "创建定时任务") |
| 44 | 46 | @PreAuthorize("@ss.hasPermission('infra:job:create')") |
| 45 | - public CommonResult<Long> createJob(@Valid @RequestBody JobCreateReqVO createReqVO) | |
| 47 | + public CommonResult<Long> createJob(@Valid @RequestBody JobSaveReqVO createReqVO) | |
| 46 | 48 | throws SchedulerException { |
| 47 | 49 | return success(jobService.createJob(createReqVO)); |
| 48 | 50 | } |
| ... | ... | @@ -50,7 +52,7 @@ public class JobController { |
| 50 | 52 | @PutMapping("/update") |
| 51 | 53 | @Operation(summary = "更新定时任务") |
| 52 | 54 | @PreAuthorize("@ss.hasPermission('infra:job:update')") |
| 53 | - public CommonResult<Boolean> updateJob(@Valid @RequestBody JobUpdateReqVO updateReqVO) | |
| 55 | + public CommonResult<Boolean> updateJob(@Valid @RequestBody JobSaveReqVO updateReqVO) | |
| 54 | 56 | throws SchedulerException { |
| 55 | 57 | jobService.updateJob(updateReqVO); |
| 56 | 58 | return success(true); |
| ... | ... | @@ -94,16 +96,7 @@ public class JobController { |
| 94 | 96 | @PreAuthorize("@ss.hasPermission('infra:job:query')") |
| 95 | 97 | public CommonResult<JobRespVO> getJob(@RequestParam("id") Long id) { |
| 96 | 98 | JobDO job = jobService.getJob(id); |
| 97 | - return success(JobConvert.INSTANCE.convert(job)); | |
| 98 | - } | |
| 99 | - | |
| 100 | - @GetMapping("/list") | |
| 101 | - @Operation(summary = "获得定时任务列表") | |
| 102 | - @Parameter(name = "ids", description = "编号列表", required = true) | |
| 103 | - @PreAuthorize("@ss.hasPermission('infra:job:query')") | |
| 104 | - public CommonResult<List<JobRespVO>> getJobList(@RequestParam("ids") Collection<Long> ids) { | |
| 105 | - List<JobDO> list = jobService.getJobList(ids); | |
| 106 | - return success(JobConvert.INSTANCE.convertList(list)); | |
| 99 | + return success(BeanUtils.toBean(job, JobRespVO.class)); | |
| 107 | 100 | } |
| 108 | 101 | |
| 109 | 102 | @GetMapping("/page") |
| ... | ... | @@ -111,19 +104,20 @@ public class JobController { |
| 111 | 104 | @PreAuthorize("@ss.hasPermission('infra:job:query')") |
| 112 | 105 | public CommonResult<PageResult<JobRespVO>> getJobPage(@Valid JobPageReqVO pageVO) { |
| 113 | 106 | PageResult<JobDO> pageResult = jobService.getJobPage(pageVO); |
| 114 | - return success(JobConvert.INSTANCE.convertPage(pageResult)); | |
| 107 | + return success(BeanUtils.toBean(pageResult, JobRespVO.class)); | |
| 115 | 108 | } |
| 116 | 109 | |
| 117 | 110 | @GetMapping("/export-excel") |
| 118 | 111 | @Operation(summary = "导出定时任务 Excel") |
| 119 | 112 | @PreAuthorize("@ss.hasPermission('infra:job:export')") |
| 120 | 113 | @OperateLog(type = EXPORT) |
| 121 | - public void exportJobExcel(@Valid JobExportReqVO exportReqVO, | |
| 114 | + public void exportJobExcel(@Valid JobPageReqVO exportReqVO, | |
| 122 | 115 | HttpServletResponse response) throws IOException { |
| 123 | - List<JobDO> list = jobService.getJobList(exportReqVO); | |
| 116 | + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); | |
| 117 | + List<JobDO> list = jobService.getJobPage(exportReqVO).getList(); | |
| 124 | 118 | // 导出 Excel |
| 125 | - List<JobExcelVO> datas = JobConvert.INSTANCE.convertList02(list); | |
| 126 | - ExcelUtils.write(response, "定时任务.xls", "数据", JobExcelVO.class, datas); | |
| 119 | + ExcelUtils.write(response, "定时任务.xls", "数据", JobRespVO.class, | |
| 120 | + BeanUtils.toBean(list, JobRespVO.class)); | |
| 127 | 121 | } |
| 128 | 122 | |
| 129 | 123 | @GetMapping("/get_next_times") |
| ... | ... | @@ -133,8 +127,9 @@ public class JobController { |
| 133 | 127 | @Parameter(name = "count", description = "数量", example = "5") |
| 134 | 128 | }) |
| 135 | 129 | @PreAuthorize("@ss.hasPermission('infra:job:query')") |
| 136 | - public CommonResult<List<LocalDateTime>> getJobNextTimes(@RequestParam("id") Long id, | |
| 137 | - @RequestParam(value = "count", required = false, defaultValue = "5") Integer count) { | |
| 130 | + public CommonResult<List<LocalDateTime>> getJobNextTimes( | |
| 131 | + @RequestParam("id") Long id, | |
| 132 | + @RequestParam(value = "count", required = false, defaultValue = "5") Integer count) { | |
| 138 | 133 | JobDO job = jobService.getJob(id); |
| 139 | 134 | if (job == null) { |
| 140 | 135 | return success(Collections.emptyList()); | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/JobLogController.java
| 1 | 1 | package cn.iocoder.yudao.module.infra.controller.admin.job; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 4 | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | |
| 5 | 7 | import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; |
| 6 | 8 | import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; |
| 7 | -import cn.iocoder.yudao.framework.operatelog.core.util.OperateLogUtils; | |
| 8 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogExcelVO; | |
| 9 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogExportReqVO; | |
| 10 | 9 | import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogPageReqVO; |
| 11 | 10 | import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogRespVO; |
| 12 | -import cn.iocoder.yudao.module.infra.convert.job.JobLogConvert; | |
| 13 | 11 | import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobLogDO; |
| 14 | 12 | import cn.iocoder.yudao.module.infra.service.job.JobLogService; |
| 15 | -import io.swagger.v3.oas.annotations.tags.Tag; | |
| 16 | -import io.swagger.v3.oas.annotations.Parameter; | |
| 17 | 13 | import io.swagger.v3.oas.annotations.Operation; |
| 14 | +import io.swagger.v3.oas.annotations.Parameter; | |
| 15 | +import io.swagger.v3.oas.annotations.tags.Tag; | |
| 18 | 16 | import org.springframework.security.access.prepost.PreAuthorize; |
| 19 | 17 | import org.springframework.validation.annotation.Validated; |
| 20 | 18 | import org.springframework.web.bind.annotation.GetMapping; |
| ... | ... | @@ -26,7 +24,6 @@ import javax.annotation.Resource; |
| 26 | 24 | import javax.servlet.http.HttpServletResponse; |
| 27 | 25 | import javax.validation.Valid; |
| 28 | 26 | import java.io.IOException; |
| 29 | -import java.util.Collection; | |
| 30 | 27 | import java.util.List; |
| 31 | 28 | |
| 32 | 29 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| ... | ... | @@ -47,16 +44,7 @@ public class JobLogController { |
| 47 | 44 | @PreAuthorize("@ss.hasPermission('infra:job:query')") |
| 48 | 45 | public CommonResult<JobLogRespVO> getJobLog(@RequestParam("id") Long id) { |
| 49 | 46 | JobLogDO jobLog = jobLogService.getJobLog(id); |
| 50 | - return success(JobLogConvert.INSTANCE.convert(jobLog)); | |
| 51 | - } | |
| 52 | - | |
| 53 | - @GetMapping("/list") | |
| 54 | - @Operation(summary = "获得定时任务日志列表") | |
| 55 | - @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") | |
| 56 | - @PreAuthorize("@ss.hasPermission('infra:job:query')") | |
| 57 | - public CommonResult<List<JobLogRespVO>> getJobLogList(@RequestParam("ids") Collection<Long> ids) { | |
| 58 | - List<JobLogDO> list = jobLogService.getJobLogList(ids); | |
| 59 | - return success(JobLogConvert.INSTANCE.convertList(list)); | |
| 47 | + return success(BeanUtils.toBean(jobLog, JobLogRespVO.class)); | |
| 60 | 48 | } |
| 61 | 49 | |
| 62 | 50 | @GetMapping("/page") |
| ... | ... | @@ -64,19 +52,20 @@ public class JobLogController { |
| 64 | 52 | @PreAuthorize("@ss.hasPermission('infra:job:query')") |
| 65 | 53 | public CommonResult<PageResult<JobLogRespVO>> getJobLogPage(@Valid JobLogPageReqVO pageVO) { |
| 66 | 54 | PageResult<JobLogDO> pageResult = jobLogService.getJobLogPage(pageVO); |
| 67 | - return success(JobLogConvert.INSTANCE.convertPage(pageResult)); | |
| 55 | + return success(BeanUtils.toBean(pageResult, JobLogRespVO.class)); | |
| 68 | 56 | } |
| 69 | 57 | |
| 70 | 58 | @GetMapping("/export-excel") |
| 71 | 59 | @Operation(summary = "导出定时任务日志 Excel") |
| 72 | 60 | @PreAuthorize("@ss.hasPermission('infra:job:export')") |
| 73 | 61 | @OperateLog(type = EXPORT) |
| 74 | - public void exportJobLogExcel(@Valid JobLogExportReqVO exportReqVO, | |
| 62 | + public void exportJobLogExcel(@Valid JobLogPageReqVO exportReqVO, | |
| 75 | 63 | HttpServletResponse response) throws IOException { |
| 76 | - List<JobLogDO> list = jobLogService.getJobLogList(exportReqVO); | |
| 64 | + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); | |
| 65 | + List<JobLogDO> list = jobLogService.getJobLogPage(exportReqVO).getList(); | |
| 77 | 66 | // 导出 Excel |
| 78 | - List<JobLogExcelVO> datas = JobLogConvert.INSTANCE.convertList02(list); | |
| 79 | - ExcelUtils.write(response, "任务日志.xls", "数据", JobLogExcelVO.class, datas); | |
| 67 | + ExcelUtils.write(response, "任务日志.xls", "数据", JobLogRespVO.class, | |
| 68 | + BeanUtils.toBean(list, JobLogRespVO.class)); | |
| 80 | 69 | } |
| 81 | 70 | |
| 82 | 71 | -} |
| 72 | +} | |
| 83 | 73 | \ No newline at end of file | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobCreateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.infra.controller.admin.job.vo.job; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | - | |
| 8 | -import javax.validation.constraints.NotNull; | |
| 9 | - | |
| 10 | -@Schema(description = "管理后台 - 定时任务创建 Request VO") | |
| 11 | -@Data | |
| 12 | -@EqualsAndHashCode(callSuper = true) | |
| 13 | -@ToString(callSuper = true) | |
| 14 | -public class JobCreateReqVO extends JobBaseVO { | |
| 15 | - | |
| 16 | - @Schema(description = "处理器的名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "sysUserSessionTimeoutJob") | |
| 17 | - @NotNull(message = "处理器的名字不能为空") | |
| 18 | - private String handlerName; | |
| 19 | - | |
| 20 | -} |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobExcelVO.java deleted
| 1 | -package cn.iocoder.yudao.module.infra.controller.admin.job.vo.job; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; | |
| 4 | -import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; | |
| 5 | -import cn.iocoder.yudao.module.infra.enums.DictTypeConstants; | |
| 6 | -import com.alibaba.excel.annotation.ExcelProperty; | |
| 7 | -import lombok.Data; | |
| 8 | - | |
| 9 | -import java.time.LocalDateTime; | |
| 10 | - | |
| 11 | -/** | |
| 12 | - * 定时任务 Excel VO | |
| 13 | - * | |
| 14 | - * @author 芋道源码 | |
| 15 | - */ | |
| 16 | -@Data | |
| 17 | -public class JobExcelVO { | |
| 18 | - | |
| 19 | - @ExcelProperty("任务编号") | |
| 20 | - private Long id; | |
| 21 | - | |
| 22 | - @ExcelProperty("任务名称") | |
| 23 | - private String name; | |
| 24 | - | |
| 25 | - @ExcelProperty(value = "任务状态", converter = DictConvert.class) | |
| 26 | - @DictFormat(DictTypeConstants.JOB_STATUS) | |
| 27 | - private Integer status; | |
| 28 | - | |
| 29 | - @ExcelProperty("处理器的名字") | |
| 30 | - private String handlerName; | |
| 31 | - | |
| 32 | - @ExcelProperty("处理器的参数") | |
| 33 | - private String handlerParam; | |
| 34 | - | |
| 35 | - @ExcelProperty("CRON 表达式") | |
| 36 | - private String cronExpression; | |
| 37 | - | |
| 38 | - @ExcelProperty("最后一次执行的开始时间") | |
| 39 | - private LocalDateTime executeBeginTime; | |
| 40 | - | |
| 41 | - @ExcelProperty("最后一次执行的结束时间") | |
| 42 | - private LocalDateTime executeEndTime; | |
| 43 | - | |
| 44 | - @ExcelProperty("上一次触发时间") | |
| 45 | - private LocalDateTime firePrevTime; | |
| 46 | - | |
| 47 | - @ExcelProperty("下一次触发时间") | |
| 48 | - private LocalDateTime fireNextTime; | |
| 49 | - | |
| 50 | - @ExcelProperty("监控超时时间") | |
| 51 | - private Integer monitorTimeout; | |
| 52 | - | |
| 53 | - @ExcelProperty("创建时间") | |
| 54 | - private LocalDateTime createTime; | |
| 55 | - | |
| 56 | -} |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobExportReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.infra.controller.admin.job.vo.job; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | - | |
| 6 | -@Schema(description = "管理后台 - 定时任务 Excel 导出 Request VO-参数和 JobPageReqVO 是一致的") | |
| 7 | -@Data | |
| 8 | -public class JobExportReqVO { | |
| 9 | - | |
| 10 | - @Schema(description = "任务名称-模糊匹配", example = "测试任务") | |
| 11 | - private String name; | |
| 12 | - | |
| 13 | - @Schema(description = "任务状态-参见 JobStatusEnum 枚举", example = "1") | |
| 14 | - private Integer status; | |
| 15 | - | |
| 16 | - @Schema(description = "处理器的名字-模糊匹配", example = "UserSessionTimeoutJob") | |
| 17 | - private String handlerName; | |
| 18 | - | |
| 19 | -} |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.infra.controller.admin.job.vo.job; |
| 2 | 2 | |
| 3 | +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; | |
| 4 | +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; | |
| 5 | +import cn.iocoder.yudao.module.infra.enums.DictTypeConstants; | |
| 6 | +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | |
| 7 | +import com.alibaba.excel.annotation.ExcelProperty; | |
| 3 | 8 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | 9 | import lombok.Data; |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | 10 | |
| 8 | 11 | import javax.validation.constraints.NotNull; |
| 9 | 12 | import java.time.LocalDateTime; |
| 10 | 13 | |
| 11 | 14 | @Schema(description = "管理后台 - 定时任务 Response VO") |
| 12 | 15 | @Data |
| 13 | -@EqualsAndHashCode(callSuper = true) | |
| 14 | -@ToString(callSuper = true) | |
| 15 | -public class JobRespVO extends JobBaseVO { | |
| 16 | +@ExcelIgnoreUnannotated | |
| 17 | +public class JobRespVO { | |
| 16 | 18 | |
| 17 | 19 | @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 20 | + @ExcelProperty("任务编号") | |
| 18 | 21 | private Long id; |
| 19 | 22 | |
| 23 | + @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试任务") | |
| 24 | + @ExcelProperty("任务名称") | |
| 25 | + private String name; | |
| 26 | + | |
| 20 | 27 | @Schema(description = "任务状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 28 | + @ExcelProperty(value = "任务状态", converter = DictConvert.class) | |
| 29 | + @DictFormat(DictTypeConstants.JOB_STATUS) | |
| 21 | 30 | private Integer status; |
| 22 | 31 | |
| 23 | 32 | @Schema(description = "处理器的名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "sysUserSessionTimeoutJob") |
| 24 | - @NotNull(message = "处理器的名字不能为空") | |
| 33 | + @ExcelProperty("处理器的名字") | |
| 25 | 34 | private String handlerName; |
| 26 | 35 | |
| 36 | + @Schema(description = "处理器的参数", example = "yudao") | |
| 37 | + @ExcelProperty("处理器的参数") | |
| 38 | + private String handlerParam; | |
| 39 | + | |
| 40 | + @Schema(description = "CRON 表达式", requiredMode = Schema.RequiredMode.REQUIRED, example = "0/10 * * * * ? *") | |
| 41 | + @ExcelProperty("CRON 表达式") | |
| 42 | + private String cronExpression; | |
| 43 | + | |
| 44 | + @Schema(description = "重试次数", requiredMode = Schema.RequiredMode.REQUIRED, example = "3") | |
| 45 | + @NotNull(message = "重试次数不能为空") | |
| 46 | + private Integer retryCount; | |
| 47 | + | |
| 48 | + @Schema(description = "重试间隔", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000") | |
| 49 | + private Integer retryInterval; | |
| 50 | + | |
| 51 | + @Schema(description = "监控超时时间", example = "1000") | |
| 52 | + @ExcelProperty("监控超时时间") | |
| 53 | + private Integer monitorTimeout; | |
| 54 | + | |
| 27 | 55 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 56 | + @ExcelProperty("创建时间") | |
| 28 | 57 | private LocalDateTime createTime; |
| 29 | 58 | |
| 30 | 59 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobBaseVO.java renamed to yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobSaveReqVO.java
| ... | ... | @@ -3,24 +3,29 @@ package cn.iocoder.yudao.module.infra.controller.admin.job.vo.job; |
| 3 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | 4 | import lombok.Data; |
| 5 | 5 | |
| 6 | +import javax.validation.constraints.NotEmpty; | |
| 6 | 7 | import javax.validation.constraints.NotNull; |
| 7 | 8 | |
| 8 | -/** | |
| 9 | -* 定时任务 Base VO,提供给添加、修改、详细的子 VO 使用 | |
| 10 | -* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | |
| 11 | -*/ | |
| 9 | +@Schema(description = "管理后台 - 定时任务创建/修改 Request VO") | |
| 12 | 10 | @Data |
| 13 | -public class JobBaseVO { | |
| 11 | +public class JobSaveReqVO { | |
| 12 | + | |
| 13 | + @Schema(description = "任务编号", example = "1024") | |
| 14 | + private Long id; | |
| 14 | 15 | |
| 15 | 16 | @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试任务") |
| 16 | - @NotNull(message = "任务名称不能为空") | |
| 17 | + @NotEmpty(message = "任务名称不能为空") | |
| 17 | 18 | private String name; |
| 18 | 19 | |
| 20 | + @Schema(description = "处理器的名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "sysUserSessionTimeoutJob") | |
| 21 | + @NotEmpty(message = "处理器的名字不能为空") | |
| 22 | + private String handlerName; | |
| 23 | + | |
| 19 | 24 | @Schema(description = "处理器的参数", example = "yudao") |
| 20 | 25 | private String handlerParam; |
| 21 | 26 | |
| 22 | 27 | @Schema(description = "CRON 表达式", requiredMode = Schema.RequiredMode.REQUIRED, example = "0/10 * * * * ? *") |
| 23 | - @NotNull(message = "CRON 表达式不能为空") | |
| 28 | + @NotEmpty(message = "CRON 表达式不能为空") | |
| 24 | 29 | private String cronExpression; |
| 25 | 30 | |
| 26 | 31 | @Schema(description = "重试次数", requiredMode = Schema.RequiredMode.REQUIRED, example = "3") | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobUpdateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.infra.controller.admin.job.vo.job; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | - | |
| 8 | -import javax.validation.constraints.NotNull; | |
| 9 | - | |
| 10 | -@Schema(description = "管理后台 - 定时任务更新 Request VO") | |
| 11 | -@Data | |
| 12 | -@EqualsAndHashCode(callSuper = true) | |
| 13 | -@ToString(callSuper = true) | |
| 14 | -public class JobUpdateReqVO extends JobBaseVO { | |
| 15 | - | |
| 16 | - @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | |
| 17 | - @NotNull(message = "任务编号不能为空") | |
| 18 | - private Long id; | |
| 19 | - | |
| 20 | -} |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogBaseVO.java deleted
| 1 | -package cn.iocoder.yudao.module.infra.controller.admin.job.vo.log; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import org.springframework.format.annotation.DateTimeFormat; | |
| 6 | - | |
| 7 | -import javax.validation.constraints.NotNull; | |
| 8 | -import java.time.LocalDateTime; | |
| 9 | - | |
| 10 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | |
| 11 | - | |
| 12 | -/** | |
| 13 | -* 定时任务日志 Base VO,提供给添加、修改、详细的子 VO 使用 | |
| 14 | -* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | |
| 15 | -*/ | |
| 16 | -@Data | |
| 17 | -public class JobLogBaseVO { | |
| 18 | - | |
| 19 | - @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | |
| 20 | - @NotNull(message = "任务编号不能为空") | |
| 21 | - private Long jobId; | |
| 22 | - | |
| 23 | - @Schema(description = "处理器的名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "sysUserSessionTimeoutJob") | |
| 24 | - @NotNull(message = "处理器的名字不能为空") | |
| 25 | - private String handlerName; | |
| 26 | - | |
| 27 | - @Schema(description = "处理器的参数", example = "yudao") | |
| 28 | - private String handlerParam; | |
| 29 | - | |
| 30 | - @Schema(description = "第几次执行", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 31 | - @NotNull(message = "第几次执行不能为空") | |
| 32 | - private Integer executeIndex; | |
| 33 | - | |
| 34 | - @Schema(description = "开始执行时间", requiredMode = Schema.RequiredMode.REQUIRED) | |
| 35 | - @NotNull(message = "开始执行时间不能为空") | |
| 36 | - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | |
| 37 | - private LocalDateTime beginTime; | |
| 38 | - | |
| 39 | - @Schema(description = "结束执行时间") | |
| 40 | - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | |
| 41 | - private LocalDateTime endTime; | |
| 42 | - | |
| 43 | - @Schema(description = "执行时长", example = "123") | |
| 44 | - private Integer duration; | |
| 45 | - | |
| 46 | - @Schema(description = "任务状态,参见 JobLogStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 47 | - @NotNull(message = "任务状态不能为空") | |
| 48 | - private Integer status; | |
| 49 | - | |
| 50 | - @Schema(description = "结果数据", example = "执行成功") | |
| 51 | - private String result; | |
| 52 | - | |
| 53 | -} |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogExcelVO.java deleted
| 1 | -package cn.iocoder.yudao.module.infra.controller.admin.job.vo.log; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; | |
| 4 | -import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; | |
| 5 | -import cn.iocoder.yudao.module.infra.enums.DictTypeConstants; | |
| 6 | -import com.alibaba.excel.annotation.ExcelProperty; | |
| 7 | -import lombok.Data; | |
| 8 | - | |
| 9 | -import java.time.LocalDateTime; | |
| 10 | - | |
| 11 | -/** | |
| 12 | - * 定时任务 Excel VO | |
| 13 | - * | |
| 14 | - * @author 芋艿 | |
| 15 | - */ | |
| 16 | -@Data | |
| 17 | -public class JobLogExcelVO { | |
| 18 | - | |
| 19 | - @ExcelProperty("日志编号") | |
| 20 | - private Long id; | |
| 21 | - | |
| 22 | - @ExcelProperty("任务编号") | |
| 23 | - private Long jobId; | |
| 24 | - | |
| 25 | - @ExcelProperty("处理器的名字") | |
| 26 | - private String handlerName; | |
| 27 | - | |
| 28 | - @ExcelProperty("处理器的参数") | |
| 29 | - private String handlerParam; | |
| 30 | - | |
| 31 | - @ExcelProperty("第几次执行") | |
| 32 | - private Integer executeIndex; | |
| 33 | - | |
| 34 | - @ExcelProperty("开始执行时间") | |
| 35 | - private LocalDateTime beginTime; | |
| 36 | - | |
| 37 | - @ExcelProperty("结束执行时间") | |
| 38 | - private LocalDateTime endTime; | |
| 39 | - | |
| 40 | - @ExcelProperty("执行时长") | |
| 41 | - private Integer duration; | |
| 42 | - | |
| 43 | - @ExcelProperty(value = "任务状态", converter = DictConvert.class) | |
| 44 | - @DictFormat(DictTypeConstants.JOB_STATUS) | |
| 45 | - private Integer status; | |
| 46 | - | |
| 47 | - @ExcelProperty("结果数据") | |
| 48 | - private String result; | |
| 49 | - | |
| 50 | - @ExcelProperty("创建时间") | |
| 51 | - private LocalDateTime createTime; | |
| 52 | - | |
| 53 | -} |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogExportReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.infra.controller.admin.job.vo.log; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import org.springframework.format.annotation.DateTimeFormat; | |
| 6 | - | |
| 7 | -import java.time.LocalDateTime; | |
| 8 | - | |
| 9 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | |
| 10 | - | |
| 11 | -@Schema(description = "管理后台 - 定时任务 Excel 导出 Request VO,参数和 JobLogPageReqVO 是一致的") | |
| 12 | -@Data | |
| 13 | -public class JobLogExportReqVO { | |
| 14 | - | |
| 15 | - @Schema(description = "任务编号", example = "10") | |
| 16 | - private Long jobId; | |
| 17 | - | |
| 18 | - @Schema(description = "处理器的名字,模糊匹配") | |
| 19 | - private String handlerName; | |
| 20 | - | |
| 21 | - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | |
| 22 | - @Schema(description = "开始执行时间") | |
| 23 | - private LocalDateTime beginTime; | |
| 24 | - | |
| 25 | - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | |
| 26 | - @Schema(description = "结束执行时间") | |
| 27 | - private LocalDateTime endTime; | |
| 28 | - | |
| 29 | - @Schema(description = "任务状态,参见 JobLogStatusEnum 枚举") | |
| 30 | - private Integer status; | |
| 31 | - | |
| 32 | -} |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.infra.controller.admin.job.vo.log; |
| 2 | 2 | |
| 3 | +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; | |
| 4 | +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; | |
| 5 | +import cn.iocoder.yudao.module.infra.enums.DictTypeConstants; | |
| 6 | +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | |
| 7 | +import com.alibaba.excel.annotation.ExcelProperty; | |
| 3 | 8 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | 9 | import lombok.Data; |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | 10 | |
| 8 | 11 | import java.time.LocalDateTime; |
| 9 | 12 | |
| 10 | 13 | @Schema(description = "管理后台 - 定时任务日志 Response VO") |
| 11 | 14 | @Data |
| 12 | -@EqualsAndHashCode(callSuper = true) | |
| 13 | -@ToString(callSuper = true) | |
| 14 | -public class JobLogRespVO extends JobLogBaseVO { | |
| 15 | +@ExcelIgnoreUnannotated | |
| 16 | +public class JobLogRespVO { | |
| 15 | 17 | |
| 16 | 18 | @Schema(description = "日志编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 19 | + @ExcelProperty("日志编号") | |
| 17 | 20 | private Long id; |
| 18 | 21 | |
| 22 | + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | |
| 23 | + @ExcelProperty("任务编号") | |
| 24 | + private Long jobId; | |
| 25 | + | |
| 26 | + @Schema(description = "处理器的名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "sysUserSessionTimeoutJob") | |
| 27 | + @ExcelProperty("处理器的名字") | |
| 28 | + private String handlerName; | |
| 29 | + | |
| 30 | + @Schema(description = "处理器的参数", example = "yudao") | |
| 31 | + @ExcelProperty("处理器的参数") | |
| 32 | + private String handlerParam; | |
| 33 | + | |
| 34 | + @Schema(description = "第几次执行", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 35 | + @ExcelProperty("第几次执行") | |
| 36 | + private Integer executeIndex; | |
| 37 | + | |
| 38 | + @Schema(description = "开始执行时间", requiredMode = Schema.RequiredMode.REQUIRED) | |
| 39 | + @ExcelProperty("开始执行时间") | |
| 40 | + private LocalDateTime beginTime; | |
| 41 | + | |
| 42 | + @Schema(description = "结束执行时间") | |
| 43 | + @ExcelProperty("结束执行时间") | |
| 44 | + private LocalDateTime endTime; | |
| 45 | + | |
| 46 | + @Schema(description = "执行时长", example = "123") | |
| 47 | + @ExcelProperty("执行时长") | |
| 48 | + private Integer duration; | |
| 49 | + | |
| 50 | + @Schema(description = "任务状态,参见 JobLogStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 51 | + @ExcelProperty(value = "任务状态", converter = DictConvert.class) | |
| 52 | + @DictFormat(DictTypeConstants.JOB_STATUS) | |
| 53 | + private Integer status; | |
| 54 | + | |
| 55 | + @Schema(description = "结果数据", example = "执行成功") | |
| 56 | + @ExcelProperty("结果数据") | |
| 57 | + private String result; | |
| 58 | + | |
| 19 | 59 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 60 | + @ExcelProperty("创建时间") | |
| 20 | 61 | private LocalDateTime createTime; |
| 21 | 62 | |
| 22 | 63 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/job/JobConvert.java deleted
| 1 | -package cn.iocoder.yudao.module.infra.convert.job; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobCreateReqVO; | |
| 5 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobExcelVO; | |
| 6 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobRespVO; | |
| 7 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobUpdateReqVO; | |
| 8 | -import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobDO; | |
| 9 | -import org.mapstruct.Mapper; | |
| 10 | -import org.mapstruct.factory.Mappers; | |
| 11 | - | |
| 12 | -import java.util.List; | |
| 13 | - | |
| 14 | -/** | |
| 15 | - * 定时任务 Convert | |
| 16 | - * | |
| 17 | - * @author 芋道源码 | |
| 18 | - */ | |
| 19 | -@Mapper | |
| 20 | -public interface JobConvert { | |
| 21 | - | |
| 22 | - JobConvert INSTANCE = Mappers.getMapper(JobConvert.class); | |
| 23 | - | |
| 24 | - JobDO convert(JobCreateReqVO bean); | |
| 25 | - | |
| 26 | - JobDO convert(JobUpdateReqVO bean); | |
| 27 | - | |
| 28 | - JobRespVO convert(JobDO bean); | |
| 29 | - | |
| 30 | - List<JobRespVO> convertList(List<JobDO> list); | |
| 31 | - | |
| 32 | - PageResult<JobRespVO> convertPage(PageResult<JobDO> page); | |
| 33 | - | |
| 34 | - List<JobExcelVO> convertList02(List<JobDO> list); | |
| 35 | - | |
| 36 | -} |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/job/JobLogConvert.java deleted
| 1 | -package cn.iocoder.yudao.module.infra.convert.job; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogExcelVO; | |
| 5 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogRespVO; | |
| 6 | -import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobLogDO; | |
| 7 | -import org.mapstruct.Mapper; | |
| 8 | -import org.mapstruct.factory.Mappers; | |
| 9 | - | |
| 10 | -import java.util.List; | |
| 11 | - | |
| 12 | -/** | |
| 13 | - * 定时任务日志 Convert | |
| 14 | - * | |
| 15 | - * @author 芋艿 | |
| 16 | - */ | |
| 17 | -@Mapper | |
| 18 | -public interface JobLogConvert { | |
| 19 | - | |
| 20 | - JobLogConvert INSTANCE = Mappers.getMapper(JobLogConvert.class); | |
| 21 | - | |
| 22 | - JobLogRespVO convert(JobLogDO bean); | |
| 23 | - | |
| 24 | - List<JobLogRespVO> convertList(List<JobLogDO> list); | |
| 25 | - | |
| 26 | - PageResult<JobLogRespVO> convertPage(PageResult<JobLogDO> page); | |
| 27 | - | |
| 28 | - List<JobLogExcelVO> convertList02(List<JobLogDO> list); | |
| 29 | - | |
| 30 | -} |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/job/JobLogMapper.java
| ... | ... | @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.infra.dal.mysql.job; |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | 4 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| 5 | 5 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| 6 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogExportReqVO; | |
| 7 | 6 | import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogPageReqVO; |
| 8 | 7 | import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobLogDO; |
| 9 | 8 | import org.apache.ibatis.annotations.Delete; |
| ... | ... | @@ -11,7 +10,6 @@ import org.apache.ibatis.annotations.Mapper; |
| 11 | 10 | import org.apache.ibatis.annotations.Param; |
| 12 | 11 | |
| 13 | 12 | import java.time.LocalDateTime; |
| 14 | -import java.util.List; | |
| 15 | 13 | |
| 16 | 14 | /** |
| 17 | 15 | * 任务日志 Mapper |
| ... | ... | @@ -32,17 +30,6 @@ public interface JobLogMapper extends BaseMapperX<JobLogDO> { |
| 32 | 30 | ); |
| 33 | 31 | } |
| 34 | 32 | |
| 35 | - default List<JobLogDO> selectList(JobLogExportReqVO reqVO) { | |
| 36 | - return selectList(new LambdaQueryWrapperX<JobLogDO>() | |
| 37 | - .eqIfPresent(JobLogDO::getJobId, reqVO.getJobId()) | |
| 38 | - .likeIfPresent(JobLogDO::getHandlerName, reqVO.getHandlerName()) | |
| 39 | - .geIfPresent(JobLogDO::getBeginTime, reqVO.getBeginTime()) | |
| 40 | - .leIfPresent(JobLogDO::getEndTime, reqVO.getEndTime()) | |
| 41 | - .eqIfPresent(JobLogDO::getStatus, reqVO.getStatus()) | |
| 42 | - .orderByDesc(JobLogDO::getId) // ID 倒序 | |
| 43 | - ); | |
| 44 | - } | |
| 45 | - | |
| 46 | 33 | /** |
| 47 | 34 | * 物理删除指定时间之前的日志 |
| 48 | 35 | * | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/job/JobMapper.java
| 1 | 1 | package cn.iocoder.yudao.module.infra.dal.mysql.job; |
| 2 | 2 | |
| 3 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobExportReqVO; | |
| 4 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobPageReqVO; | |
| 5 | -import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobDO; | |
| 6 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 7 | 4 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| 8 | 5 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| 6 | +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobPageReqVO; | |
| 7 | +import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobDO; | |
| 9 | 8 | import org.apache.ibatis.annotations.Mapper; |
| 10 | 9 | |
| 11 | -import java.util.List; | |
| 12 | - | |
| 13 | 10 | /** |
| 14 | 11 | * 定时任务 Mapper |
| 15 | 12 | * |
| ... | ... | @@ -30,12 +27,4 @@ public interface JobMapper extends BaseMapperX<JobDO> { |
| 30 | 27 | ); |
| 31 | 28 | } |
| 32 | 29 | |
| 33 | - default List<JobDO> selectList(JobExportReqVO reqVO) { | |
| 34 | - return selectList(new LambdaQueryWrapperX<JobDO>() | |
| 35 | - .likeIfPresent(JobDO::getName, reqVO.getName()) | |
| 36 | - .eqIfPresent(JobDO::getStatus, reqVO.getStatus()) | |
| 37 | - .likeIfPresent(JobDO::getHandlerName, reqVO.getHandlerName()) | |
| 38 | - ); | |
| 39 | - } | |
| 40 | - | |
| 41 | 30 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobLogService.java
| ... | ... | @@ -2,13 +2,9 @@ package cn.iocoder.yudao.module.infra.service.job; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | 4 | import cn.iocoder.yudao.framework.quartz.core.service.JobLogFrameworkService; |
| 5 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogExportReqVO; | |
| 6 | 5 | import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogPageReqVO; |
| 7 | 6 | import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobLogDO; |
| 8 | 7 | |
| 9 | -import java.util.Collection; | |
| 10 | -import java.util.List; | |
| 11 | - | |
| 12 | 8 | /** |
| 13 | 9 | * Job 日志 Service 接口 |
| 14 | 10 | * |
| ... | ... | @@ -25,14 +21,6 @@ public interface JobLogService extends JobLogFrameworkService { |
| 25 | 21 | JobLogDO getJobLog(Long id); |
| 26 | 22 | |
| 27 | 23 | /** |
| 28 | - * 获得定时任务列表 | |
| 29 | - * | |
| 30 | - * @param ids 编号 | |
| 31 | - * @return 定时任务列表 | |
| 32 | - */ | |
| 33 | - List<JobLogDO> getJobLogList(Collection<Long> ids); | |
| 34 | - | |
| 35 | - /** | |
| 36 | 24 | * 获得定时任务分页 |
| 37 | 25 | * |
| 38 | 26 | * @param pageReqVO 分页查询 |
| ... | ... | @@ -41,14 +29,6 @@ public interface JobLogService extends JobLogFrameworkService { |
| 41 | 29 | PageResult<JobLogDO> getJobLogPage(JobLogPageReqVO pageReqVO); |
| 42 | 30 | |
| 43 | 31 | /** |
| 44 | - * 获得定时任务列表, 用于 Excel 导出 | |
| 45 | - * | |
| 46 | - * @param exportReqVO 查询条件 | |
| 47 | - * @return 定时任务分页 | |
| 48 | - */ | |
| 49 | - List<JobLogDO> getJobLogList(JobLogExportReqVO exportReqVO); | |
| 50 | - | |
| 51 | - /** | |
| 52 | 32 | * 清理 exceedDay 天前的任务日志 |
| 53 | 33 | * |
| 54 | 34 | * @param exceedDay 超过多少天就进行清理 | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobLogServiceImpl.java
| 1 | 1 | package cn.iocoder.yudao.module.infra.service.job; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogExportReqVO; | |
| 5 | 4 | import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogPageReqVO; |
| 6 | 5 | import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobLogDO; |
| 7 | 6 | import cn.iocoder.yudao.module.infra.dal.mysql.job.JobLogMapper; |
| ... | ... | @@ -13,8 +12,6 @@ import org.springframework.validation.annotation.Validated; |
| 13 | 12 | |
| 14 | 13 | import javax.annotation.Resource; |
| 15 | 14 | import java.time.LocalDateTime; |
| 16 | -import java.util.Collection; | |
| 17 | -import java.util.List; | |
| 18 | 15 | |
| 19 | 16 | /** |
| 20 | 17 | * Job 日志 Service 实现类 |
| ... | ... | @@ -30,8 +27,10 @@ public class JobLogServiceImpl implements JobLogService { |
| 30 | 27 | private JobLogMapper jobLogMapper; |
| 31 | 28 | |
| 32 | 29 | @Override |
| 33 | - public Long createJobLog(Long jobId, LocalDateTime beginTime, String jobHandlerName, String jobHandlerParam, Integer executeIndex) { | |
| 34 | - JobLogDO log = JobLogDO.builder().jobId(jobId).handlerName(jobHandlerName).handlerParam(jobHandlerParam).executeIndex(executeIndex) | |
| 30 | + public Long createJobLog(Long jobId, LocalDateTime beginTime, | |
| 31 | + String jobHandlerName, String jobHandlerParam, Integer executeIndex) { | |
| 32 | + JobLogDO log = JobLogDO.builder().jobId(jobId).handlerName(jobHandlerName) | |
| 33 | + .handlerParam(jobHandlerParam).executeIndex(executeIndex) | |
| 35 | 34 | .beginTime(beginTime).status(JobLogStatusEnum.RUNNING.getStatus()).build(); |
| 36 | 35 | jobLogMapper.insert(log); |
| 37 | 36 | return log.getId(); |
| ... | ... | @@ -42,7 +41,8 @@ public class JobLogServiceImpl implements JobLogService { |
| 42 | 41 | public void updateJobLogResultAsync(Long logId, LocalDateTime endTime, Integer duration, boolean success, String result) { |
| 43 | 42 | try { |
| 44 | 43 | JobLogDO updateObj = JobLogDO.builder().id(logId).endTime(endTime).duration(duration) |
| 45 | - .status(success ? JobLogStatusEnum.SUCCESS.getStatus() : JobLogStatusEnum.FAILURE.getStatus()).result(result).build(); | |
| 44 | + .status(success ? JobLogStatusEnum.SUCCESS.getStatus() : JobLogStatusEnum.FAILURE.getStatus()) | |
| 45 | + .result(result).build(); | |
| 46 | 46 | jobLogMapper.updateById(updateObj); |
| 47 | 47 | } catch (Exception ex) { |
| 48 | 48 | log.error("[updateJobLogResultAsync][logId({}) endTime({}) duration({}) success({}) result({})]", |
| ... | ... | @@ -73,18 +73,8 @@ public class JobLogServiceImpl implements JobLogService { |
| 73 | 73 | } |
| 74 | 74 | |
| 75 | 75 | @Override |
| 76 | - public List<JobLogDO> getJobLogList(Collection<Long> ids) { | |
| 77 | - return jobLogMapper.selectBatchIds(ids); | |
| 78 | - } | |
| 79 | - | |
| 80 | - @Override | |
| 81 | 76 | public PageResult<JobLogDO> getJobLogPage(JobLogPageReqVO pageReqVO) { |
| 82 | 77 | return jobLogMapper.selectPage(pageReqVO); |
| 83 | 78 | } |
| 84 | 79 | |
| 85 | - @Override | |
| 86 | - public List<JobLogDO> getJobLogList(JobLogExportReqVO exportReqVO) { | |
| 87 | - return jobLogMapper.selectList(exportReqVO); | |
| 88 | - } | |
| 89 | - | |
| 90 | 80 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobService.java
| 1 | 1 | package cn.iocoder.yudao.module.infra.service.job; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobCreateReqVO; | |
| 5 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobExportReqVO; | |
| 6 | 4 | import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobPageReqVO; |
| 7 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobUpdateReqVO; | |
| 5 | +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobSaveReqVO; | |
| 8 | 6 | import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobDO; |
| 9 | 7 | import org.quartz.SchedulerException; |
| 10 | 8 | |
| ... | ... | @@ -25,14 +23,14 @@ public interface JobService { |
| 25 | 23 | * @param createReqVO 创建信息 |
| 26 | 24 | * @return 编号 |
| 27 | 25 | */ |
| 28 | - Long createJob(@Valid JobCreateReqVO createReqVO) throws SchedulerException; | |
| 26 | + Long createJob(@Valid JobSaveReqVO createReqVO) throws SchedulerException; | |
| 29 | 27 | |
| 30 | 28 | /** |
| 31 | 29 | * 更新定时任务 |
| 32 | 30 | * |
| 33 | 31 | * @param updateReqVO 更新信息 |
| 34 | 32 | */ |
| 35 | - void updateJob(@Valid JobUpdateReqVO updateReqVO) throws SchedulerException; | |
| 33 | + void updateJob(@Valid JobSaveReqVO updateReqVO) throws SchedulerException; | |
| 36 | 34 | |
| 37 | 35 | /** |
| 38 | 36 | * 更新定时任务的状态 |
| ... | ... | @@ -80,12 +78,4 @@ public interface JobService { |
| 80 | 78 | */ |
| 81 | 79 | PageResult<JobDO> getJobPage(JobPageReqVO pageReqVO); |
| 82 | 80 | |
| 83 | - /** | |
| 84 | - * 获得定时任务列表, 用于 Excel 导出 | |
| 85 | - * | |
| 86 | - * @param exportReqVO 查询条件 | |
| 87 | - * @return 定时任务分页 | |
| 88 | - */ | |
| 89 | - List<JobDO> getJobList(JobExportReqVO exportReqVO); | |
| 90 | - | |
| 91 | 81 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobServiceImpl.java
| 1 | 1 | package cn.iocoder.yudao.module.infra.service.job; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | |
| 4 | 5 | import cn.iocoder.yudao.framework.quartz.core.scheduler.SchedulerManager; |
| 5 | 6 | import cn.iocoder.yudao.framework.quartz.core.util.CronUtils; |
| 6 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobCreateReqVO; | |
| 7 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobExportReqVO; | |
| 8 | 7 | import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobPageReqVO; |
| 9 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobUpdateReqVO; | |
| 10 | -import cn.iocoder.yudao.module.infra.convert.job.JobConvert; | |
| 8 | +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobSaveReqVO; | |
| 11 | 9 | import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobDO; |
| 12 | 10 | import cn.iocoder.yudao.module.infra.dal.mysql.job.JobMapper; |
| 13 | 11 | import cn.iocoder.yudao.module.infra.enums.job.JobStatusEnum; |
| ... | ... | @@ -21,8 +19,8 @@ import java.util.Collection; |
| 21 | 19 | import java.util.List; |
| 22 | 20 | |
| 23 | 21 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 24 | -import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*; | |
| 25 | 22 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.containsAny; |
| 23 | +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*; | |
| 26 | 24 | |
| 27 | 25 | /** |
| 28 | 26 | * 定时任务 Service 实现类 |
| ... | ... | @@ -41,14 +39,14 @@ public class JobServiceImpl implements JobService { |
| 41 | 39 | |
| 42 | 40 | @Override |
| 43 | 41 | @Transactional(rollbackFor = Exception.class) |
| 44 | - public Long createJob(JobCreateReqVO createReqVO) throws SchedulerException { | |
| 42 | + public Long createJob(JobSaveReqVO createReqVO) throws SchedulerException { | |
| 45 | 43 | validateCronExpression(createReqVO.getCronExpression()); |
| 46 | 44 | // 校验唯一性 |
| 47 | 45 | if (jobMapper.selectByHandlerName(createReqVO.getHandlerName()) != null) { |
| 48 | 46 | throw exception(JOB_HANDLER_EXISTS); |
| 49 | 47 | } |
| 50 | 48 | // 插入 |
| 51 | - JobDO job = JobConvert.INSTANCE.convert(createReqVO); | |
| 49 | + JobDO job = BeanUtils.toBean(createReqVO, JobDO.class); | |
| 52 | 50 | job.setStatus(JobStatusEnum.INIT.getStatus()); |
| 53 | 51 | fillJobMonitorTimeoutEmpty(job); |
| 54 | 52 | jobMapper.insert(job); |
| ... | ... | @@ -66,7 +64,7 @@ public class JobServiceImpl implements JobService { |
| 66 | 64 | |
| 67 | 65 | @Override |
| 68 | 66 | @Transactional(rollbackFor = Exception.class) |
| 69 | - public void updateJob(JobUpdateReqVO updateReqVO) throws SchedulerException { | |
| 67 | + public void updateJob(JobSaveReqVO updateReqVO) throws SchedulerException { | |
| 70 | 68 | validateCronExpression(updateReqVO.getCronExpression()); |
| 71 | 69 | // 校验存在 |
| 72 | 70 | JobDO job = validateJobExists(updateReqVO.getId()); |
| ... | ... | @@ -75,7 +73,7 @@ public class JobServiceImpl implements JobService { |
| 75 | 73 | throw exception(JOB_UPDATE_ONLY_NORMAL_STATUS); |
| 76 | 74 | } |
| 77 | 75 | // 更新 |
| 78 | - JobDO updateObj = JobConvert.INSTANCE.convert(updateReqVO); | |
| 76 | + JobDO updateObj = BeanUtils.toBean(updateReqVO, JobDO.class); | |
| 79 | 77 | fillJobMonitorTimeoutEmpty(updateObj); |
| 80 | 78 | jobMapper.updateById(updateObj); |
| 81 | 79 | |
| ... | ... | @@ -159,11 +157,6 @@ public class JobServiceImpl implements JobService { |
| 159 | 157 | return jobMapper.selectPage(pageReqVO); |
| 160 | 158 | } |
| 161 | 159 | |
| 162 | - @Override | |
| 163 | - public List<JobDO> getJobList(JobExportReqVO exportReqVO) { | |
| 164 | - return jobMapper.selectList(exportReqVO); | |
| 165 | - } | |
| 166 | - | |
| 167 | 160 | private static void fillJobMonitorTimeoutEmpty(JobDO job) { |
| 168 | 161 | if (job.getMonitorTimeout() == null) { |
| 169 | 162 | job.setMonitorTimeout(0); | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/job/JobLogServiceImplTest.java
| ... | ... | @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.infra.service.job; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | 4 | import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; |
| 5 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogExportReqVO; | |
| 6 | 5 | import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogPageReqVO; |
| 7 | 6 | import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobLogDO; |
| 8 | 7 | import cn.iocoder.yudao.module.infra.dal.mysql.job.JobLogMapper; |
| ... | ... | @@ -12,14 +11,11 @@ import org.springframework.context.annotation.Import; |
| 12 | 11 | |
| 13 | 12 | import javax.annotation.Resource; |
| 14 | 13 | import java.time.LocalDateTime; |
| 15 | -import java.util.Collection; | |
| 16 | -import java.util.List; | |
| 17 | 14 | |
| 18 | 15 | import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildTime; |
| 19 | 16 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 20 | 17 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 21 | 18 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; |
| 22 | -import static java.util.Collections.singleton; | |
| 23 | 19 | import static org.junit.jupiter.api.Assertions.assertEquals; |
| 24 | 20 | import static org.junit.jupiter.api.Assertions.assertNotNull; |
| 25 | 21 | |
| ... | ... | @@ -111,23 +107,6 @@ public class JobLogServiceImplTest extends BaseDbUnitTest { |
| 111 | 107 | } |
| 112 | 108 | |
| 113 | 109 | @Test |
| 114 | - public void testGetJobLogList() { | |
| 115 | - // mock 数据 | |
| 116 | - JobLogDO dbJobLog = randomPojo(JobLogDO.class, o -> o.setExecuteIndex(1)); | |
| 117 | - jobLogMapper.insert(dbJobLog); | |
| 118 | - // 测试 handlerName 不匹配 | |
| 119 | - jobLogMapper.insert(cloneIgnoreId(dbJobLog, o -> {})); | |
| 120 | - // 准备参数 | |
| 121 | - Collection<Long> ids = singleton(dbJobLog.getId()); | |
| 122 | - | |
| 123 | - // 调用 | |
| 124 | - List<JobLogDO> list = jobLogService.getJobLogList(ids); | |
| 125 | - // 断言 | |
| 126 | - assertEquals(1, list.size()); | |
| 127 | - assertPojoEquals(dbJobLog, list.get(0)); | |
| 128 | - } | |
| 129 | - | |
| 130 | - @Test | |
| 131 | 110 | public void testGetJobPage() { |
| 132 | 111 | // mock 数据 |
| 133 | 112 | JobLogDO dbJobLog = randomPojo(JobLogDO.class, o -> { |
| ... | ... | @@ -164,40 +143,4 @@ public class JobLogServiceImplTest extends BaseDbUnitTest { |
| 164 | 143 | assertPojoEquals(dbJobLog, pageResult.getList().get(0)); |
| 165 | 144 | } |
| 166 | 145 | |
| 167 | - @Test | |
| 168 | - public void testGetJobList_export() { | |
| 169 | - // mock 数据 | |
| 170 | - JobLogDO dbJobLog = randomPojo(JobLogDO.class, o -> { | |
| 171 | - o.setExecuteIndex(1); | |
| 172 | - o.setHandlerName("handlerName 单元测试"); | |
| 173 | - o.setStatus(JobLogStatusEnum.SUCCESS.getStatus()); | |
| 174 | - o.setBeginTime(buildTime(2021, 1, 8)); | |
| 175 | - o.setEndTime(buildTime(2021, 1, 8)); | |
| 176 | - }); | |
| 177 | - jobLogMapper.insert(dbJobLog); | |
| 178 | - // 测试 jobId 不匹配 | |
| 179 | - jobLogMapper.insert(cloneIgnoreId(dbJobLog, o -> o.setJobId(randomLongId()))); | |
| 180 | - // 测试 handlerName 不匹配 | |
| 181 | - jobLogMapper.insert(cloneIgnoreId(dbJobLog, o -> o.setHandlerName(randomString()))); | |
| 182 | - // 测试 beginTime 不匹配 | |
| 183 | - jobLogMapper.insert(cloneIgnoreId(dbJobLog, o -> o.setBeginTime(buildTime(2021, 1, 7)))); | |
| 184 | - // 测试 endTime 不匹配 | |
| 185 | - jobLogMapper.insert(cloneIgnoreId(dbJobLog, o -> o.setEndTime(buildTime(2021, 1, 9)))); | |
| 186 | - // 测试 status 不匹配 | |
| 187 | - jobLogMapper.insert(cloneIgnoreId(dbJobLog, o -> o.setStatus(JobLogStatusEnum.FAILURE.getStatus()))); | |
| 188 | - // 准备参数 | |
| 189 | - JobLogExportReqVO reqVo = new JobLogExportReqVO(); | |
| 190 | - reqVo.setJobId(dbJobLog.getJobId()); | |
| 191 | - reqVo.setHandlerName("单元"); | |
| 192 | - reqVo.setBeginTime(dbJobLog.getBeginTime()); | |
| 193 | - reqVo.setEndTime(dbJobLog.getEndTime()); | |
| 194 | - reqVo.setStatus(JobLogStatusEnum.SUCCESS.getStatus()); | |
| 195 | - | |
| 196 | - // 调用 | |
| 197 | - List<JobLogDO> list = jobLogService.getJobLogList(reqVo); | |
| 198 | - // 断言 | |
| 199 | - assertEquals(1, list.size()); | |
| 200 | - assertPojoEquals(dbJobLog, list.get(0)); | |
| 201 | - } | |
| 202 | - | |
| 203 | 146 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/job/JobServiceImplTest.java
| ... | ... | @@ -3,10 +3,8 @@ package cn.iocoder.yudao.module.infra.service.job; |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | 4 | import cn.iocoder.yudao.framework.quartz.core.scheduler.SchedulerManager; |
| 5 | 5 | import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; |
| 6 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobCreateReqVO; | |
| 7 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobExportReqVO; | |
| 8 | 6 | import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobPageReqVO; |
| 9 | -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobUpdateReqVO; | |
| 7 | +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobSaveReqVO; | |
| 10 | 8 | import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobDO; |
| 11 | 9 | import cn.iocoder.yudao.module.infra.dal.mysql.job.JobMapper; |
| 12 | 10 | import cn.iocoder.yudao.module.infra.enums.job.JobStatusEnum; |
| ... | ... | @@ -16,17 +14,13 @@ import org.springframework.boot.test.mock.mockito.MockBean; |
| 16 | 14 | import org.springframework.context.annotation.Import; |
| 17 | 15 | |
| 18 | 16 | import javax.annotation.Resource; |
| 19 | -import java.util.Collection; | |
| 20 | -import java.util.List; | |
| 21 | 17 | |
| 22 | -import static cn.hutool.core.util.RandomUtil.randomEle; | |
| 23 | 18 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 24 | 19 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 25 | 20 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| 26 | 21 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; |
| 27 | 22 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString; |
| 28 | 23 | import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*; |
| 29 | -import static java.util.Collections.singletonList; | |
| 30 | 24 | import static org.junit.jupiter.api.Assertions.*; |
| 31 | 25 | import static org.mockito.ArgumentMatchers.eq; |
| 32 | 26 | import static org.mockito.Mockito.verify; |
| ... | ... | @@ -44,7 +38,7 @@ public class JobServiceImplTest extends BaseDbUnitTest { |
| 44 | 38 | @Test |
| 45 | 39 | public void testCreateJob_cronExpressionValid() { |
| 46 | 40 | // 准备参数。Cron 表达式为 String 类型,默认随机字符串。 |
| 47 | - JobCreateReqVO reqVO = randomPojo(JobCreateReqVO.class); | |
| 41 | + JobSaveReqVO reqVO = randomPojo(JobSaveReqVO.class); | |
| 48 | 42 | |
| 49 | 43 | // 调用,并断言异常 |
| 50 | 44 | assertServiceException(() -> jobService.createJob(reqVO), JOB_CRON_EXPRESSION_VALID); |
| ... | ... | @@ -53,7 +47,7 @@ public class JobServiceImplTest extends BaseDbUnitTest { |
| 53 | 47 | @Test |
| 54 | 48 | public void testCreateJob_jobHandlerExists() throws SchedulerException { |
| 55 | 49 | // 准备参数 指定 Cron 表达式 |
| 56 | - JobCreateReqVO reqVO = randomPojo(JobCreateReqVO.class, o -> o.setCronExpression("0 0/1 * * * ? *")); | |
| 50 | + JobSaveReqVO reqVO = randomPojo(JobSaveReqVO.class, o -> o.setCronExpression("0 0/1 * * * ? *")); | |
| 57 | 51 | |
| 58 | 52 | // 调用 |
| 59 | 53 | jobService.createJob(reqVO); |
| ... | ... | @@ -64,7 +58,8 @@ public class JobServiceImplTest extends BaseDbUnitTest { |
| 64 | 58 | @Test |
| 65 | 59 | public void testCreateJob_success() throws SchedulerException { |
| 66 | 60 | // 准备参数 指定 Cron 表达式 |
| 67 | - JobCreateReqVO reqVO = randomPojo(JobCreateReqVO.class, o -> o.setCronExpression("0 0/1 * * * ? *")); | |
| 61 | + JobSaveReqVO reqVO = randomPojo(JobSaveReqVO.class, o -> o.setCronExpression("0 0/1 * * * ? *")) | |
| 62 | + .setId(null); | |
| 68 | 63 | |
| 69 | 64 | // 调用 |
| 70 | 65 | Long jobId = jobService.createJob(reqVO); |
| ... | ... | @@ -72,7 +67,7 @@ public class JobServiceImplTest extends BaseDbUnitTest { |
| 72 | 67 | assertNotNull(jobId); |
| 73 | 68 | // 校验记录的属性是否正确 |
| 74 | 69 | JobDO job = jobMapper.selectById(jobId); |
| 75 | - assertPojoEquals(reqVO, job); | |
| 70 | + assertPojoEquals(reqVO, job, "id"); | |
| 76 | 71 | assertEquals(JobStatusEnum.NORMAL.getStatus(), job.getStatus()); |
| 77 | 72 | // 校验调用 |
| 78 | 73 | verify(schedulerManager).addJob(eq(job.getId()), eq(job.getHandlerName()), eq(job.getHandlerParam()), |
| ... | ... | @@ -82,7 +77,7 @@ public class JobServiceImplTest extends BaseDbUnitTest { |
| 82 | 77 | @Test |
| 83 | 78 | public void testUpdateJob_jobNotExists(){ |
| 84 | 79 | // 准备参数 |
| 85 | - JobUpdateReqVO reqVO = randomPojo(JobUpdateReqVO.class, o -> o.setCronExpression("0 0/1 * * * ? *")); | |
| 80 | + JobSaveReqVO reqVO = randomPojo(JobSaveReqVO.class, o -> o.setCronExpression("0 0/1 * * * ? *")); | |
| 86 | 81 | |
| 87 | 82 | // 调用,并断言异常 |
| 88 | 83 | assertServiceException(() -> jobService.updateJob(reqVO), JOB_NOT_EXISTS); |
| ... | ... | @@ -94,7 +89,7 @@ public class JobServiceImplTest extends BaseDbUnitTest { |
| 94 | 89 | JobDO job = randomPojo(JobDO.class, o -> o.setStatus(JobStatusEnum.INIT.getStatus())); |
| 95 | 90 | jobMapper.insert(job); |
| 96 | 91 | // 准备参数 |
| 97 | - JobUpdateReqVO updateReqVO = randomPojo(JobUpdateReqVO.class, o -> { | |
| 92 | + JobSaveReqVO updateReqVO = randomPojo(JobSaveReqVO.class, o -> { | |
| 98 | 93 | o.setId(job.getId()); |
| 99 | 94 | o.setCronExpression("0 0/1 * * * ? *"); |
| 100 | 95 | }); |
| ... | ... | @@ -110,7 +105,7 @@ public class JobServiceImplTest extends BaseDbUnitTest { |
| 110 | 105 | JobDO job = randomPojo(JobDO.class, o -> o.setStatus(JobStatusEnum.NORMAL.getStatus())); |
| 111 | 106 | jobMapper.insert(job); |
| 112 | 107 | // 准备参数 |
| 113 | - JobUpdateReqVO updateReqVO = randomPojo(JobUpdateReqVO.class, o -> { | |
| 108 | + JobSaveReqVO updateReqVO = randomPojo(JobSaveReqVO.class, o -> { | |
| 114 | 109 | o.setId(job.getId()); |
| 115 | 110 | o.setCronExpression("0 0/1 * * * ? *"); |
| 116 | 111 | }); |
| ... | ... | @@ -201,25 +196,6 @@ public class JobServiceImplTest extends BaseDbUnitTest { |
| 201 | 196 | } |
| 202 | 197 | |
| 203 | 198 | @Test |
| 204 | - public void testGetJobList() { | |
| 205 | - // mock 数据 | |
| 206 | - JobDO dbJob = randomPojo(JobDO.class, o -> { | |
| 207 | - o.setStatus(randomEle(JobStatusEnum.values()).getStatus()); // 保证 status 的范围 | |
| 208 | - }); | |
| 209 | - jobMapper.insert(dbJob); | |
| 210 | - // 测试 id 不匹配 | |
| 211 | - jobMapper.insert(cloneIgnoreId(dbJob, o -> {})); | |
| 212 | - | |
| 213 | - // 准备参数 | |
| 214 | - Collection<Long> ids = singletonList(dbJob.getId()); | |
| 215 | - // 调用 | |
| 216 | - List<JobDO> list = jobService.getJobList(ids); | |
| 217 | - // 断言 | |
| 218 | - assertEquals(1, list.size()); | |
| 219 | - assertPojoEquals(dbJob, list.get(0)); | |
| 220 | - } | |
| 221 | - | |
| 222 | - @Test | |
| 223 | 199 | public void testGetJobPage() { |
| 224 | 200 | // mock 数据 |
| 225 | 201 | JobDO dbJob = randomPojo(JobDO.class, o -> { |
| ... | ... | @@ -249,34 +225,6 @@ public class JobServiceImplTest extends BaseDbUnitTest { |
| 249 | 225 | } |
| 250 | 226 | |
| 251 | 227 | @Test |
| 252 | - public void testGetJobList_export() { | |
| 253 | - // mock 数据 | |
| 254 | - JobDO dbJob = randomPojo(JobDO.class, o -> { | |
| 255 | - o.setName("定时任务测试"); | |
| 256 | - o.setHandlerName("handlerName 单元测试"); | |
| 257 | - o.setStatus(JobStatusEnum.INIT.getStatus()); | |
| 258 | - }); | |
| 259 | - jobMapper.insert(dbJob); | |
| 260 | - // 测试 name 不匹配 | |
| 261 | - jobMapper.insert(cloneIgnoreId(dbJob, o -> o.setName("土豆"))); | |
| 262 | - // 测试 status 不匹配 | |
| 263 | - jobMapper.insert(cloneIgnoreId(dbJob, o -> o.setStatus(JobStatusEnum.NORMAL.getStatus()))); | |
| 264 | - // 测试 handlerName 不匹配 | |
| 265 | - jobMapper.insert(cloneIgnoreId(dbJob, o -> o.setHandlerName(randomString()))); | |
| 266 | - // 准备参数 | |
| 267 | - JobExportReqVO reqVo = new JobExportReqVO(); | |
| 268 | - reqVo.setName("定时"); | |
| 269 | - reqVo.setStatus(JobStatusEnum.INIT.getStatus()); | |
| 270 | - reqVo.setHandlerName("单元"); | |
| 271 | - | |
| 272 | - // 调用 | |
| 273 | - List<JobDO> list = jobService.getJobList(reqVo); | |
| 274 | - // 断言 | |
| 275 | - assertEquals(1, list.size()); | |
| 276 | - assertPojoEquals(dbJob, list.get(0)); | |
| 277 | - } | |
| 278 | - | |
| 279 | - @Test | |
| 280 | 228 | public void testGetJob() { |
| 281 | 229 | // mock 数据 |
| 282 | 230 | JobDO dbJob = randomPojo(JobDO.class); | ... | ... |