service

package
v1.3.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CalculateFee

func CalculateFee(amount decimal.Decimal, feeRate decimal.Decimal) (fee decimal.Decimal, merchantAmount decimal.Decimal, feePercent int64)

CalculateFee 计算手续费和商户实收金额 返回:手续费、商户实收金额、手续费百分比

func CheckDailyLimit

func CheckDailyLimit(tx *gorm.DB, userID uint64, amount decimal.Decimal, dailyLimit *int64) error

CheckDailyLimit 检查用户每日支付限额 返回 nil 表示未超限额,返回 error 表示超限或查询失败

func EnqueueMerchantNotify

func EnqueueMerchantNotify(orderID uint64, clientID string) error

EnqueueMerchantNotify 下发商户回调任务

func GetTodayUsedAmount

func GetTodayUsedAmount(db *gorm.DB, userID uint64) (decimal.Decimal, error)

GetTodayUsedAmount 获取用户当日已使用的支付额度

func SettlePendingToAvailable added in v1.3.3

func SettlePendingToAvailable(tx *gorm.DB, userID uint64, amount decimal.Decimal) error

SettlePendingToAvailable 将资金从 PendingBalance 转入 AvailableBalance

func UpdateBalance

func UpdateBalance(tx *gorm.DB, opts BalanceUpdateOptions) error

UpdateBalance 通用余额更新函数

func ValidateTestModePayment

func ValidateTestModePayment(currentUserID, merchantUserID uint64, isTestMode bool) error

ValidateTestModePayment 验证测试模式下的支付权限 返回 error:nil 表示允许支付,非 nil 表示拒绝支付

Types

type BalanceOperation

type BalanceOperation int

BalanceOperation 余额操作类型

const (
	BalanceAdd BalanceOperation = iota
	BalanceDeduct
)

type BalanceUpdateOptions

type BalanceUpdateOptions struct {
	UserID        uint64
	Amount        decimal.Decimal
	Operation     BalanceOperation
	ScoreChange   int64
	TotalField    string // 累计字段:total_payment / total_receive / total_transfer
	CheckBalance  bool
	AsyncTransfer bool // 异步结算时使用 pending_balance 字段
}

BalanceUpdateOptions 余额更新选项

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL