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