定义一个业务订单的场景,根据订单类型,执行对应的业务操作。假设,订单类型为两种:普通类型、折扣类型。
普通类型订单:打印日志处理
折扣类型订单:执行折扣计算方法
下面介绍一下不引入mysql和引入mysql两种方式,首先先写入共同的部分。
- 创建测试文档
在本案例中,实现触发第一个适用规则,并忽略组中的其他规则,可以使用组合规则ActivationRuleGroup ,也可以给规则设置排序priority,因为DefaultRulesEngine根据规则的自然顺序(默认为优先级)应用规则,所以执行到适用规则,也不继续往下走了。
2. 运行结果展示
商品为普通商品时:
BizOrder order1=new BizOrder();
order1.setGoods(“商品1”);
order1.setAmount(BigDecimal.valueOf(200));
order1.setType(1);
order1.setDiscount(BigDecimal.valueOf(0.7));
商品为折扣商品时
BizOrder order2=new BizOrder();
order2.setGoods(“商品2”);
order2.setAmount(BigDecimal.valueOf(200));
order2.setType(2);
order2.setDiscount(BigDecimal.valueOf(0.7));
- 普通类型订单
- 折扣类型订单
- 接口处理
- 定义json文件,biz_order_rule.json
- 构建rules配置
- API逻辑处理