Files

75 lines
4.1 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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" }