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);