48 lines
2.0 KiB
Go
48 lines
2.0 KiB
Go
package model
|
|
|
|
import (
|
|
"gorm.io/gorm"
|
|
"time"
|
|
)
|
|
|
|
type Payment struct {
|
|
ID uint `gorm:"column:id;primaryKey" json:"id"`
|
|
PaymentNo string `gorm:"column:payment_no;type:varchar(40);uniqueIndex;not null" json:"payment_no"`
|
|
OrderID uint `gorm:"column:order_id;not null" json:"order_id"`
|
|
OrderType string `gorm:"column:order_type;type:varchar(30);not null" json:"order_type"`
|
|
PaymentMethod string `gorm:"column:payment_method;type:varchar(20);not null" json:"payment_method"`
|
|
Amount int64 `gorm:"column:amount;type:bigint;not null" json:"amount"`
|
|
Status int `gorm:"column:status;type:smallint;not null;default:0" json:"status"`
|
|
ThirdPartyTradeNo string `gorm:"column:third_party_trade_no;type:varchar(100)" json:"third_party_trade_no,omitempty"`
|
|
PaymentConfigID *uint `gorm:"column:payment_config_id" json:"payment_config_id,omitempty"`
|
|
PaymentVoucherKey string `gorm:"column:payment_voucher_key;type:varchar(500)" json:"payment_voucher_key,omitempty"`
|
|
PaidAt *time.Time `gorm:"column:paid_at" json:"paid_at,omitempty"`
|
|
ExpireAt *time.Time `gorm:"column:expire_at" json:"expire_at,omitempty"`
|
|
CreatedAt time.Time `gorm:"column:created_at;not null;default:CURRENT_TIMESTAMP" json:"created_at"`
|
|
UpdatedAt time.Time `gorm:"column:updated_at;not null;default:CURRENT_TIMESTAMP" json:"updated_at"`
|
|
DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;index" json:"deleted_at,omitempty"`
|
|
}
|
|
|
|
func (Payment) TableName() string {
|
|
return "tb_payment"
|
|
}
|
|
|
|
const (
|
|
PaymentRecordStatusPending = 0 // 待支付
|
|
PaymentRecordStatusPaid = 1 // 已支付
|
|
PaymentRecordStatusFailed = 2 // 已失败
|
|
PaymentRecordStatusRefunded = 3 // 已退款
|
|
)
|
|
|
|
const (
|
|
PaymentOrderTypePackage = "package_order"
|
|
PaymentOrderTypeRecharge = "recharge_order"
|
|
)
|
|
|
|
const (
|
|
PaymentByWallet = "wallet"
|
|
PaymentByWechat = "wechat"
|
|
PaymentByAlipay = "alipay"
|
|
PaymentByOffline = "offline"
|
|
)
|