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" )