فهرست منبع

refactor(webForwarding): 将端口字段类型从 int 改为 string

- 在 API 和内部服务中将 WebForwarding 的 Port 字段类型从 int 改为 string
- 移除了不必要的类型转换操作,简化了代码逻辑- 这个改动可以减少在处理端口数据时出现的错误,并提高系统的稳定性
fusu 1 ماه پیش
والد
کامیت
926e2ac58b
2فایلهای تغییر یافته به همراه8 افزوده شده و 10 حذف شده
  1. 1 1
      api/v1/webForwarding.go
  2. 7 9
      internal/service/webforwarding.go

+ 1 - 1
api/v1/webForwarding.go

@@ -33,7 +33,7 @@ type WebForwardingDataRequest struct {
 	Id                 int    `form:"id" json:"id"`
 	WafWebId           int    `form:"waf_web_id" json:"waf_web_id"`
 	Tag                string `form:"tag" json:"tag"`
-	Port               int    `form:"port" json:"port" binding:"required"`
+	Port               string    `form:"port" json:"port" binding:"required"`
 	Domain             string `form:"domain" json:"domain"`
 	CustomHost         string `form:"custom_host" json:"custom_host"`
 	WafGatewayGroupId  int    `form:"waf_gateway_group_id" json:"waf_gateway_group_id"`

+ 7 - 9
internal/service/webforwarding.go

@@ -7,7 +7,6 @@ import (
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	"github.com/go-nunu/nunu-layout-advanced/internal/model"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
-	"github.com/spf13/cast"
 	"golang.org/x/sync/errgroup"
 	"strconv"
 	"strings"
@@ -77,7 +76,6 @@ func (s *webForwardingService) require(ctx context.Context,req v1.GlobalRequire)
 func (s *webForwardingService) GetWebForwarding(ctx context.Context, req v1.GetForwardingRequest) (v1.WebForwardingDataRequest, error) {
 	var webForwarding model.WebForwarding
 	var backend model.WebForwardingRule
-	var err error
 	g, gCtx := errgroup.WithContext(ctx)
 	g.Go(func() error {
 		res, e := s.webForwardingRepository.GetWebForwarding(gCtx, int64(req.Id))
@@ -106,15 +104,11 @@ func (s *webForwardingService) GetWebForwarding(ctx context.Context, req v1.GetF
 		return v1.WebForwardingDataRequest{}, err
 	}
 
-	portInt, err := cast.ToIntE(webForwarding.Port)
-	if err != nil {
-		return v1.WebForwardingDataRequest{}, err
-	}
 	return v1.WebForwardingDataRequest{
 		Id:                  webForwarding.Id,
 		WafWebId:            webForwarding.WafWebId,
 		Tag:                 webForwarding.Tag,
-		Port:                portInt,
+		Port:                webForwarding.Port,
 		Domain:              webForwarding.Domain,
 		CustomHost:          webForwarding.CustomHost,
 		WafWebLimitId:      webForwarding.WebLimitRuleId,
@@ -189,7 +183,7 @@ func (s *webForwardingService) buildWebForwardingModel(req *v1.WebForwardingData
 		HostId: 			require.HostId,
 		WafWebId:           ruleId,
 		Tag:                require.Tag,
-		Port:               strconv.Itoa(req.Port),
+		Port:               req.Port,
 		Domain:             req.Domain,
 		CustomHost:         req.CustomHost,
 		WafGatewayGroupId:  require.WafGatewayGroupId,
@@ -242,13 +236,17 @@ func (s *webForwardingService) prepareWafData(ctx context.Context, req *v1.WebFo
 	allowIpListStr := strings.Join(req.WebForwardingData.AllowIpList, "\n")
 	denyIpListStr := strings.Join(req.WebForwardingData.DenyIpList, "\n")
 
+	PortInt, err := strconv.Atoi(req.WebForwardingData.Port)
+	if err != nil {
+		return v1.GlobalRequire{}, nil, err
+	}
 	// 3. 创建用于构建 WAF 表单的数据结构
 	formDataBase := v1.WebForwardingDataSend{
 		Tag:                 require.Tag,
 		WafWebId:            req.WebForwardingData.WafWebId,
 		WafGatewayGroupId:   require.WafGatewayGroupId,
 		WafWebLimitId:   require.LimitRuleId,
-		Port:                req.WebForwardingData.Port,
+		Port:                PortInt,
 		Domain:              req.WebForwardingData.Domain,
 		CustomHost:          req.WebForwardingData.CustomHost,
 		CcCount:             req.WebForwardingData.CcCount,