From 11fa7c0f63548350c58417a91f0b2b5bbde0db51 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Wed, 3 May 2023 17:09:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=99=BA=E8=83=BD=20DNS=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E5=81=A5=E5=BA=B7=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/models/nameservers/ns_domain_dao.go | 33 ++++++++++++ .../models/nameservers/ns_domain_dao_test.go | 6 +++ .../db/models/nameservers/ns_domain_model.go | 54 ++++++++++--------- .../db/models/nameservers/ns_record_model.go | 8 +++ 4 files changed, 75 insertions(+), 26 deletions(-) create mode 100644 internal/db/models/nameservers/ns_domain_dao.go create mode 100644 internal/db/models/nameservers/ns_domain_dao_test.go diff --git a/internal/db/models/nameservers/ns_domain_dao.go b/internal/db/models/nameservers/ns_domain_dao.go new file mode 100644 index 00000000..f0c4a3f4 --- /dev/null +++ b/internal/db/models/nameservers/ns_domain_dao.go @@ -0,0 +1,33 @@ +package nameservers + +import ( + _ "github.com/go-sql-driver/mysql" + "github.com/iwind/TeaGo/Tea" + "github.com/iwind/TeaGo/dbs" +) + +const ( + NSDomainStateEnabled = 1 // 已启用 + NSDomainStateDisabled = 0 // 已禁用 +) + +type NSDomainDAO dbs.DAO + +func NewNSDomainDAO() *NSDomainDAO { + return dbs.NewDAO(&NSDomainDAO{ + DAOObject: dbs.DAOObject{ + DB: Tea.Env, + Table: "edgeNSDomains", + Model: new(NSDomain), + PkName: "id", + }, + }).(*NSDomainDAO) +} + +var SharedNSDomainDAO *NSDomainDAO + +func init() { + dbs.OnReady(func() { + SharedNSDomainDAO = NewNSDomainDAO() + }) +} diff --git a/internal/db/models/nameservers/ns_domain_dao_test.go b/internal/db/models/nameservers/ns_domain_dao_test.go new file mode 100644 index 00000000..c0dcac01 --- /dev/null +++ b/internal/db/models/nameservers/ns_domain_dao_test.go @@ -0,0 +1,6 @@ +package nameservers_test + +import ( + _ "github.com/go-sql-driver/mysql" + _ "github.com/iwind/TeaGo/bootstrap" +) diff --git a/internal/db/models/nameservers/ns_domain_model.go b/internal/db/models/nameservers/ns_domain_model.go index f2741017..d4c4c7de 100644 --- a/internal/db/models/nameservers/ns_domain_model.go +++ b/internal/db/models/nameservers/ns_domain_model.go @@ -4,35 +4,37 @@ import "github.com/iwind/TeaGo/dbs" // NSDomain DNS域名 type NSDomain struct { - Id uint64 `field:"id"` // ID - ClusterId uint32 `field:"clusterId"` // 集群ID - UserId uint32 `field:"userId"` // 用户ID - IsOn bool `field:"isOn"` // 是否启用 - Name string `field:"name"` // 域名 - GroupIds dbs.JSON `field:"groupIds"` // 分组ID - Tsig dbs.JSON `field:"tsig"` // TSIG配置 - VerifyTXT string `field:"verifyTXT"` // 验证用的TXT - VerifyExpiresAt uint64 `field:"verifyExpiresAt"` // 验证TXT过期时间 - CreatedAt uint64 `field:"createdAt"` // 创建时间 - Version uint64 `field:"version"` // 版本号 - Status string `field:"status"` // 状态:none|verified - State uint8 `field:"state"` // 状态 + Id uint64 `field:"id"` // ID + ClusterId uint32 `field:"clusterId"` // 集群ID + UserId uint32 `field:"userId"` // 用户ID + IsOn bool `field:"isOn"` // 是否启用 + Name string `field:"name"` // 域名 + GroupIds dbs.JSON `field:"groupIds"` // 分组ID + Tsig dbs.JSON `field:"tsig"` // TSIG配置 + VerifyTXT string `field:"verifyTXT"` // 验证用的TXT + VerifyExpiresAt uint64 `field:"verifyExpiresAt"` // 验证TXT过期时间 + RecordsHealthCheck dbs.JSON `field:"recordsHealthCheck"` // 记录健康检查设置 + CreatedAt uint64 `field:"createdAt"` // 创建时间 + Version uint64 `field:"version"` // 版本号 + Status string `field:"status"` // 状态:none|verified + State uint8 `field:"state"` // 状态 } type NSDomainOperator struct { - Id any // ID - ClusterId any // 集群ID - UserId any // 用户ID - IsOn any // 是否启用 - Name any // 域名 - GroupIds any // 分组ID - Tsig any // TSIG配置 - VerifyTXT any // 验证用的TXT - VerifyExpiresAt any // 验证TXT过期时间 - CreatedAt any // 创建时间 - Version any // 版本号 - Status any // 状态:none|verified - State any // 状态 + Id any // ID + ClusterId any // 集群ID + UserId any // 用户ID + IsOn any // 是否启用 + Name any // 域名 + GroupIds any // 分组ID + Tsig any // TSIG配置 + VerifyTXT any // 验证用的TXT + VerifyExpiresAt any // 验证TXT过期时间 + RecordsHealthCheck any // 记录健康检查设置 + CreatedAt any // 创建时间 + Version any // 版本号 + Status any // 状态:none|verified + State any // 状态 } func NewNSDomainOperator() *NSDomainOperator { diff --git a/internal/db/models/nameservers/ns_record_model.go b/internal/db/models/nameservers/ns_record_model.go index 99b3672b..2e30985a 100644 --- a/internal/db/models/nameservers/ns_record_model.go +++ b/internal/db/models/nameservers/ns_record_model.go @@ -20,6 +20,10 @@ type NSRecord struct { Ttl uint32 `field:"ttl"` // TTL(秒) Weight uint32 `field:"weight"` // 权重 RouteIds dbs.JSON `field:"routeIds"` // 线路 + HealthCheck dbs.JSON `field:"healthCheck"` // 健康检查配置 + CountUp uint32 `field:"countUp"` // 连续上线次数 + CountDown uint32 `field:"countDown"` // 连续离线次数 + IsUp bool `field:"isUp"` // 是否在线 CreatedAt uint64 `field:"createdAt"` // 创建时间 Version uint64 `field:"version"` // 版本号 State uint8 `field:"state"` // 状态 @@ -42,6 +46,10 @@ type NSRecordOperator struct { Ttl any // TTL(秒) Weight any // 权重 RouteIds any // 线路 + HealthCheck any // 健康检查配置 + CountUp any // 连续上线次数 + CountDown any // 连续离线次数 + IsUp any // 是否在线 CreatedAt any // 创建时间 Version any // 版本号 State any // 状态