# 第13节:规则引擎量化人群参与活动
作者:小傅哥
博客:https://bugstack.cn (opens new window)
沉淀、分享、成长,让自己和他人都能有所收获!
- 分支:211008_xfg_rule (opens new window)
- 描述:使用组合模式搭建用于量化人群的规则引擎,用于用户参与活动之前,通过规则引擎过滤性别、年龄、首单消费、消费金额、忠实用户等各类身份来量化出具体可参与的抽奖活动。通过这样的方式控制运营成本和精细化运营。
# 一、开发日志
- 增加规则引擎开发需要的相关的配置类表:rule_tree、rule_tree_node、rule_tree_node_line
- 运用组合模式搭建规则引擎领域服务,包括:logic 逻辑过滤器、engine 引擎执行器
- 修改 lottery-infrastructure 基础层中仓储实现类更为合适的的注解为
@Repository
包括: ActivityRepository、RuleRepository、StrategyRepository、UserTakeActivityRepository
# 二、库表设计
组合模式的特点就像是搭建出一棵二叉树,而库表中则需要把这样一颗二叉树存放进去,那么这里就需要包括:树根、树茎、子叶、果实。在具体的逻辑实现中则需要通过子叶判断走哪个树茎以及最终筛选出一个果实来。
rule_tree
CREATE TABLE `rule_tree` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`tree_name` varchar(64) DEFAULT NULL COMMENT '规则树Id',
`tree_desc` varchar(128) DEFAULT NULL COMMENT '规则树描述',
`tree_root_node_id` bigint(20) DEFAULT NULL COMMENT '规则树根ID',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10002 DEFAULT CHARSET=utf8;
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9