56 lines
3.4 KiB
Go
56 lines
3.4 KiB
Go
package model
|
|
|
|
import (
|
|
"gorm.io/datatypes"
|
|
"gorm.io/gorm"
|
|
"time"
|
|
)
|
|
|
|
// RechargeOrder 充值订单模型
|
|
// 记录用户发起充值请求后生成的订单,支持强充和普通充值两种类型
|
|
type RechargeOrder struct {
|
|
ID uint `gorm:"column:id;primaryKey" json:"id"`
|
|
RechargeOrderNo string `gorm:"column:recharge_order_no;type:varchar(40);uniqueIndex;not null" json:"recharge_order_no"`
|
|
UserID uint `gorm:"column:user_id;not null;index" json:"user_id"`
|
|
AssetWalletID uint `gorm:"column:asset_wallet_id;not null" json:"asset_wallet_id"`
|
|
ResourceType string `gorm:"column:resource_type;type:varchar(20);not null" json:"resource_type"`
|
|
ResourceID uint `gorm:"column:resource_id;not null" json:"resource_id"`
|
|
IotCardID *uint `gorm:"column:iot_card_id" json:"iot_card_id,omitempty"`
|
|
DeviceID *uint `gorm:"column:device_id" json:"device_id,omitempty"`
|
|
Amount int64 `gorm:"column:amount;type:bigint;not null" json:"amount"`
|
|
Status int `gorm:"column:status;type:smallint;not null;default:0" json:"status"`
|
|
PaidAt *time.Time `gorm:"column:paid_at" json:"paid_at,omitempty"`
|
|
ShopIDTag uint `gorm:"column:shop_id_tag;not null;default:0" json:"shop_id_tag"`
|
|
EnterpriseIDTag *uint `gorm:"column:enterprise_id_tag" json:"enterprise_id_tag,omitempty"`
|
|
OperatorType string `gorm:"column:operator_type;type:varchar(30);not null" json:"operator_type"`
|
|
Generation int `gorm:"column:generation;not null;default:1" json:"generation"`
|
|
LinkedPackageIDs datatypes.JSON `gorm:"column:linked_package_ids;type:jsonb" json:"linked_package_ids,omitempty"`
|
|
LinkedOrderType string `gorm:"column:linked_order_type;type:varchar(20)" json:"linked_order_type,omitempty"`
|
|
LinkedCarrierType string `gorm:"column:linked_carrier_type;type:varchar(20)" json:"linked_carrier_type,omitempty"`
|
|
LinkedCarrierID *uint `gorm:"column:linked_carrier_id;type:bigint" json:"linked_carrier_id,omitempty"`
|
|
AutoPurchaseStatus string `gorm:"column:auto_purchase_status;type:varchar(20)" json:"auto_purchase_status,omitempty"`
|
|
AccumulatedRechargeSeries int64 `gorm:"column:accumulated_recharge_series;not null;default:0" json:"accumulated_recharge_series"`
|
|
PaymentConfigID *uint `gorm:"column:payment_config_id;index" json:"payment_config_id,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"`
|
|
}
|
|
|
|
// TableName 指定表名
|
|
func (RechargeOrder) TableName() string {
|
|
return "tb_recharge_order"
|
|
}
|
|
|
|
const (
|
|
RechargeOrderStatusPending = 0 // 待支付
|
|
RechargeOrderStatusPaid = 1 // 已支付
|
|
RechargeOrderStatusClosed = 2 // 已关闭
|
|
RechargeOrderStatusRefunded = 3 // 已退款
|
|
)
|
|
|
|
const (
|
|
AutoPurchaseStatusPending = "pending" // 待处理
|
|
AutoPurchaseStatusSuccess = "success" // 成功
|
|
AutoPurchaseStatusFailed = "failed" // 失败
|
|
)
|