问题描述: 用户退单后,翻牌游戏资格会重新出现(被重置),但用户已经抽过奖了。 这导致用户可以通过退款获得额外的翻牌机会。 根本原因: 退款处理逻辑 reclaimLivestreamAssets 只回收了 user_inventory 中的实物奖品, 但没有回收 user_game_tickets 中的翻牌游戏资格。 解决方案: 在 reclaimLivestreamAssets 函数后添加 reclaimFlipCardTicket 函数, 用于检测并回收翻牌游戏资格: 1. 通过 shop_order_id 查询抖店订单获取商品ID 2. 查询 douyin_product_rewards 表检查商品是否配置了翻牌游戏奖励 - 检查 reward_type = 'game_ticket' - 检查 payload.game_code = 'flip_card' 3. 如果配置了翻牌奖励,回收用户的翻牌次数 - 扣减 user_game_tickets.available - 扣减 user_game_tickets.total_earned 4. 在 game_ticket_logs 表中记录回收日志 影响范围: - 仅影响配置了翻牌游戏奖励的商品订单退款 - 退款时会同步回收翻牌游戏资格 - 已使用过的翻牌次数不会被回收(只回收 available > 0 的记录) 测试建议: 1. 购买配置了翻牌奖励的商品 2. 进行翻牌游戏 3. 申请退款 4. 验证翻牌资格是否被正确回收
mini-chat
接口文档
服务地址
打包命令
MAC
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -tags timetzdata -trimpath -o build/bindbox.exe .
export DOCKER_DEFAULT_PLATFORM=linux/amd64 docker build -t zfc931912343/bindbox-game:v1.10 . docker push zfc931912343/bindbox-game:v1.10
docker pull zfc931912343/bindbox-game:v1.10 &&docker rm -f bindbox-game && docker run -d --name bindbox-game -p 9991:9991 zfc931912343/bindbox-game:v1.10
Description
Languages
Go
98.3%
HTML
1.3%
Makefile
0.2%