优化支付退款钱包链路

This commit is contained in:
yml
2026-06-03 21:47:04 +08:00
parent 04193ae687
commit c80d3f960e
26 changed files with 1342 additions and 504 deletions
@@ -117,6 +117,29 @@ func (r *Repository) ConfirmRechargeFromChannel(userID uint64, bizNo string, amo
})
}
// Withdraw 保留仓库能力;当前公开提现入口在 service 层标记为待开发,不会调用到这里。
func (r *Repository) Withdraw(userID uint64, amount float64) (*AccountDTO, error) {
amount = roundWalletMoney(amount)
if userID == 0 || amount <= 0 {
return nil, ErrInvalidAmount
}
err := r.db.Transaction(func(tx *gorm.DB) error {
return AppendEntries(tx, Entry{
UserID: userID,
Direction: "out",
Amount: amount,
BalanceType: "available",
BizType: "withdraw_apply",
BizNo: fmt.Sprintf("WD%d", time.Now().UnixNano()),
Remark: "卖家申请提现",
})
})
if err != nil {
return nil, err
}
return r.Account(userID)
}
func (r *Repository) AdminLedger(query AdminLedgerQuery) (*PaginatedResult, error) {
db := r.db.Table("wallet_ledger AS wl").
Select(`wl.id, wl.ledger_no, wl.user_id, COALESCE(u.phone, '') AS user_phone,