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

267 lines
6.9 KiB
Markdown
Raw Permalink Normal View History

# 礼物打赏模块部署清单
## ✅ 部署前检查
### 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. 查看详细文档
---
**部署完成后,请在此打勾**:□
**部署人员**___________
**部署时间**___________
**备注**___________