当前位置: 首页 > 工具软件 > QLExpress > 使用案例 >

QLExpress规则引擎介绍

许琛
2023-12-01

规则引擎定义

根据数据来匹配对应的条件,并执行规则匹配后的动作系统。如果满足某些条件,就执行相关动作。

好处

可以帮助我们把多变的业务决策部分同其他业务逻辑隔离开,是的业务人员能够自行定制业务逻辑,无需开发人员介入。常用的有Drools,uRule,QLExpress,uniRule

QLExpress

java语言实现,不依赖任何外部脚本引擎解析

支持宏定义、支持扩展点、轻量级、高性能和可靠性

本质是脚本解释引擎,需要有个后台配合进行配置,成为规则引擎。

示例

圈选及优惠计算上, 引入规则引擎 QLExpress,满足复杂营销

仅仅需要抽象出配置元素即可使用

投放条件判断

String express = "如果 ((投放页面 是 'H5' 并且  人群 是 '新人') " +
                "或者 商品ID 包含 [1,2,3]  ) " +
                "则 {return '符合XX活动条件';} 否则 {return '不符合条件';}";
        DefaultContext<String, Object> context = new DefaultContext<String, Object>();
        context.put("投放页面", "H5");

        context.put("人群", "新人");

        context.put("消费门槛", 10);

        context.put("类目", "酒店");
        context.put("商家ID", 1);
        context.put("商品ID", 1);
        context.put("SKU", 123);

优惠金额判断

 String express = "如果 (价格 大于 300)  则 {返回 价格*0.8;}  " +
                "如果 (价格 大于 200)  则 {返回 价格*0.85;}  " +
                "如果 (价格 大于 100 ) 则 {返回 价格*0.9;} " +
                "否则 {返回 价格;}";
        DefaultContext<String, Object> context = new DefaultContext<String, Object>();
        context.put("价格", 150);
        Object r = runner.execute(express, context,
                null, false, false, null);
        System.out.println(r);


        context.put("价格", 100);

        System.out.println(runner.execute(express, context,
                null, false, false, null));
        context.put("价格", 50);

 类似资料: