feat: 2.6.0
1. 新增表达式检验逻辑
This commit is contained in:
parent
273a45ce7f
commit
20f056f22f
@ -1,5 +1,6 @@
|
||||
package com.aizuda.easy.retry.server.web.controller;
|
||||
|
||||
import cn.hutool.core.lang.Pair;
|
||||
import com.aizuda.easy.retry.server.common.dto.DecisionConfig;
|
||||
import com.aizuda.easy.retry.server.web.annotation.LoginRequired;
|
||||
import com.aizuda.easy.retry.server.web.annotation.RoleEnum;
|
||||
@ -74,15 +75,15 @@ public class WorkflowController {
|
||||
@GetMapping("/workflow-name/list")
|
||||
@LoginRequired(role = RoleEnum.USER)
|
||||
public List<WorkflowResponseVO> getWorkflowNameList(
|
||||
@RequestParam(value = "keywords", required = false) String keywords,
|
||||
@RequestParam(value = "workflowId", required = false) Long workflowId) {
|
||||
@RequestParam(value = "keywords", required = false) String keywords,
|
||||
@RequestParam(value = "workflowId", required = false) Long workflowId) {
|
||||
return workflowService.getWorkflowNameList(keywords, workflowId);
|
||||
}
|
||||
|
||||
@PostMapping("/check-node-expression")
|
||||
@LoginRequired(role = RoleEnum.ADMIN)
|
||||
public void checkNodeExpression(@RequestBody DecisionConfig decisionConfig) {
|
||||
workflowService.checkNodeExpression(decisionConfig);
|
||||
public Pair<Integer, String> checkNodeExpression(@RequestBody DecisionConfig decisionConfig) {
|
||||
return workflowService.checkNodeExpression(decisionConfig);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.aizuda.easy.retry.server.web.service;
|
||||
|
||||
import cn.hutool.core.lang.Pair;
|
||||
import com.aizuda.easy.retry.server.common.dto.DecisionConfig;
|
||||
import com.aizuda.easy.retry.server.web.model.base.PageResult;
|
||||
import com.aizuda.easy.retry.server.web.model.request.WorkflowQueryVO;
|
||||
@ -33,5 +34,5 @@ public interface WorkflowService {
|
||||
|
||||
List<WorkflowResponseVO> getWorkflowNameList(String keywords, Long workflowId);
|
||||
|
||||
void checkNodeExpression(DecisionConfig decisionConfig);
|
||||
Pair<Integer, String> checkNodeExpression(DecisionConfig decisionConfig);
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.aizuda.easy.retry.server.web.service.impl;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.lang.Pair;
|
||||
import cn.hutool.core.util.HashUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.aizuda.easy.retry.common.core.constant.SystemConstants;
|
||||
@ -8,6 +9,7 @@ import com.aizuda.easy.retry.common.core.enums.StatusEnum;
|
||||
import com.aizuda.easy.retry.common.core.expression.ExpressionEngine;
|
||||
import com.aizuda.easy.retry.common.core.expression.ExpressionFactory;
|
||||
import com.aizuda.easy.retry.common.core.util.JsonUtil;
|
||||
import com.aizuda.easy.retry.common.log.EasyRetryLog;
|
||||
import com.aizuda.easy.retry.server.common.WaitStrategy;
|
||||
import com.aizuda.easy.retry.server.common.config.SystemProperties;
|
||||
import com.aizuda.easy.retry.server.common.dto.DecisionConfig;
|
||||
@ -326,12 +328,19 @@ public class WorkflowServiceImpl implements WorkflowService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkNodeExpression(DecisionConfig decisionConfig) {
|
||||
ExpressionEngine realExpressionEngine = ExpressionTypeEnum.valueOf(decisionConfig.getExpressionType());
|
||||
Assert.notNull(realExpressionEngine, () -> new EasyRetryServerException("表达式引擎不存在"));
|
||||
ExpressionInvocationHandler invocationHandler = new ExpressionInvocationHandler(realExpressionEngine);
|
||||
ExpressionEngine expressionEngine = ExpressionFactory.getExpressionEngine(invocationHandler);
|
||||
expressionEngine.eval(decisionConfig.getNodeExpression(), StrUtil.EMPTY);
|
||||
public Pair<Integer, String> checkNodeExpression(DecisionConfig decisionConfig) {
|
||||
try {
|
||||
ExpressionEngine realExpressionEngine = ExpressionTypeEnum.valueOf(decisionConfig.getExpressionType());
|
||||
Assert.notNull(realExpressionEngine, () -> new EasyRetryServerException("表达式引擎不存在"));
|
||||
ExpressionInvocationHandler invocationHandler = new ExpressionInvocationHandler(realExpressionEngine);
|
||||
ExpressionEngine expressionEngine = ExpressionFactory.getExpressionEngine(invocationHandler);
|
||||
expressionEngine.eval(decisionConfig.getNodeExpression(), StrUtil.EMPTY);
|
||||
} catch (Exception e) {
|
||||
EasyRetryLog.LOCAL.error("表达式异常. [{}]", decisionConfig.getNodeExpression(), e);
|
||||
return Pair.of(StatusEnum.NO.getStatus(), e.getMessage());
|
||||
}
|
||||
|
||||
return Pair.of(StatusEnum.YES.getStatus(), StrUtil.EMPTY);
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user