钱包系统开发指南。当需要处理用户余额查询、账变流水、冻结/解冻、调账、手续费计算、ZHOTC API调用时使用。涵盖 openchat-wallet 项目。适用场景:余额问题排查、资金操作开发、对账问题、补偿机制调试。
| 表名 | 库 | 说明 |
|---|---|---|
| user_coin | im_wallet | 用户余额 (uid + symbol 唯一) |
| user_coin_record | im_wallet | 账变流水 |
| base_fee | im_wallet | 手续费配置 |
| coin_limit_config | im_wallet | 限额配置 |
C (平台币) / USDT / ETH / BTC / TRX
| 接口类 | 路径 | 说明 |
|---|
ZhOtcWalletApi | /inner/zhOtc | ZHOTC钱包操作 |
UserWalletApi | /userWallet | 用户余额查询 |
ZhOtcMemberApi | /inner/zhOtcMember | 会员管理 |
// 冻结余额
ZhOtcWalletApi.frozenBalance(FrozenBalanceReq req)
// 解冻余额
ZhOtcWalletApi.unfrozenBalance(UnfrozenBalanceReq req)
// 会员调账 (加币/扣币)
ZhOtcWalletApi.adjustMemberAmount(AdjustMemberAmountReq req)
// 查询余额
UserWalletApi.getUserBalance(UserBalanceReq req)
业务服务 → ZhOtcService → ZhOtcWalletApi → ZHOTC系统
↓
失败记录到 zh_otc_error_log
↓
定时任务补偿重试
openchat-wallet-biz/
└── service/zhotc/
├── otc/
│ ├── ZhOtcService.java # 业务封装
│ └── ZhOtcWalletApi.java # HTTP调用
└── etx/
├── ZhOtcFrozenBalanceCompensateService.java
├── ZhOtcUnfrozenBalanceCompensateService.java
└── ZhOtcAdjustMemberAmountCompensateService.java
zh_otc_error_log 表zhOtc.error.maxRetry)1. 调用 frozenBalance 冻结发送者余额
2. 返回 frozeFlowNo (冻结流水号)
3. 红包被领取 → adjustMemberAmount 调账给领取者
4. 红包过期 → unfrozenBalance 解冻退回
1. 买家付款确认
2. 卖家放币 → adjustMemberAmount (卖家扣币)
3. 买家到账 → adjustMemberAmount (买家加币)
4. 扣除手续费
1. 转出方冻结 (frozenBalance)
2. 对方收款 → frozenTransferAmount (冻结转账)
3. 对方不收 → unfrozenBalance (解冻退回)
详见 zhotc-api.md
user_coin 当前余额user_coin_record 最近账变zh_otc_error_log 错误日志