mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-03 06:40:26 +08:00
优化集群列表性能
This commit is contained in:
2
go.mod
2
go.mod
@@ -13,7 +13,7 @@ require (
|
||||
github.com/go-acme/lego/v4 v4.10.2
|
||||
github.com/go-sql-driver/mysql v1.7.0
|
||||
github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible
|
||||
github.com/iwind/TeaGo v0.0.0-20230304012706-c1f4a4e27470
|
||||
github.com/iwind/TeaGo v0.0.0-20230623080147-cd1e53b4915f
|
||||
github.com/iwind/gosock v0.0.0-20220505115348-f88412125a62
|
||||
github.com/miekg/dns v1.1.50
|
||||
github.com/mozillazg/go-pinyin v0.18.0
|
||||
|
||||
2
go.sum
2
go.sum
@@ -83,6 +83,8 @@ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpO
|
||||
github.com/iwind/TeaGo v0.0.0-20210411134150-ddf57e240c2f/go.mod h1:KU4mS7QNiZ7QWEuDBk1zw0/Q2LrAPZv3tycEFBsuUwc=
|
||||
github.com/iwind/TeaGo v0.0.0-20230304012706-c1f4a4e27470 h1:TuRxvKRv9PxKVijWOkUnZm5TeanQqWGUJyPx9u6cra4=
|
||||
github.com/iwind/TeaGo v0.0.0-20230304012706-c1f4a4e27470/go.mod h1:fi/Pq+/5m2HZoseM+39dMF57ANXRt6w4PkGu3NXPc5s=
|
||||
github.com/iwind/TeaGo v0.0.0-20230623080147-cd1e53b4915f h1:xo6XmXLtveKcwcZAXV6VMxkWNzy/2dStfHEnyowsGAE=
|
||||
github.com/iwind/TeaGo v0.0.0-20230623080147-cd1e53b4915f/go.mod h1:fi/Pq+/5m2HZoseM+39dMF57ANXRt6w4PkGu3NXPc5s=
|
||||
github.com/iwind/gosock v0.0.0-20220505115348-f88412125a62 h1:HJH6RDheAY156DnIfJSD/bEvqyXzsZuE2gzs8PuUjoo=
|
||||
github.com/iwind/gosock v0.0.0-20220505115348-f88412125a62/go.mod h1:H5Q7SXwbx3a97ecJkaS2sD77gspzE7HFUafBO0peEyA=
|
||||
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
|
||||
|
||||
@@ -262,19 +262,40 @@ func (this *NodeClusterDAO) CountAllEnabledClusters(tx *dbs.Tx, keyword string)
|
||||
|
||||
// ListEnabledClusters 列出单页集群
|
||||
func (this *NodeClusterDAO) ListEnabledClusters(tx *dbs.Tx, keyword string, offset, size int64) (result []*NodeCluster, err error) {
|
||||
query := this.Query(tx).
|
||||
var query = this.Query(tx).
|
||||
State(NodeClusterStateEnabled)
|
||||
if len(keyword) > 0 {
|
||||
query.Where("(name LIKE :keyword OR dnsName like :keyword OR (dnsDomainId > 0 AND dnsDomainId IN (SELECT id FROM "+dns.SharedDNSDomainDAO.Table+" WHERE name LIKE :keyword AND state=1)))").
|
||||
Param("keyword", dbutils.QuoteLike(keyword))
|
||||
}
|
||||
_, err = query.
|
||||
Result(
|
||||
NodeClusterFieldId,
|
||||
NodeClusterFieldName,
|
||||
NodeClusterFieldIsOn,
|
||||
NodeClusterFieldIsPinned,
|
||||
NodeClusterFieldInstallDir,
|
||||
NodeClusterFieldHttpFirewallPolicyId,
|
||||
NodeClusterFieldAdminId,
|
||||
NodeClusterFieldIsOn,
|
||||
NodeClusterFieldIsAD,
|
||||
NodeClusterFieldUserId,
|
||||
NodeClusterFieldDnsName,
|
||||
NodeClusterFieldDnsDomainId,
|
||||
NodeClusterFieldDns,
|
||||
NodeClusterFieldCreatedAt,
|
||||
NodeClusterFieldUniqueId,
|
||||
NodeClusterFieldSecret,
|
||||
NodeClusterFieldGrantId,
|
||||
NodeClusterFieldTimeZone,
|
||||
).
|
||||
Offset(offset).
|
||||
Limit(size).
|
||||
Slice(&result).
|
||||
Desc("isPinned").
|
||||
DescPk().
|
||||
FindAll()
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,49 @@ package models
|
||||
|
||||
import "github.com/iwind/TeaGo/dbs"
|
||||
|
||||
const (
|
||||
NodeClusterFieldId dbs.FieldName = "id" // ID
|
||||
NodeClusterFieldAdminId dbs.FieldName = "adminId" // 管理员ID
|
||||
NodeClusterFieldUserId dbs.FieldName = "userId" // 用户ID
|
||||
NodeClusterFieldIsOn dbs.FieldName = "isOn" // 是否启用
|
||||
NodeClusterFieldName dbs.FieldName = "name" // 名称
|
||||
NodeClusterFieldUseAllAPINodes dbs.FieldName = "useAllAPINodes" // 是否使用所有API节点
|
||||
NodeClusterFieldApiNodes dbs.FieldName = "apiNodes" // 使用的API节点
|
||||
NodeClusterFieldInstallDir dbs.FieldName = "installDir" // 安装目录
|
||||
NodeClusterFieldOrder dbs.FieldName = "order" // 排序
|
||||
NodeClusterFieldCreatedAt dbs.FieldName = "createdAt" // 创建时间
|
||||
NodeClusterFieldGrantId dbs.FieldName = "grantId" // 默认认证方式
|
||||
NodeClusterFieldSshParams dbs.FieldName = "sshParams" // SSH默认参数
|
||||
NodeClusterFieldState dbs.FieldName = "state" // 状态
|
||||
NodeClusterFieldAutoRegister dbs.FieldName = "autoRegister" // 是否开启自动注册
|
||||
NodeClusterFieldUniqueId dbs.FieldName = "uniqueId" // 唯一ID
|
||||
NodeClusterFieldSecret dbs.FieldName = "secret" // 密钥
|
||||
NodeClusterFieldHealthCheck dbs.FieldName = "healthCheck" // 健康检查
|
||||
NodeClusterFieldDnsName dbs.FieldName = "dnsName" // DNS名称
|
||||
NodeClusterFieldDnsDomainId dbs.FieldName = "dnsDomainId" // 域名ID
|
||||
NodeClusterFieldDns dbs.FieldName = "dns" // DNS配置
|
||||
NodeClusterFieldToa dbs.FieldName = "toa" // TOA配置
|
||||
NodeClusterFieldCachePolicyId dbs.FieldName = "cachePolicyId" // 缓存策略ID
|
||||
NodeClusterFieldHttpFirewallPolicyId dbs.FieldName = "httpFirewallPolicyId" // WAF策略ID
|
||||
NodeClusterFieldAccessLog dbs.FieldName = "accessLog" // 访问日志设置
|
||||
NodeClusterFieldSystemServices dbs.FieldName = "systemServices" // 系统服务设置
|
||||
NodeClusterFieldTimeZone dbs.FieldName = "timeZone" // 时区
|
||||
NodeClusterFieldNodeMaxThreads dbs.FieldName = "nodeMaxThreads" // 节点最大线程数
|
||||
NodeClusterFieldDdosProtection dbs.FieldName = "ddosProtection" // DDoS防护设置
|
||||
NodeClusterFieldAutoOpenPorts dbs.FieldName = "autoOpenPorts" // 是否自动尝试开放端口
|
||||
NodeClusterFieldIsPinned dbs.FieldName = "isPinned" // 是否置顶
|
||||
NodeClusterFieldWebp dbs.FieldName = "webp" // WebP设置
|
||||
NodeClusterFieldUam dbs.FieldName = "uam" // UAM设置
|
||||
NodeClusterFieldClock dbs.FieldName = "clock" // 时钟配置
|
||||
NodeClusterFieldGlobalServerConfig dbs.FieldName = "globalServerConfig" // 全局服务配置
|
||||
NodeClusterFieldAutoRemoteStart dbs.FieldName = "autoRemoteStart" // 自动远程启动
|
||||
NodeClusterFieldAutoInstallNftables dbs.FieldName = "autoInstallNftables" // 自动安装nftables
|
||||
NodeClusterFieldIsAD dbs.FieldName = "isAD" // 是否为高防集群
|
||||
NodeClusterFieldHttpPages dbs.FieldName = "httpPages" // 自定义页面设置
|
||||
NodeClusterFieldCc dbs.FieldName = "cc" // CC设置
|
||||
NodeClusterFieldHttp3 dbs.FieldName = "http3" // HTTP3设置
|
||||
)
|
||||
|
||||
// NodeCluster 节点集群
|
||||
type NodeCluster struct {
|
||||
Id uint32 `field:"id"` // ID
|
||||
|
||||
Reference in New Issue
Block a user