From 3730f90c62a380d5939c1f35b50f8c1dddf2169a Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Wed, 30 Mar 2022 11:15:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E7=94=A8=E5=9F=9F=E5=90=8D?= =?UTF-8?q?=E6=90=9C=E7=B4=A2DNS=E8=B4=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/dns/dns_provider_dao.go | 14 ++++++++++++-- internal/rpc/services/service_dns_provider.go | 4 ++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/internal/db/models/dns/dns_provider_dao.go b/internal/db/models/dns/dns_provider_dao.go index c64dbe41..7449c062 100644 --- a/internal/db/models/dns/dns_provider_dao.go +++ b/internal/db/models/dns/dns_provider_dao.go @@ -107,23 +107,33 @@ func (this *DNSProviderDAO) UpdateDNSProvider(tx *dbs.Tx, dnsProviderId int64, n } // CountAllEnabledDNSProviders 计算服务商数量 -func (this *DNSProviderDAO) CountAllEnabledDNSProviders(tx *dbs.Tx, adminId int64, userId int64, keyword string) (int64, error) { +func (this *DNSProviderDAO) CountAllEnabledDNSProviders(tx *dbs.Tx, adminId int64, userId int64, keyword string, domain string) (int64, error) { var query = dbutils.NewQuery(tx, this, adminId, userId) if len(keyword) > 0 { query.Where("(name LIKE :keyword)"). Param("keyword", dbutils.QuoteLike(keyword)) } + + if len(domain) > 0 { + query.Where("id IN (SELECT providerId FROM " + SharedDNSDomainDAO.Table + " WHERE state=1 AND name=:domain)") + query.Param("domain", domain) + } + return query.State(DNSProviderStateEnabled). Count() } // ListEnabledDNSProviders 列出单页服务商 -func (this *DNSProviderDAO) ListEnabledDNSProviders(tx *dbs.Tx, adminId int64, userId int64, keyword string, offset int64, size int64) (result []*DNSProvider, err error) { +func (this *DNSProviderDAO) ListEnabledDNSProviders(tx *dbs.Tx, adminId int64, userId int64, keyword string, domain string, offset int64, size int64) (result []*DNSProvider, err error) { var query = dbutils.NewQuery(tx, this, adminId, userId) if len(keyword) > 0 { query.Where("(name LIKE :keyword)"). Param("keyword", dbutils.QuoteLike(keyword)) } + if len(domain) > 0 { + query.Where("id IN (SELECT providerId FROM " + SharedDNSDomainDAO.Table + " WHERE state=1 AND name=:domain)") + query.Param("domain", domain) + } _, err = query. State(DNSProviderStateEnabled). Offset(offset). diff --git a/internal/rpc/services/service_dns_provider.go b/internal/rpc/services/service_dns_provider.go index 897637ba..2ab97583 100644 --- a/internal/rpc/services/service_dns_provider.go +++ b/internal/rpc/services/service_dns_provider.go @@ -59,7 +59,7 @@ func (this *DNSProviderService) CountAllEnabledDNSProviders(ctx context.Context, tx := this.NullTx() - count, err := dns.SharedDNSProviderDAO.CountAllEnabledDNSProviders(tx, req.AdminId, req.UserId, req.Keyword) + count, err := dns.SharedDNSProviderDAO.CountAllEnabledDNSProviders(tx, req.AdminId, req.UserId, req.Keyword, req.Domain) if err != nil { return nil, err } @@ -78,7 +78,7 @@ func (this *DNSProviderService) ListEnabledDNSProviders(ctx context.Context, req tx := this.NullTx() - providers, err := dns.SharedDNSProviderDAO.ListEnabledDNSProviders(tx, req.AdminId, req.UserId, req.Keyword, req.Offset, req.Size) + providers, err := dns.SharedDNSProviderDAO.ListEnabledDNSProviders(tx, req.AdminId, req.UserId, req.Keyword, req.Domain, req.Offset, req.Size) if err != nil { return nil, err }