Просмотр исходного кода

fix(forwarding): 修复删除规则后未同步数据库问题

- 修改了 TCP、UDP 和 Web转发的删除逻辑
- 增加了从数据库获取 waf_id 并删除数据库记录的步骤
- 优化了 API 请求结构,统一使用 id 字段
fusu 1 месяц назад
Родитель
Сommit
353ad9932a

+ 1 - 1
api/v1/tcpForwarding.go

@@ -41,7 +41,7 @@ type TcpForwardingDataRequest struct {
 }
 
 type DeleteTcpForwardingRequest struct {
-	WafTcpId int `form:"waf_tcp_id" json:"waf_tcp_id" binding:"required"`
+	Id   int `form:"id" json:"id" binding:"required"`
 }
 
 type TcpForwardingRequest struct {

+ 1 - 1
api/v1/udpForwarding.go

@@ -43,7 +43,7 @@ type UdpForwardingDataRequest struct {
 }
 
 type DeleteUdpForwardingRequest struct {
-	WafUdpId int `form:"waf_udp_id" json:"waf_udp_id" binding:"required"`
+	Id   int `form:"id" json:"id" binding:"required"`
 }
 
 type UdpForwardingRequest struct {

+ 1 - 1
api/v1/webForwarding.go

@@ -59,7 +59,7 @@ type WebForwardingDataRequest struct {
 }
 
 type DeleteWebForwardingRequest struct {
-	WafWebId int `form:"waf_web_id" json:"waf_web_id" binding:"required"`
+	Id   int `form:"id" json:"id" binding:"required"`
 }
 
 type WebForwardingRequest struct {

+ 2 - 0
config/local.yml

@@ -47,6 +47,8 @@ log:
 crawler:
   username: "admin"
   password: "mr7c6r61jIRLGhcnT5j9"
+#  Url: "http://api.hongxingdun.net:8700/"
+#  keyUrl: "http://api.hongxingdun.net:13350/sdk/key?app_name="
   Url: "http://115.238.186.121:8700/"
   keyUrl: "http://115.238.186.121:13350/sdk/key?app_name="
 

+ 1 - 1
internal/handler/tcpforwarding.go

@@ -78,7 +78,7 @@ func (h *TcpforwardingHandler) DeleteTcpForwarding(ctx *gin.Context) {
 		return
 	}
 	defaults.SetDefaults(req)
-	 err := h.tcpforwardingService.DeleteTcpForwarding(ctx, req.WafTcpId)
+	 err := h.tcpforwardingService.DeleteTcpForwarding(ctx, req.Id)
 	if err != nil {
 		v1.HandleError(ctx, http.StatusInternalServerError, err, err.Error())
 		return

+ 1 - 1
internal/handler/udpforwarding.go

@@ -78,7 +78,7 @@ func (h *UdpForWardingHandler) DeleteUdpForWarding(ctx *gin.Context) {
 		return
 	}
 	defaults.SetDefaults(req)
-	 err := h.udpForWardingService.DeleteUdpForwarding(ctx, req.WafUdpId)
+	 err := h.udpForWardingService.DeleteUdpForwarding(ctx, req.Id)
 	if err != nil {
 		v1.HandleError(ctx, http.StatusInternalServerError, err, err.Error())
 		return

+ 1 - 1
internal/handler/webforwarding.go

@@ -78,7 +78,7 @@ func (h *WebForwardingHandler) DeleteWebForwarding(ctx *gin.Context) {
 		return
 	}
 	defaults.SetDefaults(req)
-	 err := h.webForwardingService.DeleteWebForwarding(ctx, req.WafWebId)
+	 err := h.webForwardingService.DeleteWebForwarding(ctx, req.Id)
 	if err != nil {
 		v1.HandleError(ctx, http.StatusInternalServerError, err, err.Error())
 		return

+ 12 - 3
internal/service/tcpforwarding.go

@@ -15,7 +15,7 @@ type TcpforwardingService interface {
 	GetTcpforwarding(ctx context.Context, req v1.GetForwardingRequest) (v1.TcpForwardingDataRequest, error)
 	AddTcpForwarding(ctx context.Context, req *v1.TcpForwardingRequest)  error
 	EditTcpForwarding(ctx context.Context, req *v1.TcpForwardingRequest)  error
-	DeleteTcpForwarding(ctx context.Context, wafTcpId int) error
+	DeleteTcpForwarding(ctx context.Context, Id int) error
 }
 
 func NewTcpforwardingService(
@@ -260,10 +260,19 @@ func (s *tcpforwardingService) EditTcpForwarding(ctx context.Context, req *v1.Tc
 	return  nil
 }
 
-func (s *tcpforwardingService) DeleteTcpForwarding(ctx context.Context, wafTcpId int)  error {
-	_, err := s.crawler.DeleteRule(ctx, wafTcpId, "admin/delete/waf_tcp?page=1&__pageSize=10&__sort=waf_tcp_id&__sort_type=desc")
+func (s *tcpforwardingService) DeleteTcpForwarding(ctx context.Context, Id int)  error {
+	wafTcpId, err := s.tcpforwardingRepository.GetTcpforwardingWafTcpIdById(ctx, Id)
+	if err != nil {
+		return  err
+	}
+	_, err = s.crawler.DeleteRule(ctx, wafTcpId, "admin/delete/waf_tcp?page=1&__pageSize=10&__sort=waf_tcp_id&__sort_type=desc")
 	if err != nil {
 		return err
 	}
+
+	if err = s.tcpforwardingRepository.DeleteTcpforwarding(ctx, int64(Id)); err != nil {
+		return  err
+	}
+
 	return  nil
 }

+ 10 - 3
internal/service/udpforwarding.go

@@ -15,7 +15,7 @@ type UdpForWardingService interface {
 	GetUdpForWarding(ctx context.Context,req v1.GetForwardingRequest) (v1.UdpForwardingDataRequest, error)
 	AddUdpForwarding(ctx context.Context, req *v1.UdpForwardingRequest) error
 	EditUdpForwarding(ctx context.Context, req *v1.UdpForwardingRequest) error
-	DeleteUdpForwarding(ctx context.Context, wafUdpId int) error
+	DeleteUdpForwarding(ctx context.Context, Id int) error
 }
 
 func NewUdpForWardingService(
@@ -270,10 +270,17 @@ func (s *udpForWardingService) EditUdpForwarding(ctx context.Context, req *v1.Ud
 	return nil
 }
 
-func (s *udpForWardingService) DeleteUdpForwarding(ctx context.Context, wafUdpId int) error {
-	_, err := s.crawler.DeleteRule(ctx, wafUdpId, "admin/delete/waf_udp?page=1&__pageSize=10&__sort=waf_udp_id&__sort_type=desc")
+func (s *udpForWardingService) DeleteUdpForwarding(ctx context.Context, Id int) error {
+	wafUdpId, err := s.udpForWardingRepository.GetUdpForwardingWafUdpIdById(ctx, Id)
 	if err != nil {
 		return err
 	}
+	_, err = s.crawler.DeleteRule(ctx, wafUdpId, "admin/delete/waf_udp?page=1&__pageSize=10&__sort=waf_udp_id&__sort_type=desc")
+	if err != nil {
+		return err
+	}
+	if err = s.udpForWardingRepository.DeleteUdpForwarding(ctx, int64(Id)); err != nil {
+		return err
+	}
 	return nil
 }

+ 10 - 3
internal/service/webforwarding.go

@@ -17,7 +17,7 @@ type WebForwardingService interface {
 	GetWebForwarding(ctx context.Context, req v1.GetForwardingRequest) (v1.WebForwardingDataRequest, error)
 	AddWebForwarding(ctx context.Context, req *v1.WebForwardingRequest) error
 	EditWebForwarding(ctx context.Context, req *v1.WebForwardingRequest) error
-	DeleteWebForwarding(ctx context.Context, wafWebId int) error
+	DeleteWebForwarding(ctx context.Context, Id int) error
 }
 
 func NewWebForwardingService(
@@ -331,10 +331,17 @@ func (s *webForwardingService) EditWebForwarding(ctx context.Context, req *v1.We
 	return nil
 }
 
-func (s *webForwardingService) DeleteWebForwarding(ctx context.Context, wafWebId int) error {
-	_, err := s.crawler.DeleteRule(ctx, wafWebId, "admin/delete/waf_web?page=1&__pageSize=10&__sort=waf_web_id&__sort_type=desc")
+func (s *webForwardingService) DeleteWebForwarding(ctx context.Context, Id int) error {
+	wafWebId, err := s.webForwardingRepository.GetWebForwardingWafWebIdById(ctx, Id)
 	if err != nil {
 		return err
 	}
+	_, err = s.crawler.DeleteRule(ctx, wafWebId, "admin/delete/waf_web?page=1&__pageSize=10&__sort=waf_web_id&__sort_type=desc")
+	if err != nil {
+		return err
+	}
+	if err = s.webForwardingRepository.DeleteWebForwarding(ctx, int64(Id)); err != nil {
+		return err
+	}
 	return nil
 }