package service import ( "context" "fmt" v1 "github.com/go-nunu/nunu-layout-advanced/api/v1" "github.com/go-nunu/nunu-layout-advanced/internal/repository" ) type CcService interface { GetCcList(ctx context.Context, req v1.CCListRequest) ([]v1.CCListResponse, error) EditCcState(ctx context.Context, req []v1.CCStateRequest) error } func NewCcService( service *Service, ccRepository repository.CcRepository, webForwardingRep repository.WebForwardingRepository, ) CcService { return &ccService{ Service: service, ccRepository: ccRepository, webForwardingRep: webForwardingRep, } } type ccService struct { *Service ccRepository repository.CcRepository webForwardingRep repository.WebForwardingRepository } func (s *ccService) GetCcList(ctx context.Context, req v1.CCListRequest) ([]v1.CCListResponse, error) { webData, err := s.webForwardingRep.GetWebForwarding(ctx, req.WebId) if err != nil { return nil, err } if webData.CdnWebId == 0 { return nil, fmt.Errorf("网站不存在") } ccList, err := s.ccRepository.GetCcList(ctx, int64(webData.CdnWebId)) if err != nil { return nil, err } return ccList, nil } func (s *ccService) EditCcState(ctx context.Context, req []v1.CCStateRequest) error { for _, v := range req { webData, err := s.webForwardingRep.GetWebForwarding(ctx, v.WebId) if err != nil { return err } if webData.CdnWebId == 0 { return fmt.Errorf("网站不存在") } err = s.ccRepository.EditCcState(ctx, int64(webData.CdnWebId), v.Ip) if err != nil { return err } } return nil }