89 lines
2.8 KiB
Go
89 lines
2.8 KiB
Go
package model
|
|
|
|
import "encoding/json"
|
|
|
|
type IOrderInstance interface {
|
|
}
|
|
|
|
// OrderInstance 订单数据模型
|
|
type OrderInstance struct {
|
|
Model
|
|
ModelTenant
|
|
UID uint64 `gorm:"column:uid;type:int;default:0;comment:用户uuid" json:"-"`
|
|
Channel string `gorm:"column:channel;type:varchar(30);default:'';comment:订单支付渠道" json:"channel"`
|
|
OrderNo string `gorm:"column:order_no;type:varchar(30);default:'';comment:订单号" json:"order_no"`
|
|
Amount float64 `gorm:"column:amount;type:decimal(10,2);default:0;comment:订单金额" json:"amount"`
|
|
Params string `gorm:"column:params;type:varchar(255);default:'';comment:订单参数" json:"-"`
|
|
Status OrderInstanceStatus `gorm:"column:status;type:tinyint(1);default:0;comment:订单状态" json:"status"`
|
|
Remark string `gorm:"column:remark;type:varchar(255);default:'';comment:订单备注" json:"remark"`
|
|
ModelDeleted
|
|
ModelAt
|
|
}
|
|
|
|
// OrderInstanceParams 订单参数
|
|
type OrderInstanceParams struct {
|
|
Kind OrderInstanceParamsKind `json:"kind"`
|
|
Data interface{} `json:"data"`
|
|
}
|
|
|
|
// OrderInstanceParamsKind 订单参数类型信息
|
|
type OrderInstanceParamsKind int
|
|
|
|
const (
|
|
// OrderInstanceParamsKindForActivity 活动信息
|
|
OrderInstanceParamsKindForActivity OrderInstanceParamsKind = iota + 1e2 + 1
|
|
// OrderInstanceParamsKindForVIP 会员信息
|
|
OrderInstanceParamsKindForVIP
|
|
)
|
|
|
|
type (
|
|
// OrderInstanceParamsForActivity 订单活动参数
|
|
OrderInstanceParamsForActivity struct {
|
|
ID uint64 `json:"id"`
|
|
Identity int `json:"identity"`
|
|
}
|
|
// OrderInstanceParamsForVip 会员参数
|
|
OrderInstanceParamsForVip struct {
|
|
ID uint64 `json:"id"`
|
|
EffectTime int `json:"effect_time"` // 有效时长,月
|
|
}
|
|
)
|
|
|
|
// OrderInstanceStatus 订单状态
|
|
type OrderInstanceStatus int
|
|
|
|
const (
|
|
// OrderInstanceStatusForInvalid 失效-未在规定时间内支付
|
|
OrderInstanceStatusForInvalid OrderInstanceStatus = iota - 9
|
|
// OrderInstanceStatusForCancel 取消-用户主动取消订单
|
|
OrderInstanceStatusForCancel OrderInstanceStatus = iota - 2
|
|
// OrderInstanceStatusForInit 初始化-初始化订单,待支付
|
|
OrderInstanceStatusForInit
|
|
// OrderInstanceStatusForPaid 已支付
|
|
OrderInstanceStatusForPaid
|
|
// OrderInstanceStatusForComplete 完成
|
|
OrderInstanceStatusForComplete
|
|
)
|
|
|
|
func (m *OrderInstance) TableName() string {
|
|
return "order_instance"
|
|
}
|
|
|
|
func (m *OrderInstance) SetParamsAttribute(kind OrderInstanceParamsKind, data IOrderInstance) {
|
|
value := &OrderInstanceParams{Kind: kind, Data: data}
|
|
_bytes, _ := json.Marshal(value)
|
|
m.Params = string(_bytes)
|
|
}
|
|
|
|
func (m *OrderInstance) GetParamsAttribute() *OrderInstanceParams {
|
|
out := new(OrderInstanceParams)
|
|
|
|
_ = json.Unmarshal([]byte(m.Params), out)
|
|
|
|
return out
|
|
}
|
|
|
|
func NewOrderInstance() *OrderInstance {
|
|
return &OrderInstance{}
|
|
}
|