Browse Source

feat(rule): 添加表单规则引擎执行方法并更新控制器权限配置

- 新增executeAction方法支持通过JSON字符串和规则类型执行规则
- 新增executeAction方法支持直接传入规则对象执行
- 修改原有executeAction方法移除表达式构建逻辑优化参数传递
- 为syncFieldToHistory接口添加@NoAuthInterface注解移除权限验证
feature/2026-07-ccc-dev
chenchuchuan 2 weeks ago
parent
commit
152b8712df
  1. 1
      common/common-online/src/main/java/apelet/common/online/controller/OnlineFormController.java
  2. 22
      common/common-online/src/main/java/apelet/common/online/rule/FormRuleEngine.java

1
common/common-online/src/main/java/apelet/common/online/controller/OnlineFormController.java

@ -120,6 +120,7 @@ public class OnlineFormController { @@ -120,6 +120,7 @@ public class OnlineFormController {
* @param tableType 表类型0 附表 / 1 主表 / 2 单表不传则全部
*/
@GetMapping(value = "/syncFieldToHistory")
@NoAuthInterface
public ResponseResult<?> syncFieldToHistory(@RequestParam String fieldName,
@RequestParam String type,
@RequestParam(required = false) Integer length,

22
common/common-online/src/main/java/apelet/common/online/rule/FormRuleEngine.java

@ -62,12 +62,30 @@ public class FormRuleEngine { @@ -62,12 +62,30 @@ public class FormRuleEngine {
if (rule == null) {
return null;
}
return executeAction(rule, buildObjectValue(rule.getCondition().getExpression(), values));
}
public List<Object> executeAction(String ruleJson, ObjectValue values, RuleTypeEnum ruleType) {
if (StringUtils.isBlank(ruleJson)) {
return null;
}
FormRule rule = parser.parseSingle(JSONObject.parseObject(ruleJson), ruleType);
if (rule == null) {
return null;
}
return executeAction(rule, values);
}
public List<Object> executeAction(FormRule rule, ObjectValue values) {
if (rule == null) {
return null;
}
List<Object> result = new ArrayList<>();
executeRule(rule, null, buildObjectValue(rule.getCondition().getExpression(), values), null,
new OnlineEventPluginExecuteDto(), result);
executeRule(rule, null, values, null, new OnlineEventPluginExecuteDto(), result);
return result;
}
private void executeRule(FormRule rule, OnlineForm form, ObjectValue ov, String eventCode,
OnlineEventPluginExecuteDto dto, List<Object> result) {
if (!rule.isEnable()) {

Loading…
Cancel
Save