74 lines
2.6 KiB
Go
74 lines
2.6 KiB
Go
package model
|
||
|
||
import (
|
||
xtime "go-common/library/time"
|
||
)
|
||
|
||
// PriceConfig represents price config of tv vip.
|
||
type PriceConfig struct {
|
||
ID int32 `json:"id"` // 主键id
|
||
Pid int32 `json:"pid"` // 父id,为空表示为原价信息
|
||
Platform int8 `json:"platform"` // 类型: 1:tv安卓 2:公众号
|
||
ProductName string `json:"product_name"` // 产品展示名
|
||
ProductId string `json:"product_id"` // 产品id
|
||
SuitType int8 `json:"suit_type"` // 适用人群: 0.所有用户 1.旧客 2.新客 3.续期旧客 4.续期新客 5.套餐旧客 6.套餐新客 10.主站vip专项
|
||
Month int32 `json:"month"` // 月份单位
|
||
SubType int8 `json:"sub_type"` // 订阅类型:0.其他,1.连续包月
|
||
Price int32 `json:"price"` // 价格,pid为0表示原价,单位:分
|
||
Selected int8 `json:"selected"` // 选中状态: 0.未选中,1.选中
|
||
Remark string `json:"remark"` // 促销tip
|
||
Status int8 `json:"status"` // 状态,0:有效,1:失效
|
||
Superscript string `json:"superscript"` // 角标
|
||
Operator string `json:"operator"` // 操作者
|
||
OperId int64 `json:"oper_id"` // 操作者id
|
||
Stime xtime.Time `json:"stime"` // 折扣开始时间
|
||
Etime xtime.Time `json:"etime"` // 折扣结束时间
|
||
Ctime xtime.Time `json:"ctime"` // 创建时间
|
||
Mtime xtime.Time `json:"mtime"` // 最后修改时间
|
||
|
||
}
|
||
|
||
// PanelPriceConfig represents panel config of tv vip.
|
||
type PanelPriceConfig struct {
|
||
PriceConfig
|
||
MaxNum int32 // 允许最大购买数量,-1 表示不限制
|
||
OriginPrice int32 // 原价
|
||
}
|
||
|
||
// CopyFromPriceConfig copies fields from price config.
|
||
func (pi *PanelPriceConfig) CopyFromPriceConfig(pc *PriceConfig) {
|
||
pi.ID = pc.ID
|
||
pi.Pid = pc.Pid
|
||
pi.Platform = pc.Platform
|
||
pi.ProductName = pc.ProductName
|
||
pi.ProductId = pc.ProductId
|
||
pi.SuitType = pc.SuitType
|
||
pi.Month = pc.Month
|
||
pi.SubType = pc.SubType
|
||
pi.Price = pc.Price
|
||
pi.Selected = pc.Selected
|
||
pi.Remark = pc.Remark
|
||
pi.Status = pc.Status
|
||
pi.Superscript = pc.Superscript
|
||
pi.Operator = pc.Operator
|
||
pi.OperId = pc.OperId
|
||
pi.Stime = pc.Stime
|
||
pi.Etime = pc.Etime
|
||
pi.Ctime = pc.Ctime
|
||
pi.Mtime = pc.Mtime
|
||
pi.MaxNum = 1
|
||
}
|
||
|
||
// IsContracted returns true if panel is contracted package.
|
||
func (pi *PanelPriceConfig) IsContracted() bool {
|
||
return pi.SubType == SubTypeContract
|
||
}
|
||
|
||
// PidOrId returns panel parent id or panel id.
|
||
func (pi *PanelPriceConfig) PidOrId() int32 {
|
||
if pi.Pid != 0 {
|
||
return pi.Pid
|
||
}
|
||
return pi.ID
|
||
}
|