做棋牌网站抓到会怎么量刑,石家庄网站平台,视频高清线hdmi,亚马逊雨林探险作文前提#xff1a;环境搭建#xff0c;参考博文springboot整合drools规则引擎 示例入门-CSDN博客案例1#xff0c;商城系统消费赠送积分 100元以下, 不加分 100元-500元 加100分 500元-1000元 加500分 1000元 以上 加1000分订单pojo编写
package cn.beijing.model;import lom…前提环境搭建参考博文springboot整合drools规则引擎 示例入门-CSDN博客案例1商城系统消费赠送积分 100元以下, 不加分 100元-500元 加100分 500元-1000元 加500分 1000元 以上 加1000分订单pojo编写
package cn.beijing.model;import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
Data
Accessors(chain true)
public class Order {/*** 订单原价金额*/private int amout;/***下单人*/private String user;/***积分*/private int score;/*** 下单日期*/private Date bookingDate;
}规则drl文件编写
package rules
import cn.beijing.model.Orderrule zerono-loop true //防止陷入死循环lock-on-active true //用于确保规则仅执行一次防止因其他规则触发导致的重复执行salience 1 //指定优先级数值越大优先级越高不指定的情况下由上到下执行when$s : Order(amout 100)then$s.setScore(0);// update($s);
endrule add100no-loop truelock-on-active truesalience 1when$s : Order(amout 100 amout 500)then$s.setScore(100);// update($s);
endrule add500no-loop truelock-on-active truesalience 1when$s : Order(amout 500 amout 1000)then$s.setScore(500);// update($s);
endrule add1000no-loop truelock-on-active truesalience 1when$s : Order(amout 1000)then$s.setScore(1000);// update($s);
end案例2规则里比较等操作符使用
pojo文件
package cn.beijing.model;import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;Data
Accessors(chain true)
public class ComparisonEntity {/***名字集合*/private String names;/*** 字符串集合*/private ListString list;}规则drl文件
package rules
import cn.beijing.model.ComparisonEntity/*用于测试Drools提供的比较操作符
*///测试比较操作符contains
rule rule_comparison_containswhenComparisonEntity(names contains 张三)ComparisonEntity(list contains names)thenSystem.err.println(规则rule_comparison_contains触发-----包括张三);
end//测试比较操作符not contains
rule rule_comparison_notContainswhenComparisonEntity(names not contains 张三)ComparisonEntity(list not contains names)thenSystem.err.println(规则rule_comparison_notContains触发----不包括张三);
end//测试比较操作符memberOf
rule rule_comparison_memberOfwhenComparisonEntity(names memberOf list)thenSystem.err.println(规则rule_comparison_memberOf触发-----name在list里);
end//测试比较操作符not memberOf
rule rule_comparison_notMemberOfwhenComparisonEntity(names not memberOf list)thenSystem.err.println(规则rule_comparison_notMemberOf触发-------name不在list里);
end//测试比较操作符matches
rule rule_comparison_matcheswhenComparisonEntity(names matches 张.*)thenSystem.err.println(规则rule_comparison_matches触发------name匹配张.*);
end//测试比较操作符not matches
rule rule_comparison_notMatcheswhenComparisonEntity(names not matches 张.*)thenSystem.err.println(规则rule_comparison_notMatches触发------name--不----匹配张.*);
end案例3global全局变量使用
pojo文件
package cn.beijing.model;
import lombok.Data;// 业务模型类
Data
public class OrderRequest {private Integer amount;
}//------------------------------------package cn.beijing.model;
import lombok.Data;// 订单折扣类
Data
public class OrderDiscount {private Integer discount 0;
}规则drl文件
package rulesimport cn.beijing.model.OrderRequest;global cn.beijing.model.OrderDiscount orderDiscount;rule 规则111111111111111
when$order: OrderRequest(amount 20 || amount 50)
thenorderDiscount.setDiscount(orderDiscount.getDiscount() 10);System.err.println(orderDiscount.toString() orderDiscount.toString());System.err.println(触发规则: drools.getRule().getName());
end
调用代码
RequestMapping(global_test_1)public Object quyu_jianche_global_test_1(OrderRequest orderRequest){KieSession kieSession kieContainer.newKieSession(ksession);OrderDiscount orderDiscount new OrderDiscount();//设置全局变量kieSession.setGlobal(orderDiscount, orderDiscount);try {kieSession.insert(orderRequest);kieSession.fireAllRules();} finally {kieSession.dispose();}return orderDiscount;} 部分代码参考博文Drools基本介绍入门案例基本语法-CSDN博客