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