zhibo/Zhibo/zhibo-h/礼物打赏模块README.md

203 lines
4.1 KiB
Markdown
Raw Permalink Normal View History

# 礼物打赏模块
## 📖 简介
礼物打赏模块是直播系统的核心功能之一,允许用户在直播间或私聊中向主播赠送虚拟礼物。本模块基于现有数据库表结构实现,完全兼容你的数据库设计。
## 🗂️ 数据库表
本模块使用以下4个数据库表
| 表名 | 说明 | 用途 |
|------|------|------|
| `eb_gift` | 礼物表 | 存储礼物的基本信息 |
| `eb_gift_reward_record` | 礼物打赏记录表 | 记录每次打赏的详细信息 |
| `eb_gift_detail` | 送礼物明细表 | 记录送礼的详细明细 |
| `eb_gift_quantity` | 礼物数量列表 | 充值选项配置 |
## 🚀 快速开始
### 1. 插入测试数据
```bash
# 在MySQL中执行
mysql -u root -p your_database < sql/gift_test_data.sql
```
### 2. 启动服务
```bash
cd crmeb-admin
mvn spring-boot:run
```
### 3. 测试接口
访问 Swagger 文档http://localhost:8081/doc.html
或使用测试脚本:
```bash
# Windows
test_gift_api.bat
# Linux/Mac
./test_gift_api.sh
```
## 📡 API接口
### 1. 获取礼物列表
```
GET /api/front/gift/list
```
### 2. 获取用户余额
```
GET /api/front/gift/balance
需要登录
```
### 3. 赠送礼物
```
POST /api/front/gift/send
需要登录
```
### 4. 获取充值选项
```
GET /api/front/gift/recharge/options
```
### 5. 创建充值订单
```
POST /api/front/gift/recharge/create
需要登录
```
## 📚 文档
- [开发说明](./礼物打赏模块开发说明.md) - 详细的技术文档
- [快速开始](./礼物打赏模块快速开始.md) - 部署和测试指南
- [实现总结](../礼物打赏模块实现总结.md) - 功能总结和统计
## 🔧 配置
### 数据库配置
确保 `application.yml` 中的数据库配置正确:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf-8
username: your_username
password: your_password
```
### 端口配置
默认端口8081
如需修改,在 `application.yml` 中配置:
```yaml
server:
port: 8081
```
## 🧪 测试
### 使用Postman
1. 导入 `礼物打赏API测试集合.postman_collection.json`
2. 设置环境变量:
- `base_url`: http://localhost:8081
- `token`: 你的登录token
3. 运行测试
### 使用curl
```bash
# 获取礼物列表
curl http://localhost:8081/api/front/gift/list
# 获取充值选项
curl http://localhost:8081/api/front/gift/recharge/options
```
## 📊 数据流程
### 礼物赠送流程
```
用户选择礼物
验证登录状态
验证礼物存在
计算总金额
检查余额
扣除用户余额
保存打赏记录 (eb_gift_reward_record)
保存用户账单 (eb_user_bill)
增加主播收益
保存主播账单 (eb_user_bill)
返回结果
```
## ⚠️ 注意事项
1. **充值功能**当前返回模拟数据需要集成真实支付SDK
2. **分成比例**当前主播收益100%,实际应按平台规则分成
3. **并发控制**高并发场景需要使用Redis锁
4. **WebSocket**:礼物赠送后应推送消息到直播间
## 🔐 安全建议
1. 所有接口都需要验证用户登录状态
2. 严格验证金额,防止篡改
3. 限制用户赠送礼物的频率
4. 使用数据库行锁或Redis锁防止超额扣款
5. 记录所有金额变动操作
## 📈 后续优化
- [ ] 集成支付SDK微信支付、支付宝
- [ ] 实现平台分成逻辑
- [ ] 添加WebSocket推送
- [ ] 实现礼物动画
- [ ] 添加礼物排行榜
- [ ] 实现连击功能
- [ ] 使用 eb_gift_detail 表记录详细信息
## 🐛 问题排查
### 接口返回401
- 检查是否传递了token
- 检查token是否有效
### 余额不足
- 查询用户余额:`SELECT now_money FROM eb_user WHERE uid = ?`
- 手动充值:`UPDATE eb_user SET now_money = 1000 WHERE uid = ?`
### 找不到礼物
- 检查礼物是否存在:`SELECT * FROM eb_gift WHERE id = ?`
- 检查礼物状态:`status = 1` 表示启用
## 📞 技术支持
如有问题,请查看详细文档或联系开发团队。
---
**版本**: v1.0
**状态**: ✅ 已完成
**最后更新**: 2024年