6.0 KiB
6.0 KiB
🚀 第一阶段:核心支付流程实施方案
实施日期: 2026-01-23
实施目标: 打通支付闭环,确保业务可运转
预计工期: 1-2周
📋 实施范围
本阶段将实施以下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 # 实施完成后的总结报告
🔄 业务流程概览
订单支付流程
家长下单
↓
选择支付方式
├─ 钱包余额支付
├─ 次卡支付
├─ 套餐课时支付
├─ 微信支付
└─ 组合支付(钱包+微信)
↓
选择优惠券(可选)
↓
选择服务地址
↓
确认订单
↓
支付成功
↓
订单状态:待派单
订单完成后结算流程
订单完成
↓
自动结算
├─ 扣减次卡/套餐次数
├─ 计算陪伴员收益
├─ 计算管理师提成
└─ 更新钱包余额
↓
生成结算记录
↓
发送通知
📐 数据库表关系
核心表
-
order - 订单表
- 关联 user_address (服务地址)
- 关联 user_coupon (优惠券)
- 关联 time_card (次卡)
- 关联 package (套餐)
-
wallet_transaction - 钱包交易记录
- 关联 order (订单)
- 关联 user (用户)
-
teacher_salary - 陪伴员收益
- 关联 order (订单)
- 关联 teacher (陪伴员)
-
manager_commission - 管理师提成(需创建)
- 关联 order (订单)
- 关联 manager (管理师)
🔑 关键技术点
1. 支付方式优先级
优惠券折扣 → 次卡/套餐 → 钱包余额 → 微信支付
2. 金额计算逻辑
// 订单金额计算
原价 = 服务单价 × 服务时长
优惠券折扣 = 原价 × 优惠券折扣率
实付金额 = 原价 - 优惠券折扣
3. 资金结算逻辑
// 陪伴员收益计算
陪伴员收益 = 实付金额 × 陪伴员分成比例
// 管理师提成计算
管理师提成 = 实付金额 × 管理师提成比例
// 平台收益
平台收益 = 实付金额 - 陪伴员收益 - 管理师提成
4. 事务处理
所有支付和结算操作必须在事务中完成,确保数据一致性:
@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 了解详细的数据库设计方案