57 lines
2.5 KiB
Go
57 lines
2.5 KiB
Go
package models
|
|
|
|
import "time"
|
|
|
|
// 域名类型
|
|
const (
|
|
DomainTypePlatformSub = 1 // 平台二级域名(从主域名池申请)
|
|
DomainTypeCustom = 2 // 租户自有域名(绑定后自动签发证书)
|
|
)
|
|
|
|
// 证书状态
|
|
const (
|
|
SSLStatusPending = 0 // 待处理
|
|
SSLStatusIssuing = 1 // 签发中
|
|
SSLStatusIssued = 2 // 已签发
|
|
SSLStatusFailed = 3 // 签发失败
|
|
)
|
|
|
|
// DNS 解析校验状态
|
|
const (
|
|
VerifyStatusNone = 0 // 未检测
|
|
VerifyStatusPassed = 1 // 已通过
|
|
VerifyStatusFailed = 2 // 未通过
|
|
)
|
|
|
|
// SystemTenantDomain 租户域名表 yz_system_tenant_domain
|
|
//
|
|
// 一条记录代表一个可访问租户官网的域名。两类来源:
|
|
// - domain_type=1 平台二级域名:sub_domain + main_domain 组成 full_domain,走人工审核,
|
|
// HTTPS 由平台泛域名证书覆盖,ssl_status 不参与判断。
|
|
// - domain_type=2 租户自有域名:full_domain 为租户自己的完整主机名,sub_domain / main_domain 留空,
|
|
// DNS 检测通过后自动签发 Let's Encrypt 证书,签发成功才置 status=1。
|
|
type SystemTenantDomain struct {
|
|
ID uint64 `orm:"column(id);pk;auto" json:"id"`
|
|
Tid *uint64 `orm:"column(tid);null" json:"tid"`
|
|
DomainType int `orm:"column(domain_type);default(1)" json:"domain_type"`
|
|
SubDomain *string `orm:"column(sub_domain);size(50);null" json:"sub_domain"`
|
|
MainDomain *string `orm:"column(main_domain);size(255);null" json:"main_domain"`
|
|
FullDomain *string `orm:"column(full_domain);size(255);null" json:"full_domain"`
|
|
Status int `orm:"column(status);null" json:"status"` // 1已生效 / 0审核中 / 2禁用
|
|
|
|
SSLStatus int `orm:"column(ssl_status);default(0)" json:"ssl_status"`
|
|
SSLExpireAt *time.Time `orm:"column(ssl_expire_at);type(datetime);null" json:"ssl_expire_at"`
|
|
SSLError *string `orm:"column(ssl_error);size(500);null" json:"ssl_error"`
|
|
VerifyStatus int `orm:"column(verify_status);default(0)" json:"verify_status"`
|
|
VerifyMsg *string `orm:"column(verify_msg);size(500);null" json:"verify_msg"`
|
|
LastVerifyAt *time.Time `orm:"column(last_verify_at);type(datetime);null" json:"last_verify_at"`
|
|
|
|
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
|
|
UpdateTime *time.Time `orm:"column(update_time);type(datetime);auto_now;null" json:"update_time"`
|
|
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"`
|
|
}
|
|
|
|
func (m *SystemTenantDomain) TableName() string {
|
|
return "yz_system_tenant_domain"
|
|
}
|