rwadurian/backend/services/wallet-service/src/application
hailin d3969710be fix(wallet): 系统账户划转前自动结算 settleableUsdt,解决全额划转余额不足
## 问题
省/市区域和团队账户收到的奖励进入 settleableUsdt,
但划转验证只检查 usdtAvailable,导致全额划转报"余额不足"。

## 修复
在 requestSystemWithdrawal 事务中,划转前自动执行结算:
1. 检测账户是否为区域/团队账户(6/7/8/9开头)
2. 若 settleableUsdt > 0,自动结算到 usdtAvailable
3. 记录 REWARD_SETTLED 流水明细(含 trigger=SYSTEM_WITHDRAWAL_AUTO_SETTLE)
4. 结算和划转在同一事务中,保证原子性

## 审计流水
每次自动结算会产生一条独立的 REWARD_SETTLED 流水:
- memo: "系统账户自动结算: 待结算 X 绿积分转入可用余额(划转前自动执行)"
- payloadJson: { settledAmount, previousAvailable, newAvailable, trigger }

## 其他
- 划转白名单扩展支持 6xxx(市团队)、7xxx(省团队)
- getSystemAccountName 添加省团队/市团队名称映射

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 06:30:34 -08:00
..
commands feat(transfer): 树转让功能全量实现(纯新增,零侵入) 2026-02-19 03:44:02 -08:00
event-handlers fix(wallet-service): 修复提现失败时不写 UNFREEZE ledger 流水的 bug 2026-02-02 09:13:40 -08:00
queries fix(wallet-service): 修复流水查询使用 userId 导致记录丢失的问题 2026-01-08 11:16:04 -08:00
schedulers fix(wallet-service): 修复待领取奖励显示和结算触发问题 2025-12-13 05:51:28 -08:00
services fix(wallet): 系统账户划转前自动结算 settleableUsdt,解决全额划转余额不足 2026-03-02 06:30:34 -08:00