文章目录1. 项目概述与架构设计1.1 业务场景描述1.2 完整业务流程1.3 分层技术架构1.4 三种组件定义方式对比2. 环境准备与项目初始化2.1 必需软件2.2 验证安装2.3 Maven 国内镜像加速2.4 项目骨架创建2.5 完整 pom.xml 依赖核心依赖速查表2.6 application.yml 配置3. 数据模型与枚举层设计3.1 PriceCalcReqVO.java —— 价格计算请求入口3.2 ProductPackVO.java —— 商品包模型3.3 PromotionInfoVO.java 与 PromotionPackVO.java3.4 PriceStepVO.java —— 价格步骤记录3.5 枚举层完整设计4. 上下文对象与核心组件实现4.1 PriceContext.java —— 组件间共享数据容器4.2 InitCmps.java —— 声明式组件(三合一)4.3 MemberDiscountCmp.java —— 会员折扣(类式组件)4.4 PromotionConvertCmp.java —— 促销数据转换4.5 FullCutCmp.java / FullDiscountCmp.java / RushBuyCmp.java —— 促销计算三剑客4.6 CouponCmp.java —— 优惠券抵扣4.7 PostageCmp.java / OverseaPostageCmp.java —— 国内/境外运费4.8 PostageCondCmp.java —— SWITCH 条件路由4.9 PriceResultCmp.java —— 最终价格汇总4.10 StepPrintCmp.java —— 步骤日志生成5. LiteFlow 规则链编排5.1 flow1.el.xml —— 主链规则与脚本组件5.2 flow2.el.xml —— 促销子链规则5.3 EL 规则语法速查6. Controller 与前端页面6.1 PriceExampleController.java —— 请求入口Controller 调用流程`execute2Resp()` 参数说明6.2 index.html —— 前端测试页面静态资源列表7. 组件间参数传递机制深度解析7.1 三阶段数据传递模型7.2 价格流水线模式详解7.3 数据读写对照表7.4 核心要领总结8. 运行测试与验证8.1 编译与启动8.2 浏览器测试8.3 curl 接口测试8.4 验证要点9. 完整项目结构总览分层架构一览10. 常见问题与排错指南10.1 Maven 依赖下载失败10.2 LiteFlow 规则文件找不到组件10.3 脚本组件编译失败10.4 端口被占用10.5 Hutool 类找不到11. 进阶扩展建议11.1 对接真实数据库11.2 规则持久化到数据库11.3 扩展新组件(三步法)11.4 单元测试接入11.5 LiteFlow 2.12.0+ 新特性12. 总结1. 项目概述与架构设计1.1 业务场景描述本项目模拟一个典型的电商订单价格计算引擎,完整覆盖以下业务链路:用户在 APP / 小程序 / PC 端下单一批商品 → 系统依次计算原始总价 → 会员折扣 → 满减/满折/抢购 → 优惠券抵扣 → 运费→ 输出最终价格和完整计算明细。核心设计思想:将价格计算的每一步拆解成独立的"组件(Component)",然后用 LiteFlow 的规则链(Chain)将它们串起来。修改计算逻辑只需改规则配置文件,无需改动 Java 代码。1.2 完整业务流程请求进入 ↓ ① checkCmp → 参数校验 ↓ ② slotInitCmp → 上下文初始化(把请求参数复制到 PriceContext) ↓ ③ priceStepInitCmp → 初始化价格步骤(计算原始总价) ↓ ④ promotionConvertCmp → 促销转换(把商品维度的优惠转为优惠维度的数据) ↓ ⑤ s_memberDiscountCmp → 会员折扣(脚本组件:打9折) ↓ ⑥ promotionChain(子链) → 满减 → 满折 → 抢购 ↓ ⑦ s_couponCmp → 优惠券抵扣(脚本组件:抵扣15元)