From 3129dcb0dc31fbc489206068d7f6765425bbffea Mon Sep 17 00:00:00 2001 From: Srzou Date: Fri, 27 Dec 2024 23:34:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:(1.3.0-beta1):=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E5=92=8C=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E6=B5=81=E6=89=8B=E5=8A=A8=E8=B0=83=E5=BA=A6=E5=85=A5=E5=8F=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/web/controller/JobController.java | 17 +++-------------- .../web/controller/WorkflowController.java | 16 +++------------- .../server/web/model/request/JobTriggerVO.java | 17 +++++++++++++++++ .../web/model/request/WorkflowTriggerVO.java | 17 +++++++++++++++++ .../snailjob/server/web/service/JobService.java | 7 ++----- .../server/web/service/WorkflowService.java | 7 ++----- .../server/web/service/impl/JobServiceImpl.java | 8 +++++--- .../web/service/impl/WorkflowServiceImpl.java | 8 ++++---- 8 files changed, 53 insertions(+), 44 deletions(-) create mode 100644 snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/JobTriggerVO.java create mode 100644 snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/WorkflowTriggerVO.java diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/JobController.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/JobController.java index 0206f35ad..425e3e026 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/JobController.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/JobController.java @@ -3,10 +3,7 @@ package com.aizuda.snailjob.server.web.controller; import com.aizuda.snailjob.common.core.annotation.OriginalControllerReturnValue; import com.aizuda.snailjob.server.web.annotation.LoginRequired; import com.aizuda.snailjob.server.web.model.base.PageResult; -import com.aizuda.snailjob.server.web.model.request.ExportJobVO; -import com.aizuda.snailjob.server.web.model.request.JobQueryVO; -import com.aizuda.snailjob.server.web.model.request.JobRequestVO; -import com.aizuda.snailjob.server.web.model.request.JobStatusUpdateRequestVO; +import com.aizuda.snailjob.server.web.model.request.*; import com.aizuda.snailjob.server.web.model.response.JobResponseVO; import com.aizuda.snailjob.server.web.service.JobService; import com.aizuda.snailjob.server.web.util.ExportUtils; @@ -96,16 +93,8 @@ public class JobController { @PostMapping("/trigger") @LoginRequired - public Boolean trigger(@RequestParam(value = "jobId") Long jobId, - @RequestParam(value = "tmpArgsStr", required = false) String tmpArgsStr) { - return jobService.trigger(jobId, tmpArgsStr); - } - - - @PostMapping("/trigger/{jobId}") - @LoginRequired - public Boolean trigger(@PathVariable("jobId") Long jobId) { - return jobService.trigger(jobId, null); + public Boolean trigger(@RequestBody @Validated JobTriggerVO jobTrigger) { + return jobService.trigger(jobTrigger); } @PostMapping(value = "/import", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/WorkflowController.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/WorkflowController.java index 566fedef7..08676f9dd 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/WorkflowController.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/WorkflowController.java @@ -5,10 +5,7 @@ import com.aizuda.snailjob.common.core.annotation.OriginalControllerReturnValue; import com.aizuda.snailjob.server.web.annotation.LoginRequired; import com.aizuda.snailjob.server.web.annotation.RoleEnum; import com.aizuda.snailjob.server.web.model.base.PageResult; -import com.aizuda.snailjob.server.web.model.request.CheckDecisionVO; -import com.aizuda.snailjob.server.web.model.request.ExportWorkflowVO; -import com.aizuda.snailjob.server.web.model.request.WorkflowQueryVO; -import com.aizuda.snailjob.server.web.model.request.WorkflowRequestVO; +import com.aizuda.snailjob.server.web.model.request.*; import com.aizuda.snailjob.server.web.model.response.WorkflowDetailResponseVO; import com.aizuda.snailjob.server.web.model.response.WorkflowResponseVO; import com.aizuda.snailjob.server.web.service.WorkflowService; @@ -74,17 +71,10 @@ public class WorkflowController { return workflowService.deleteByIds(ids); } - @PostMapping("/trigger/{id}") - @LoginRequired(role = RoleEnum.USER) - public Boolean trigger(@PathVariable("id") Long id) { - return workflowService.trigger(id,null); - } - @PostMapping("/trigger") @LoginRequired(role = RoleEnum.USER) - public Boolean trigger(@RequestParam(value = "id") Long id, - @RequestParam(value = "tmpWfContext", required = false) String tmpWfContext) { - return workflowService.trigger(id, tmpWfContext); + public Boolean trigger(@RequestBody @Validated WorkflowTriggerVO triggerVO) { + return workflowService.trigger(triggerVO); } @GetMapping("/workflow-name/list") diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/JobTriggerVO.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/JobTriggerVO.java new file mode 100644 index 000000000..0a44ec8ad --- /dev/null +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/JobTriggerVO.java @@ -0,0 +1,17 @@ +package com.aizuda.snailjob.server.web.model.request; + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + + +@Data +public class JobTriggerVO { + + @NotBlank(message = "jobId 不能为空") + private Long jobId; + + /** + * 临时任务参数 + */ + private String tmpArgsStr; +} diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/WorkflowTriggerVO.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/WorkflowTriggerVO.java new file mode 100644 index 000000000..7fa484a03 --- /dev/null +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/WorkflowTriggerVO.java @@ -0,0 +1,17 @@ +package com.aizuda.snailjob.server.web.model.request; + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + + +@Data +public class WorkflowTriggerVO { + + @NotBlank(message = "workflowId 不能为空") + private Long workflowId; + + /** + * 临时工作流上下文 + */ + private String tmpWfContext; +} diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/JobService.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/JobService.java index cbc1056b8..c95a6bb00 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/JobService.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/JobService.java @@ -1,10 +1,7 @@ package com.aizuda.snailjob.server.web.service; import com.aizuda.snailjob.server.web.model.base.PageResult; -import com.aizuda.snailjob.server.web.model.request.ExportJobVO; -import com.aizuda.snailjob.server.web.model.request.JobQueryVO; -import com.aizuda.snailjob.server.web.model.request.JobRequestVO; -import com.aizuda.snailjob.server.web.model.request.JobStatusUpdateRequestVO; +import com.aizuda.snailjob.server.web.model.request.*; import com.aizuda.snailjob.server.web.model.response.JobResponseVO; import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; @@ -32,7 +29,7 @@ public interface JobService { List getJobNameList(String keywords, Long jobId, String groupName); - boolean trigger(Long jobId, String tmpArgsStr); + boolean trigger(JobTriggerVO jobTrigger); List getJobList(String groupName); diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/WorkflowService.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/WorkflowService.java index b36078596..fd75934f4 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/WorkflowService.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/WorkflowService.java @@ -3,10 +3,7 @@ package com.aizuda.snailjob.server.web.service; import cn.hutool.core.lang.Pair; import com.aizuda.snailjob.server.common.dto.DecisionConfig; import com.aizuda.snailjob.server.web.model.base.PageResult; -import com.aizuda.snailjob.server.web.model.request.CheckDecisionVO; -import com.aizuda.snailjob.server.web.model.request.ExportWorkflowVO; -import com.aizuda.snailjob.server.web.model.request.WorkflowQueryVO; -import com.aizuda.snailjob.server.web.model.request.WorkflowRequestVO; +import com.aizuda.snailjob.server.web.model.request.*; import com.aizuda.snailjob.server.web.model.response.WorkflowDetailResponseVO; import com.aizuda.snailjob.server.web.model.response.WorkflowResponseVO; import jakarta.validation.Valid; @@ -33,7 +30,7 @@ public interface WorkflowService { Boolean updateStatus(Long id); - Boolean trigger(Long id, String tmpWfContext); + Boolean trigger(WorkflowTriggerVO triggerVO); List getWorkflowNameList(String keywords, Long workflowId, String groupName); diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/JobServiceImpl.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/JobServiceImpl.java index 9c6af0868..b42388da6 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/JobServiceImpl.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/JobServiceImpl.java @@ -239,8 +239,8 @@ public class JobServiceImpl implements JobService { @Override - public boolean trigger(Long jobId, String tmpArgsStr) { - Job job = jobMapper.selectById(jobId); + public boolean trigger(JobTriggerVO jobTrigger) { + Job job = jobMapper.selectById(jobTrigger.getJobId()); Assert.notNull(job, () -> new SnailJobServerException("job can not be null.")); long count = accessTemplate.getGroupConfigAccess().count(new LambdaQueryWrapper() @@ -255,7 +255,9 @@ public class JobServiceImpl implements JobService { // 设置now表示立即执行 jobTaskPrepare.setNextTriggerAt(DateUtils.toNowMilli()); jobTaskPrepare.setTaskExecutorScene(JobTaskExecutorSceneEnum.MANUAL_JOB.getType()); - jobTaskPrepare.setTmpArgsStr(tmpArgsStr); + if (StrUtil.isNotBlank(jobTrigger.getTmpArgsStr())){ + jobTaskPrepare.setTmpArgsStr(jobTrigger.getTmpArgsStr()); + } // 创建批次 terminalJobPrepareHandler.handle(jobTaskPrepare); diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/WorkflowServiceImpl.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/WorkflowServiceImpl.java index da713a741..ae645918e 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/WorkflowServiceImpl.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/WorkflowServiceImpl.java @@ -258,8 +258,8 @@ public class WorkflowServiceImpl implements WorkflowService { } @Override - public Boolean trigger(Long id, String tmpWfContext) { - Workflow workflow = workflowMapper.selectById(id); + public Boolean trigger(WorkflowTriggerVO triggerVO) { + Workflow workflow = workflowMapper.selectById(triggerVO.getWorkflowId()); Assert.notNull(workflow, () -> new SnailJobServerException("workflow can not be null.")); long count = accessTemplate.getGroupConfigAccess().count( @@ -276,8 +276,8 @@ public class WorkflowServiceImpl implements WorkflowService { // 设置now表示立即执行 prepareDTO.setNextTriggerAt(DateUtils.toNowMilli()); prepareDTO.setTaskExecutorScene(JobTaskExecutorSceneEnum.MANUAL_WORKFLOW.getType()); - if (Objects.nonNull(tmpWfContext)){ - prepareDTO.setWfContext(tmpWfContext); + if (StrUtil.isNotBlank(triggerVO.getTmpWfContext())){ + prepareDTO.setWfContext(triggerVO.getTmpWfContext()); } terminalWorkflowPrepareHandler.handler(prepareDTO);