第8节:抽奖规则树模型结构设计
这节课主要学习了规则树模型设计,核心是把"抽奖中/后"的规则组织成一棵决策树
-
新增的数据模型
RuleTreeVO:整棵树(含根节点 ID + 所有节点的 Map)RuleTreeNodeVO:树的节点(一个规则,如 rule_lock),含它引出的连线列表RuleTreeNodeLineVO:节点间的连线(决定"这个结果该走去哪个下一节点"),含RuleLimitTypeVO(比较类型 EQUAL/GT…)和限定值
树 = 节点(判断) + 连线(走向)。
-
角色 职责 对应代码 工厂 DefaultTreeFactory制造引擎:把规则树 RuleTreeVO传入,new出一个引擎openLogicTree(ruleTreeVO)→return new DecisionTreeEngine(...)引擎 DecisionTreeEngine执行决策:从根节点开始,逐节点跑逻辑、按结果走连线,直到终点返回奖品 process(userId, strategyId, awardId)
-
结点的运转逻辑
- 节点都实现
ILogicTreeNode接口的logic(),返回TreeActionEntity(含"检查结果 code" + “奖品数据”)。本节新增 3 个节点:RuleLockLogicTreeNode(次数锁)、RuleLuckAwardLogicTreeNode(幸运奖兜底)、RuleStockLogicTreeNode(库存) - 引擎 process 的循环逻辑:
从根节点开始
while(当前节点不为空):
执行 node.logic() → 得到检查结果 code + 奖品数据
根据 code 匹配连线(nextNode) → 找到下一个节点
返回最终奖品数据

浙公网安备 33010602011771号