70 lines
2.1 KiB
Go
70 lines
2.1 KiB
Go
![]() |
package model
|
||
|
|
||
|
import (
|
||
|
"SciencesServer/utils"
|
||
|
"time"
|
||
|
|
||
|
"gorm.io/gorm"
|
||
|
)
|
||
|
|
||
|
type SysTenant struct {
|
||
|
Model
|
||
|
ParentID uint64 `gorm:"column:parent_id;type:int;default:0;comment:父级ID" json:"-"`
|
||
|
Key string `gorm:"column:key;type:varchar(100);default:null;comment:租户/租户客户标识" json:"key"`
|
||
|
Image
|
||
|
Name string `gorm:"column:name;type:varchar(30);default:null;comment:租户名称/租户客户名称" json:"name"`
|
||
|
Config string `gorm:"column:config;type:text;comment:租户/租户客户配置信息" json:"-"`
|
||
|
Deadline time.Time `gorm:"column:deadline;type:datetime;default:null;comment:租户/租户客户协议截止时间" json:"deadline"`
|
||
|
Status SysTenantStatus `gorm:"column:status;type:tinyint(1);default:1;comment:租户/租户客户状态" json:"status"`
|
||
|
Remark string `gorm:"column:remark;type:varchar(255);default:null;comment:租户/租户客户备注" json:"remark"`
|
||
|
ModelDeleted
|
||
|
ModelAt
|
||
|
}
|
||
|
|
||
|
type SysTenantConfig struct {
|
||
|
MaxDevices int `json:"max_devices"` // 最大可连接设备数
|
||
|
MaxCustomer int `json:"max_customer"` // 最大可拥有的客户数
|
||
|
Protocol uint `json:"protocol"` // 支持的协议模式
|
||
|
}
|
||
|
|
||
|
type SysTenantStatus int
|
||
|
|
||
|
const (
|
||
|
// SysTenantStatusForNormal 正常
|
||
|
SysTenantStatusForNormal SysTenantStatus = iota + 1
|
||
|
// SysTenantStatusForWellExpire 协议将到期
|
||
|
SysTenantStatusForWellExpire
|
||
|
// SysTenantStatusForExpired 协议已过期
|
||
|
SysTenantStatusForExpired
|
||
|
// SysTenantStatusForDisable 已禁用
|
||
|
SysTenantStatusForDisable
|
||
|
)
|
||
|
|
||
|
func (m *SysTenant) TableName() string {
|
||
|
return "sys_tenant"
|
||
|
}
|
||
|
|
||
|
func (m *SysTenant) BeforeCreate(db *gorm.DB) error {
|
||
|
snowflake, _ := utils.NewSnowflake(1)
|
||
|
m.Key = utils.IntToString(snowflake.GetID())
|
||
|
m.CreatedAt = time.Now()
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (m *SysTenant) ConfigInfo() *SysTenantConfig {
|
||
|
config := new(SysTenantConfig)
|
||
|
_ = utils.FromJSON(m.Config, config)
|
||
|
return config
|
||
|
}
|
||
|
|
||
|
func (m *SysTenant) StatusTitle() string {
|
||
|
if m.Status == SysTenantStatusForDisable {
|
||
|
return "禁用"
|
||
|
}
|
||
|
return "正常"
|
||
|
}
|
||
|
|
||
|
func NewSysTenant() *SysTenant {
|
||
|
return &SysTenant{}
|
||
|
}
|