feat(sj_1.3.0-beta1): 修复定时任务和工作流调用时的参数校验

This commit is contained in:
Srzou 2024-12-28 11:34:19 +08:00
parent cf97c194c3
commit a83a76e733
4 changed files with 20 additions and 4 deletions

View File

@ -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
*/

View File

@ -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;
/**

View File

@ -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;
/**

View File

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