问题原因: wallet-service 对不同类型奖励的分配方式不一致: - SHARE_RIGHT: 正确使用 addSettleableReward() → settleable_usdt - CITY_TEAM_RIGHT/COMMUNITY_RIGHT: 错误使用 addAvailableBalance() → usdt_available 这导致 reward-service 记录的 SETTLEABLE 奖励总额与 wallet-service 的 settleable_usdt 字段不匹配。用户 D25122700024 的案例中: - reward-service: 3条奖励共 4464 USDT (SHARE_RIGHT 3600 + CITY_TEAM_RIGHT 288 + COMMUNITY_RIGHT 576) - wallet-service: settleable_usdt = 3600 (仅 SHARE_RIGHT) 差额 864 USDT 被错误地放入了 usdt_available 修复内容: 1. allocateCommunityRight: 改用 addSettleableReward() 替代 addAvailableBalance() 2. allocateToRegionAccount: 改用 addSettleableReward() 替代 addAvailableBalance() 3. 流水类型统一使用 REWARD_TO_SETTLEABLE 替代 SYSTEM_ALLOCATION 4. 日志和备注更新以反映新的分配方式 设计原则: - reward-service 是奖励的权威来源 - wallet-service 应跟随 reward-service 的设计 - 所有奖励都应进入 settleable_usdt,用户主动结算后才转入 usdt_available 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .claude | ||
| api-gateway | ||
| infrastructure | ||
| mpc-system | ||
| scripts | ||
| services | ||
| .env.windows | ||
| docker-compose.windows.yml | ||