You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.6 KiB
73 lines
2.6 KiB
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 |
|
}
|
|
|