# 🚀 第一阶段:核心支付流程实施方案 **实施日期**: 2026-01-23 **实施目标**: 打通支付闭环,确保业务可运转 **预计工期**: 1-2周 --- ## 📋 实施范围 本阶段将实施以下5个核心功能: 1. **钱包支付功能** - 订单支付时支持钱包余额 2. **次卡支付功能** - 订单支付时支持次卡 3. **套餐支付功能** - 订单支付时支持套餐课时 4. **优惠券使用功能** - 订单支付时支持优惠券 5. **地址关联功能** - 订单关联服务地址 --- ## 🎯 核心目标 ### 业务目标 - 家长可以使用多种支付方式下单 - 订单完成后自动结算陪伴员收益 - 管理师自动获得提成 - 陪伴员可以查看服务地址 ### 技术目标 - 完善订单支付流程 - 实现资金流转闭环 - 建立完整的数据关联 - 确保数据一致性 --- ## 📊 实施步骤 ### 步骤1: 数据库设计与扩展 - 扩展 `order` 表,添加支付相关字段 - 检查并完善相关表结构 - 创建必要的索引 ### 步骤2: 后端接口实现 - 实现订单支付接口 - 实现资金结算接口 - 实现地址关联接口 ### 步骤3: 前端页面实现 - 实现支付方式选择页面 - 实现优惠券选择页面 - 实现地址选择页面 ### 步骤4: 测试与验证 - 单元测试 - 集成测试 - 端到端测试 --- ## 🗂️ 文档结构 ``` docs/fixes/2026-01-23-核心支付流程实施/ ├── README.md # 总体方案(本文件) ├── 📋数据库设计.md # 数据库表结构设计 ├── 📋业务流程设计.md # 业务流程详细设计 ├── 🔧1-钱包支付功能实施.md # 钱包支付详细实施 ├── 🔧2-次卡支付功能实施.md # 次卡支付详细实施 ├── 🔧3-套餐支付功能实施.md # 套餐支付详细实施 ├── 🔧4-优惠券使用功能实施.md # 优惠券使用详细实施 ├── 🔧5-地址关联功能实施.md # 地址关联详细实施 ├── 🧪测试指南.md # 测试用例和测试方法 └── ✅实施完成报告.md # 实施完成后的总结报告 ``` --- ## 🔄 业务流程概览 ### 订单支付流程 ``` 家长下单 ↓ 选择支付方式 ├─ 钱包余额支付 ├─ 次卡支付 ├─ 套餐课时支付 ├─ 微信支付 └─ 组合支付(钱包+微信) ↓ 选择优惠券(可选) ↓ 选择服务地址 ↓ 确认订单 ↓ 支付成功 ↓ 订单状态:待派单 ``` ### 订单完成后结算流程 ``` 订单完成 ↓ 自动结算 ├─ 扣减次卡/套餐次数 ├─ 计算陪伴员收益 ├─ 计算管理师提成 └─ 更新钱包余额 ↓ 生成结算记录 ↓ 发送通知 ``` --- ## 📐 数据库表关系 ### 核心表 1. **order** - 订单表 - 关联 user_address (服务地址) - 关联 user_coupon (优惠券) - 关联 time_card (次卡) - 关联 package (套餐) 2. **wallet_transaction** - 钱包交易记录 - 关联 order (订单) - 关联 user (用户) 3. **teacher_salary** - 陪伴员收益 - 关联 order (订单) - 关联 teacher (陪伴员) 4. **manager_commission** - 管理师提成(需创建) - 关联 order (订单) - 关联 manager (管理师) --- ## 🔑 关键技术点 ### 1. 支付方式优先级 ``` 优惠券折扣 → 次卡/套餐 → 钱包余额 → 微信支付 ``` ### 2. 金额计算逻辑 ```java // 订单金额计算 原价 = 服务单价 × 服务时长 优惠券折扣 = 原价 × 优惠券折扣率 实付金额 = 原价 - 优惠券折扣 ``` ### 3. 资金结算逻辑 ```java // 陪伴员收益计算 陪伴员收益 = 实付金额 × 陪伴员分成比例 // 管理师提成计算 管理师提成 = 实付金额 × 管理师提成比例 // 平台收益 平台收益 = 实付金额 - 陪伴员收益 - 管理师提成 ``` ### 4. 事务处理 所有支付和结算操作必须在事务中完成,确保数据一致性: ```java @Transactional(rollbackFor = Exception.class) public void processPayment(Order order) { // 1. 扣减支付方式(钱包/次卡/套餐) // 2. 更新订单状态 // 3. 生成交易记录 // 4. 发送通知 } ``` --- ## ⚠️ 注意事项 ### 1. 数据一致性 - 所有支付操作必须使用事务 - 失败时必须回滚 - 记录详细的操作日志 ### 2. 并发控制 - 钱包余额扣减使用乐观锁 - 次卡/套餐次数扣减使用乐观锁 - 防止重复支付 ### 3. 安全性 - 支付金额必须在后端计算 - 前端传递的金额仅供显示 - 验证用户权限 ### 4. 用户体验 - 支付失败时给出明确提示 - 余额不足时提示充值 - 次卡/套餐用完时提示购买 --- ## 📅 实施计划 ### Week 1: 数据库和后端 **Day 1-2**: 数据库设计与扩展 - 设计表结构 - 编写 SQL 脚本 - 执行数据库变更 **Day 3-4**: 后端接口实现 - 实现支付接口 - 实现结算接口 - 单元测试 **Day 5**: 后端集成测试 - 测试支付流程 - 测试结算流程 - 修复 bug ### Week 2: 前端和测试 **Day 1-2**: 前端页面实现 - 支付方式选择页面 - 优惠券选择页面 - 地址选择页面 **Day 3-4**: 前后端联调 - 接口对接 - 流程测试 - 修复 bug **Day 5**: 端到端测试 - 完整流程测试 - 性能测试 - 用户验收测试 --- ## 🎯 成功标准 ### 功能完整性 - ✅ 支持5种支付方式 - ✅ 支持优惠券使用 - ✅ 支持地址选择 - ✅ 自动结算收益 ### 数据准确性 - ✅ 金额计算正确 - ✅ 余额扣减正确 - ✅ 次数扣减正确 - ✅ 收益计算正确 ### 用户体验 - ✅ 支付流程顺畅 - ✅ 错误提示清晰 - ✅ 响应速度快 - ✅ 界面友好 --- ## 📞 联系方式 如有问题,请联系: - 技术负责人:Kiro AI Assistant - 实施日期:2026-01-23 --- **下一步**: 查看 `📋数据库设计.md` 了解详细的数据库设计方案