Solon v3.0.9

场景1:评分规则

</> markdown

1、链配置示例

效果与 drools 类似

# demo.chain.yml
id: "r1"
title: "评分规则"
nodes:
  - { type: "start"}
  - { when: "order.getAmount() >= 100", task: "order.setScore(0);"}
  - { when: "order.getAmount() > 100 && order.getAmount() <= 500", task: "order.setScore(100);"}
  - { when: "order.getAmount() > 500 && order.getAmount() <= 1000", task: "order.setScore(500);"}
  - { type: "end"}

规则模式运行时,可以使用简化模式:

  • id 不配置时,会自动生成,并按顺序自动建立链接关系
  • when 条件,表示当前执行任务的运行条件

2、链应用示例

@Component
public class DemoCom {
    @Inject 
    FlowEngine flowEngine;
    
    //评分
    public int score(Order order) {
        //执行
        flowEngine.eval("r1", new ChainContext().put("order", order));
        
        //获取评分结果
        return order.getScore();
    }
}