From 2484cd4ae6aa8a797fbc3724dc0fb322a7a8d82b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Sun, 17 Jul 2022 11:43:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E9=80=9A=E8=BF=87ID=E6=9F=A5?= =?UTF-8?q?=E6=89=BE=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/server_dao.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/db/models/server_dao.go b/internal/db/models/server_dao.go index 77a332d9..ac040d3c 100644 --- a/internal/db/models/server_dao.go +++ b/internal/db/models/server_dao.go @@ -771,8 +771,9 @@ func (this *ServerDAO) CountAllEnabledServersMatch(tx *dbs.Tx, groupId int64, ke } if len(keyword) > 0 { if regexp.MustCompile(`^\d+$`).MatchString(keyword) { - query.Where("(name LIKE :keyword OR serverNames LIKE :keyword OR JSON_CONTAINS(http, :portRange, '$.listen') OR JSON_CONTAINS(https, :portRange, '$.listen') OR JSON_CONTAINS(tcp, :portRange, '$.listen') OR JSON_CONTAINS(tls, :portRange, '$.listen'))"). + query.Where("(id=:serverId OR name LIKE :keyword OR serverNames LIKE :keyword OR JSON_CONTAINS(http, :portRange, '$.listen') OR JSON_CONTAINS(https, :portRange, '$.listen') OR JSON_CONTAINS(tcp, :portRange, '$.listen') OR JSON_CONTAINS(tls, :portRange, '$.listen'))"). Param("portRange", maps.Map{"portRange": keyword}.AsJSON()). + Param("serverId", keyword). Param("keyword", dbutils.QuoteLike(keyword)) } else { query.Where("(name LIKE :keyword OR serverNames LIKE :keyword)"). @@ -825,8 +826,9 @@ func (this *ServerDAO) ListEnabledServersMatch(tx *dbs.Tx, offset int64, size in } if len(keyword) > 0 { if regexp.MustCompile(`^\d+$`).MatchString(keyword) { - query.Where("(name LIKE :keyword OR serverNames LIKE :keyword OR JSON_CONTAINS(http, :portRange, '$.listen') OR JSON_CONTAINS(https, :portRange, '$.listen') OR JSON_CONTAINS(tcp, :portRange, '$.listen') OR JSON_CONTAINS(tls, :portRange, '$.listen'))"). + query.Where("(id=:serverId OR name LIKE :keyword OR serverNames LIKE :keyword OR JSON_CONTAINS(http, :portRange, '$.listen') OR JSON_CONTAINS(https, :portRange, '$.listen') OR JSON_CONTAINS(tcp, :portRange, '$.listen') OR JSON_CONTAINS(tls, :portRange, '$.listen'))"). Param("portRange", string(maps.Map{"portRange": keyword}.AsJSON())). + Param("serverId", keyword). Param("keyword", dbutils.QuoteLike(keyword)) } else { query.Where("(name LIKE :keyword OR serverNames LIKE :keyword)").