75 lines
4.1 KiB
Go
75 lines
4.1 KiB
Go
package models
|
||
|
||
import "time"
|
||
|
||
// =============================================================
|
||
// 产品定价模型(表结构见 docs/sql/create_platform_product_pricing.sql)
|
||
// 产品(名称/编码/价格/关联功能/上下架) -> 功能节点树 -> 购买订单
|
||
// =============================================================
|
||
|
||
// PlatformProduct 产品 yz_platform_product
|
||
type PlatformProduct struct {
|
||
ID uint64 `orm:"column(id);pk;auto" json:"id"`
|
||
Code string `orm:"column(code);size(64)" json:"code"`
|
||
Name string `orm:"column(name);size(128)" json:"name"`
|
||
Price float64 `orm:"column(price);digits(10);decimals(2)" json:"price"`
|
||
ModuleCode string `orm:"column(module_code);size(64)" json:"module_code"`
|
||
Sort int `orm:"column(sort);default(0)" json:"sort"`
|
||
Status int8 `orm:"column(status);default(1)" json:"status"`
|
||
Remark string `orm:"column(remark);size(255)" json:"remark"`
|
||
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
|
||
UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"`
|
||
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"`
|
||
}
|
||
|
||
func (m *PlatformProduct) TableName() string { return "yz_platform_product" }
|
||
|
||
// PlatformProductFeature 产品功能节点(树形,pid=0 为顶级) yz_platform_product_feature
|
||
type PlatformProductFeature struct {
|
||
ID uint64 `orm:"column(id);pk;auto" json:"id"`
|
||
ProductID uint64 `orm:"column(product_id)" json:"product_id"`
|
||
Pid uint64 `orm:"column(pid)" json:"pid"`
|
||
Title string `orm:"column(title);size(128)" json:"title"`
|
||
Description string `orm:"column(description);size(500)" json:"description"`
|
||
Sort int `orm:"column(sort);default(0)" json:"sort"`
|
||
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
|
||
}
|
||
|
||
func (m *PlatformProductFeature) TableName() string { return "yz_platform_product_feature" }
|
||
|
||
// 购买订单状态
|
||
const (
|
||
ProductOrderStatusPending = "pending" // 待支付
|
||
ProductOrderStatusPaid = "paid" // 已支付(待开通)
|
||
ProductOrderStatusActivated = "activated" // 已开通
|
||
ProductOrderStatusClosed = "closed" // 已关闭
|
||
)
|
||
|
||
// ProductOrderDurationDays 单品功能默认有效期(天):1 年。
|
||
// 到期后租户端权益自动失效(GetTenantModuleCodes 按有效期过滤),需重新购买续费。
|
||
const ProductOrderDurationDays = 365
|
||
|
||
// PlatformProductOrder 产品购买订单 yz_platform_product_order
|
||
type PlatformProductOrder struct {
|
||
ID uint64 `orm:"column(id);pk;auto" json:"id"`
|
||
OrderNo string `orm:"column(order_no);size(40)" json:"order_no"`
|
||
Tid uint64 `orm:"column(tid)" json:"tid"`
|
||
TenantName string `orm:"column(tenant_name);size(128)" json:"tenant_name"`
|
||
ProductID uint64 `orm:"column(product_id)" json:"product_id"`
|
||
ProductCode string `orm:"column(product_code);size(64)" json:"product_code"`
|
||
ProductName string `orm:"column(product_name);size(128)" json:"product_name"`
|
||
Amount float64 `orm:"column(amount);digits(10);decimals(2)" json:"amount"`
|
||
PackageID uint64 `orm:"column(package_id)" json:"package_id"`
|
||
PayNo string `orm:"column(pay_no);size(40)" json:"pay_no"`
|
||
Channel string `orm:"column(channel);size(32)" json:"channel"`
|
||
Status string `orm:"column(status);size(20);default(pending)" json:"status"`
|
||
ActivateTime *time.Time `orm:"column(activate_time);type(datetime);null" json:"activate_time"`
|
||
ExpireTime *time.Time `orm:"column(expire_time);type(datetime);null" json:"expire_time"`
|
||
Remark string `orm:"column(remark);size(255)" json:"remark"`
|
||
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
|
||
UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"`
|
||
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"`
|
||
}
|
||
|
||
func (m *PlatformProductOrder) TableName() string { return "yz_platform_product_order" }
|