zhibo/Zhibo/礼物打赏模块部署清单.md

267 lines
6.9 KiB
Markdown
Raw 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.

# 礼物打赏模块部署清单
## ✅ 部署前检查
### 1. 数据库表检查
```sql
-- 执行以下SQL检查表是否存在
SHOW TABLES LIKE 'eb_gift';
SHOW TABLES LIKE 'eb_gift_reward_record';
SHOW TABLES LIKE 'eb_gift_detail';
SHOW TABLES LIKE 'eb_gift_quantity';
```
**预期结果**应该看到4个表
### 2. 测试数据准备
```bash
# 执行测试数据脚本
mysql -u root -p your_database < zhibo-h/sql/gift_test_data.sql
```
### 3. 代码文件检查
确认以下文件已创建:
**Model层4个**
- [x] `crmeb-common/src/main/java/com/zbkj/common/model/gift/Gift.java`
- [x] `crmeb-common/src/main/java/com/zbkj/common/model/gift/GiftRecord.java`
- [x] `crmeb-common/src/main/java/com/zbkj/common/model/gift/GiftDetail.java`
- [x] `crmeb-common/src/main/java/com/zbkj/common/model/gift/RechargeOption.java`
**Dao层4个**
- [x] `crmeb-service/src/main/java/com/zbkj/service/dao/GiftDao.java`
- [x] `crmeb-service/src/main/java/com/zbkj/service/dao/GiftRecordDao.java`
- [x] `crmeb-service/src/main/java/com/zbkj/service/dao/GiftDetailDao.java`
- [x] `crmeb-service/src/main/java/com/zbkj/service/dao/RechargeOptionDao.java`
**Service层6个**
- [x] `crmeb-service/src/main/java/com/zbkj/service/service/GiftService.java`
- [x] `crmeb-service/src/main/java/com/zbkj/service/service/GiftRecordService.java`
- [x] `crmeb-service/src/main/java/com/zbkj/service/service/RechargeOptionService.java`
- [x] `crmeb-service/src/main/java/com/zbkj/service/service/impl/GiftServiceImpl.java`
- [x] `crmeb-service/src/main/java/com/zbkj/service/service/impl/GiftRecordServiceImpl.java`
- [x] `crmeb-service/src/main/java/com/zbkj/service/service/impl/RechargeOptionServiceImpl.java`
**Controller层1个**
- [x] `crmeb-front/src/main/java/com/zbkj/front/controller/GiftController.java`
**Request/Response7个**
- [x] `crmeb-front/src/main/java/com/zbkj/front/request/SendGiftRequest.java`
- [x] `crmeb-front/src/main/java/com/zbkj/front/request/CreateRechargeRequest.java`
- [x] `crmeb-front/src/main/java/com/zbkj/front/response/GiftResponse.java`
- [x] `crmeb-front/src/main/java/com/zbkj/front/response/SendGiftResponse.java`
- [x] `crmeb-front/src/main/java/com/zbkj/front/response/UserBalanceResponse.java`
- [x] `crmeb-front/src/main/java/com/zbkj/front/response/RechargeOptionResponse.java`
- [x] `crmeb-front/src/main/java/com/zbkj/front/response/CreateRechargeResponse.java`
## 🚀 部署步骤
### 步骤1编译项目
```bash
cd zhibo-h
mvn clean compile -DskipTests
```
或使用脚本:
```bash
# Windows
compile_check.bat
```
**预期结果**:编译成功,无错误
### 步骤2打包项目
```bash
mvn clean package -DskipTests
```
**预期结果**:在 `crmeb-admin/target/` 目录下生成jar包
### 步骤3启动服务
```bash
# 方式1使用Maven
cd crmeb-admin
mvn spring-boot:run
# 方式2使用jar包
cd crmeb-admin/target
java -jar crmeb-admin-0.0.1-SNAPSHOT.jar
```
**预期结果**服务启动成功监听8081端口
### 步骤4验证服务
```bash
# 检查服务是否启动
curl http://localhost:8081/api/front/gift/list
```
**预期结果**返回JSON格式的礼物列表
## 🧪 功能测试
### 测试1获取礼物列表
```bash
curl http://localhost:8081/api/front/gift/list
```
**预期结果**
```json
{
"code": 200,
"message": "success",
"data": [...]
}
```
### 测试2获取充值选项
```bash
curl http://localhost:8081/api/front/gift/recharge/options
```
**预期结果**:返回充值选项列表
### 测试3获取用户余额需要登录
```bash
curl -H "Authorization: Bearer YOUR_TOKEN" http://localhost:8081/api/front/gift/balance
```
**预期结果**:返回用户余额
### 测试4赠送礼物需要登录
```bash
curl -X POST http://localhost:8081/api/front/gift/send \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"roomId": 1,
"streamerId": 2,
"giftId": 1,
"count": 1,
"sceneType": 1
}'
```
**预期结果**:返回赠送成功,余额减少
## 📊 数据验证
### 验证1检查礼物数据
```sql
SELECT * FROM eb_gift WHERE status = 1;
```
**预期结果**至少有5条礼物记录
### 验证2检查充值选项
```sql
SELECT * FROM eb_gift_quantity WHERE status = 1;
```
**预期结果**至少有6条充值选项
### 验证3检查打赏记录
```sql
SELECT * FROM eb_gift_reward_record ORDER BY reward_time DESC LIMIT 10;
```
**预期结果**:赠送礼物后应该有记录
### 验证4检查用户账单
```sql
SELECT * FROM eb_user_bill WHERE category = 'gift' ORDER BY create_time DESC LIMIT 10;
```
**预期结果**:赠送礼物后应该有两条记录(一条支出,一条收入)
## ⚠️ 常见问题
### 问题1编译失败
**原因**:依赖缺失或版本不兼容
**解决**
```bash
mvn clean install -DskipTests
```
### 问题2服务启动失败
**原因**:端口被占用或数据库连接失败
**解决**
1. 检查8081端口是否被占用
2. 检查 `application.yml` 中的数据库配置
### 问题3接口返回401
**原因**未登录或token无效
**解决**
1. 先调用登录接口获取token
2. 在请求头中添加 `Authorization: Bearer YOUR_TOKEN`
### 问题4余额不足
**原因**用户余额为0
**解决**
```sql
UPDATE eb_user SET now_money = 1000.00 WHERE uid = 1;
```
### 问题5找不到礼物
**原因**:礼物数据未插入或状态为禁用
**解决**
```sql
-- 检查礼物数据
SELECT * FROM eb_gift WHERE id = 1;
-- 启用礼物
UPDATE eb_gift SET status = 1 WHERE id = 1;
```
## 📝 部署后检查清单
- [ ] 服务启动成功
- [ ] 可以访问Swagger文档http://localhost:8081/doc.html
- [ ] 礼物列表接口正常返回
- [ ] 充值选项接口正常返回
- [ ] 用户余额接口正常返回(需要登录)
- [ ] 赠送礼物功能正常(需要登录)
- [ ] 数据库记录正确保存
- [ ] 用户余额正确扣除
- [ ] 主播收益正确增加
- [ ] 账单记录正确生成
## 🎯 性能优化建议
### 1. 数据库索引
```sql
-- 为常用查询字段添加索引
CREATE INDEX idx_gift_status ON eb_gift(status);
CREATE INDEX idx_gift_reward_giver ON eb_gift_reward_record(giver_id);
CREATE INDEX idx_gift_reward_receiver ON eb_gift_reward_record(receiver_id);
CREATE INDEX idx_gift_reward_time ON eb_gift_reward_record(reward_time);
```
### 2. Redis缓存
- 缓存礼物列表过期时间1小时
- 缓存充值选项过期时间1天
- 缓存用户余额过期时间5分钟
### 3. 并发控制
- 使用Redis分布式锁防止重复扣款
- 使用乐观锁更新用户余额
## 📞 技术支持
如遇到问题,请按以下顺序排查:
1. 检查服务日志
2. 检查数据库连接
3. 检查数据是否正确
4. 查看详细文档
---
**部署完成后,请在此打勾**:□
**部署人员**___________
**部署时间**___________
**备注**___________