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