package web import ( "context" "fmt" v1 "github.com/go-nunu/nunu-layout-advanced/api/v1" "github.com/go-nunu/nunu-layout-advanced/internal/model" ) type CdnWeb interface { CreateCdnWebsite(ctx context.Context, formData v1.Website) (int64, error) UpdateCdnConfiguration(ctx context.Context, req *v1.WebForwardingRequest, oldData *model.WebForwarding, tag string, formData v1.Website) error DeleteCdnServer(ctx context.Context, cdnWebId int) error } // CreateCdnWebsite 创建CDN网站 func (s *aidedWebService) CreateCdnWebsite(ctx context.Context, formData v1.Website) (int64, error) { formDataSend, err := s.BulidFormData(ctx, formData) if err != nil { return 0, fmt.Errorf("构建表单数据失败: %w", err) } webId, err := s.cdn.CreateWebsite(ctx, formDataSend) if err != nil { return 0, fmt.Errorf("创建CDN网站失败: %w", err) } return webId, nil } // UpdateCdnConfiguration 更新CDN配置 func (s *aidedWebService) UpdateCdnConfiguration(ctx context.Context, req *v1.WebForwardingRequest, oldData *model.WebForwarding, tag string, formData v1.Website) error { // 修改网站端口、协议或证书 if oldData.Port != req.WebForwardingData.Port || oldData.IsHttps != req.WebForwardingData.IsHttps || oldData.HttpsCert != req.WebForwardingData.HttpsCert || oldData.HttpsKey != req.WebForwardingData.HttpsKey { if err := s.updateWebsiteProtocolAndCert(ctx, req.WebForwardingData.IsHttps, int64(oldData.CdnWebId), formData); err != nil { return err } } // 修改网站域名 if oldData.Domain != req.WebForwardingData.Domain { if err := s.updateWebsiteDomain(ctx, req.WebForwardingData.Domain, int64(oldData.CdnWebId)); err != nil { return err } } // 修改网站名字 if oldData.Comment != req.WebForwardingData.Comment { if err := s.updateWebsiteBasicInfo(ctx, int64(oldData.CdnWebId), tag); err != nil { return err } } return nil } // DeleteCdnServer 删除CDN服务器 func (s *aidedWebService) DeleteCdnServer(ctx context.Context, cdnWebId int) error { if err := s.cdn.DelServer(ctx, int64(cdnWebId)); err != nil { return fmt.Errorf("删除CDN服务器失败: %w", err) } return nil }