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" }