增加租户套餐

This commit is contained in:
2026-09-15 17:28:08 +08:00
parent a82b300b1a
commit 71a14c46f9
37 changed files with 3855 additions and 178 deletions
+80
View File
@@ -0,0 +1,80 @@
package models
import "time"
// SystemTenantPackage 租户套餐表 yz_system_tenant_package
// 套餐 = 可开通的功能模块集合 + 用户数配额(含用户数 / 单用户增购价)
type SystemTenantPackage struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
Name string `orm:"column(name);size(64)" json:"name"`
Code string `orm:"column(code);size(64)" json:"code"`
Description string `orm:"column(description);size(500)" json:"description"`
Price float64 `orm:"column(price);digits(10);decimals(2)" json:"price"`
UserQuota int `orm:"column(user_quota);default(20)" json:"user_quota"`
ExtraUserPrice float64 `orm:"column(extra_user_price);digits(10);decimals(2)" json:"extra_user_price"`
IsDefault int8 `orm:"column(is_default);default(0)" json:"is_default"`
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 *SystemTenantPackage) TableName() string {
return "yz_system_tenant_package"
}
// SystemTenantPackageModule 套餐-功能模块关联表 yz_system_tenant_package_module
// module_code 对应 yz_system_modules.code(如 erp / oa / crm / cms)
type SystemTenantPackageModule struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
PackageID uint64 `orm:"column(package_id)" json:"package_id"`
ModuleCode string `orm:"column(module_code);size(64)" json:"module_code"`
ModuleName string `orm:"column(module_name);size(64)" json:"module_name"`
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
}
func (m *SystemTenantPackageModule) TableName() string {
return "yz_system_tenant_package_module"
}
// SystemTenantUserQuotaPackage 用户数加购套餐表 yz_system_tenant_user_quota_package
// 平台可维护的规格,如「5人套餐 / 500元」;租户增购时选择该规格即增加对应人数。
type SystemTenantUserQuotaPackage struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
Name string `orm:"column(name);size(64)" json:"name"`
UserCount int `orm:"column(user_count);default(0)" json:"user_count"`
Price float64 `orm:"column(price);digits(10);decimals(2)" json:"price"`
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 *SystemTenantUserQuotaPackage) TableName() string {
return "yz_system_tenant_user_quota_package"
}
// SystemTenantQuotaOrder 租户用户数增购记录表 yz_system_tenant_quota_order
type SystemTenantQuotaOrder struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
Tid uint64 `orm:"column(tid)" json:"tid"`
Type int8 `orm:"column(type);default(1)" json:"type"` // 1单个增购 2套餐增购
QuotaPackageID uint64 `orm:"column(quota_package_id);default(0)" json:"quota_package_id"`
PackageName string `orm:"column(package_name);size(64)" json:"package_name"`
UserCount int `orm:"column(user_count);default(0)" json:"user_count"`
UnitPrice float64 `orm:"column(unit_price);digits(10);decimals(2)" json:"unit_price"`
Amount float64 `orm:"column(amount);digits(10);decimals(2)" json:"amount"`
QuotaBefore int `orm:"column(quota_before);default(0)" json:"quota_before"`
QuotaAfter int `orm:"column(quota_after);default(0)" json:"quota_after"`
Operator string `orm:"column(operator);size(64)" json:"operator"`
Remark string `orm:"column(remark);size(255)" json:"remark"`
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
}
func (m *SystemTenantQuotaOrder) TableName() string {
return "yz_system_tenant_quota_order"
}