第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) → 找到下一个节点
 返回最终奖品数据
posted @ 2026-07-22 10:00  超级无敌大帅比  阅读(1)  评论(0)    收藏  举报