Bläddra i källkod

refactor(internal): 优化网关组和网关组 IP 查询功能

- 在网关组查询中添加字符串修剪和使用 CONCAT 优化 SQL 查询
- 修改网关组 IP 查询参数,将 Name 改为 Ip
- 在网关组 IP 查询中添加字符串修剪和使用 CONCAT 优化 SQL 查询
fusu 1 månad sedan
förälder
incheckning
4f9f35848e

+ 1 - 1
api/v1/gateWayGroupIp.go

@@ -17,7 +17,7 @@ type DeleteGateWayGroupIpRequest struct {
 	Id int `json:"id" form:"id" binding:"required"`
 }
 type SearchGatewayGroupIpParams struct {
-	Name     string `form:"name" json:"name"`
+	Ip     string `form:"ip" json:"ip"`
 	GatewayGroupId   int	`form:"gatewayGroupId" json:"gatewayGroupId"`
 	Operator int	`form:"operator" json:"operator"`
 	Current  int	`form:"current" json:"current" default:"1"`

+ 4 - 1
internal/repository/gatewaygroup.go

@@ -8,6 +8,7 @@ import (
 	"github.com/go-nunu/nunu-layout-advanced/internal/model"
 	"gorm.io/gorm"
 	"math"
+	"strings"
 )
 
 type GatewayGroupRepository interface {
@@ -107,8 +108,10 @@ func (r *gatewayGroupRepository) GetGatewayGroupList(ctx context.Context,req v1.
 	query := r.db.WithContext(ctx).Model(&model.GatewayGroup{})
 
 	if  req.Name != "" {
+		// 去除后所有的空白字符(包括空格、制表符\t、换行符等)
+		trimmedName := strings.TrimSpace(req.Name)
 		// 使用 LIKE 进行模糊匹配
-		query = query.Where("name LIKE ?", fmt.Sprintf("%%%s%%", req.Name))
+		query = query.Where("name LIKE CONCAT('%', ?, '%')", trimmedName)
 	}
 	// 如果 HostId 被提供了,添加一个精确匹配条件
 	if req.HostId != 0 {

+ 4 - 4
internal/repository/gatewaygroupip.go

@@ -2,9 +2,9 @@ package repository
 
 import (
 	"context"
-	"fmt"
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	"math"
+	"strings"
 
 	"github.com/go-nunu/nunu-layout-advanced/internal/model"
 )
@@ -91,10 +91,10 @@ func (r *gateWayGroupIpRepository) GetGatewayGroupIpList(ctx context.Context,req
 	var total int64
 
 	query := r.db.WithContext(ctx).Model(&model.GateWayGroupIp{})
-
-	if  req.Name != "" {
+	if  req.Ip != "" {
+		trimmedName := strings.TrimSpace(req.Ip)
 		// 使用 LIKE 进行模糊匹配
-		query = query.Where("name LIKE ?", fmt.Sprintf("%%%s%%", req.Name))
+		query = query.Where("ip LIKE CONCAT('%', ?, '%')", trimmedName)
 	}
 
 	// 如果 RuleId 被提供了