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

6.9 KiB
Raw Permalink Blame History

礼物打赏模块部署清单

部署前检查

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.java
  • crmeb-common/src/main/java/com/zbkj/common/model/gift/GiftRecord.java
  • crmeb-common/src/main/java/com/zbkj/common/model/gift/GiftDetail.java
  • crmeb-common/src/main/java/com/zbkj/common/model/gift/RechargeOption.java

Dao层4个

  • crmeb-service/src/main/java/com/zbkj/service/dao/GiftDao.java
  • crmeb-service/src/main/java/com/zbkj/service/dao/GiftRecordDao.java
  • crmeb-service/src/main/java/com/zbkj/service/dao/GiftDetailDao.java
  • crmeb-service/src/main/java/com/zbkj/service/dao/RechargeOptionDao.java

Service层6个

  • crmeb-service/src/main/java/com/zbkj/service/service/GiftService.java
  • crmeb-service/src/main/java/com/zbkj/service/service/GiftRecordService.java
  • crmeb-service/src/main/java/com/zbkj/service/service/RechargeOptionService.java
  • crmeb-service/src/main/java/com/zbkj/service/service/impl/GiftServiceImpl.java
  • crmeb-service/src/main/java/com/zbkj/service/service/impl/GiftRecordServiceImpl.java
  • crmeb-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/Response7个

  • crmeb-front/src/main/java/com/zbkj/front/request/SendGiftRequest.java
  • crmeb-front/src/main/java/com/zbkj/front/request/CreateRechargeRequest.java
  • crmeb-front/src/main/java/com/zbkj/front/response/GiftResponse.java
  • crmeb-front/src/main/java/com/zbkj/front/response/SendGiftResponse.java
  • crmeb-front/src/main/java/com/zbkj/front/response/UserBalanceResponse.java
  • crmeb-front/src/main/java/com/zbkj/front/response/RechargeOptionResponse.java
  • crmeb-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服务启动失败

原因:端口被占用或数据库连接失败 解决

  1. 检查8081端口是否被占用
  2. 检查 application.yml 中的数据库配置

问题3接口返回401

原因未登录或token无效 解决

  1. 先调用登录接口获取token
  2. 在请求头中添加 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分布式锁防止重复扣款
  • 使用乐观锁更新用户余额

📞 技术支持

如遇到问题,请按以下顺序排查:

  1. 检查服务日志
  2. 检查数据库连接
  3. 检查数据是否正确
  4. 查看详细文档

部署完成后,请在此打勾:□

部署人员___________

部署时间___________

备注___________