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

285 lines
6.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🚀 第一阶段:核心支付流程实施方案
**实施日期**: 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` 了解详细的数据库设计方案