zhibo/虚拟货币余额系统说明.md

148 lines
3.5 KiB
Markdown
Raw Normal View History

# 虚拟货币余额系统说明
## 数据库表结构
### 1. eb_user表用户余额
- `virtual_balance` - DECIMAL(10,2) - 用户虚拟货币余额
### 2. eb_recharge_package充值套餐表
- 存储充值套餐配置
- 包含充值金额、获得虚拟币、赠送虚拟币等信息
### 3. eb_virtual_currency_recharge充值记录表
- 记录用户的充值订单
- 包含订单号、金额、支付状态等
### 4. eb_virtual_currency_transaction交易记录表
- 记录所有虚拟货币的收支明细
- 包含充值、消费、退款等类型
## 后端API接口
### 基础路径
```
/api/front/virtual-currency
```
### 接口列表
1. **获取用户余额**
- GET `/balance`
- 返回:`{ balance: number, userId: number }`
2. **获取充值套餐列表**
- GET `/recharge/packages`
- 返回:套餐列表(金额、虚拟币数量、赠送等)
3. **创建充值订单**
- POST `/recharge/create`
- 参数:`{ packageId: number, paymentMethod: string }`
- 返回:订单信息(订单号、金额等)
4. **模拟支付成功**(测试用)
- POST `/recharge/mock-pay`
- 参数:`{ orderNo: string }`
- 功能:直接完成支付,增加用户余额
5. **获取充值记录**
- GET `/recharge/records?page=1&limit=20`
- 返回:充值记录列表
6. **获取消费记录**
- GET `/transactions?page=1&limit=20`
- 返回:交易记录列表
## APP端实现
### 页面结构
1. **ProfileActivity个人中心**
- 显示"我的钱包"按钮
- 显示当前余额
2. **WalletActivity钱包页面**
- 显示虎牙币余额
- 提供充值入口
- 提供收支明细入口
3. **BalanceActivity余额详情**
- 显示详细余额
- 充值记录和消费记录Tab
4. **RechargeActivity充值页面**
- 显示充值套餐列表
- 选择支付方式(支付宝/微信)
- 确认充值
5. **TransactionHistoryActivity收支明细**
- 显示所有交易记录
### 数据流程
1. **查看余额**
```
用户打开钱包 → 调用 /balance 接口 → 显示余额
```
2. **充值流程**
```
选择套餐 → 选择支付方式 → 创建订单 → 模拟支付 → 余额增加
```
3. **余额更新**
```
充值成功 → 更新 eb_user.virtual_balance → 记录到 eb_virtual_currency_transaction
```
## 使用说明
### 测试充值功能
1. 登录APP
2. 进入"我的"页面
3. 点击"我的钱包"
4. 点击"充值"按钮
5. 选择充值套餐
6. 选择支付方式(支付宝/微信)
7. 点击"确认充值"
8. 系统自动模拟支付成功
9. 余额立即更新
### 查看余额
- 个人中心:显示简要余额
- 钱包页面:显示详细余额和虎牙币图标
- 余额详情:显示充值记录和消费记录
## 后续扩展
### 支付集成(待实现)
目前使用模拟支付,后续可以集成:
1. **支付宝支付**
- 集成支付宝SDK
- 在createRechargeOrder后跳转到支付宝
- 支付成功后回调更新余额
2. **微信支付**
- 集成微信支付SDK
- 在createRechargeOrder后跳转到微信
- 支付成功后回调更新余额
### 消费功能
余额可用于:
- 送礼物给主播
- 购买虚拟道具
- 开通会员服务
- 其他增值服务
## 注意事项
1. 所有金额使用DECIMAL(10,2)存储,避免精度问题
2. 每次余额变动都记录到交易表
3. 充值订单有状态管理(待支付、已支付、已取消)
4. 支付接口需要做好安全验证
5. 余额不足时要有提示