peixue-dev/peidu/docs/fixes/2026-01-23-核心支付流程实施/README.md

6.0 KiB
Raw Blame History

🚀 第一阶段:核心支付流程实施方案

实施日期: 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. 金额计算逻辑

// 订单金额计算
原价 = 服务单价 × 服务时长
优惠券折扣 = 原价 × 优惠券折扣率
实付金额 = 原价 - 优惠券折扣

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 了解详细的数据库设计方案