Zuncle d45096d13f fix(refund): 修复退款后翻牌游戏资格未回收的问题
问题描述:
用户退单后,翻牌游戏资格会重新出现(被重置),但用户已经抽过奖了。
这导致用户可以通过退款获得额外的翻牌机会。

根本原因:
退款处理逻辑 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. 验证翻牌资格是否被正确回收
2026-03-08 16:01:39 +08:00
2026-03-05 12:50:06 +08:00
2026-03-05 12:50:06 +08:00
2026-02-27 17:51:38 +08:00
2026-03-05 12:50:06 +08:00
2026-02-27 16:07:12 +08:00
2026-03-05 12:50:06 +08:00
2026-03-05 12:50:06 +08:00
2026-02-27 00:08:02 +08:00
2026-03-05 12:53:29 +08:00
2026-03-05 12:50:06 +08:00
2026-03-05 12:50:06 +08:00
2026-02-18 23:23:34 +08:00
2026-02-27 16:07:12 +08:00
2026-02-27 16:07:12 +08:00

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
No description provided
Readme 511 MiB
Languages
Go 98.3%
HTML 1.3%
Makefile 0.2%