package web import ( "context" "fmt" 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/service/api/waf/common" ) // SaveToDatabase 保存到数据库 func (s *AidedWebService) SaveToDatabase(ctx context.Context, req *v1.WebForwardingRequest, require common.RequireResponse, webId int64, cdnOriginIds map[string]int64) (int, error) { webModel := s.BuildWebForwardingModel(&req.WebForwardingData, int(webId), require) id, err := s.webForwardingRepository.AddWebForwarding(ctx, webModel) if err != nil { return 0, fmt.Errorf("添加Web转发记录失败: %w", err) } webRuleModel := s.BuildWebRuleModel(&req.WebForwardingData, require, id, cdnOriginIds) if _, err = s.webForwardingRepository.AddWebForwardingIps(ctx, *webRuleModel); err != nil { return 0, fmt.Errorf("添加Web转发规则失败: %w", err) } return id, nil } // UpdateDatabaseRecords 更新数据库记录 func (s *AidedWebService) UpdateDatabaseRecords(ctx context.Context, req *v1.WebForwardingRequest, require common.RequireResponse, ipData *model.WebForwardingRule) error { webModel := s.BuildWebForwardingModel(&req.WebForwardingData, req.WebForwardingData.CdnWebId, require) webModel.Id = req.WebForwardingData.Id if err := s.webForwardingRepository.EditWebForwarding(ctx, webModel); err != nil { return fmt.Errorf("更新Web转发记录失败: %w", err) } webRuleModel := s.BuildWebRuleModel(&req.WebForwardingData, require, req.WebForwardingData.Id, ipData.CdnOriginIds) if err := s.webForwardingRepository.EditWebForwardingIps(ctx, *webRuleModel); err != nil { return fmt.Errorf("更新Web转发规则失败: %w", err) } return nil } // CleanupDatabaseRecords 清理数据库记录 func (s *AidedWebService) CleanupDatabaseRecords(ctx context.Context, id int) error { if err := s.webForwardingRepository.DeleteWebForwarding(ctx, int64(id)); err != nil { return fmt.Errorf("删除Web转发记录失败: %w", err) } if err := s.webForwardingRepository.DeleteWebForwardingIpsById(ctx, id); err != nil { return fmt.Errorf("删除Web转发规则失败: %w", err) } return nil }