From a83a76e733f27fd8b4b5b674dc66d36d73eb0083 Mon Sep 17 00:00:00 2001 From: Srzou Date: Sat, 28 Dec 2024 11:34:19 +0800 Subject: [PATCH] =?UTF-8?q?feat(sj=5F1.3.0-beta1):=20=E4=BF=AE=E5=A4=8D?= =?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=E8=B0=83=E7=94=A8=E6=97=B6=E7=9A=84=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aizuda/snailjob/common/core/util/JsonUtil.java | 13 +++++++++++++ .../server/web/model/request/JobTriggerVO.java | 3 ++- .../server/web/model/request/WorkflowTriggerVO.java | 3 ++- .../web/service/impl/WorkflowServiceImpl.java | 5 +++-- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/util/JsonUtil.java b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/util/JsonUtil.java index fee8e070..1870417b 100644 --- a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/util/JsonUtil.java +++ b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/util/JsonUtil.java @@ -5,6 +5,7 @@ import com.aizuda.snailjob.common.core.exception.SnailJobCommonException; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.node.ObjectNode; @@ -175,6 +176,18 @@ public class JsonUtil { } } + /** + * 判断 Json 是否为空 + */ + public static boolean isEmptyJson(String json){ + try { + JsonNode jsonNode = JsonMapper.objectMapper.readTree(json); + return jsonNode.isEmpty(); + } catch (JsonProcessingException e) { + throw new SnailJobCommonException("Json校验异常!", e); + } + } + /** * 内部类,处理Json */ 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 index 0a44ec8a..1a58f629 100644 --- 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 @@ -1,13 +1,14 @@ package com.aizuda.snailjob.server.web.model.request; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; @Data public class JobTriggerVO { - @NotBlank(message = "jobId 不能为空") + @NotNull(message = "jobId 不能为空") private Long jobId; /** 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 index 7fa484a0..dbb4603b 100644 --- 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 @@ -1,13 +1,14 @@ package com.aizuda.snailjob.server.web.model.request; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; @Data public class WorkflowTriggerVO { - @NotBlank(message = "workflowId 不能为空") + @NotNull(message = "workflowId 不能为空") private Long workflowId; /** 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 ae645918..bc5dfa50 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 @@ -276,8 +276,9 @@ public class WorkflowServiceImpl implements WorkflowService { // 设置now表示立即执行 prepareDTO.setNextTriggerAt(DateUtils.toNowMilli()); prepareDTO.setTaskExecutorScene(JobTaskExecutorSceneEnum.MANUAL_WORKFLOW.getType()); - if (StrUtil.isNotBlank(triggerVO.getTmpWfContext())){ - prepareDTO.setWfContext(triggerVO.getTmpWfContext()); + String tmpWfContext = triggerVO.getTmpWfContext(); + if (StrUtil.isNotBlank(tmpWfContext) && !JsonUtil.isEmptyJson(tmpWfContext)){ + prepareDTO.setWfContext(tmpWfContext); } terminalWorkflowPrepareHandler.handler(prepareDTO);