123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- package service
- import (
- "context"
- "fmt"
- v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
- "github.com/go-nunu/nunu-layout-advanced/internal/repository"
- "github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
- "time"
- )
- 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 waf.WebForwardingRepository,
- cdn CdnService,
- ) CcService {
- return &ccService{
- Service: service,
- ccRepository: ccRepository,
- webForwardingRep: webForwardingRep,
- cdn: cdn,
- }
- }
- type ccService struct {
- *Service
- ccRepository repository.CcRepository
- webForwardingRep waf.WebForwardingRepository
- cdn CdnService
- }
- 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
- }
- var res []v1.CCListResponse
- for _, v := range ccList {
- res = append(res, v1.CCListResponse{
- Value: v.Value,
- Type: v.Type,
- Reason: v.Reason,
- SourceURL: v.SourceURL,
- SourceUserAgent: v.SourceUserAgent,
- CreatedAt: time.Unix(v.CreatedAt, 0).Format("2006-01-02 15:04:05"),
- ExpiredAt: time.Unix(v.ExpiredAt, 0).Format("2006-01-02 15:04:05"),
- })
- }
- return res, nil
- }
- func (s *ccService) EditCcState(ctx context.Context, req v1.CCStateRequest) error {
- for _, v := range req.Ips {
- webData, err := s.webForwardingRep.GetWebForwarding(ctx, req.WebId)
- if err != nil {
- return err
- }
- if webData.CdnWebId == 0 {
- return fmt.Errorf("网站不存在")
- }
- ccId, err := s.ccRepository.GetCcId(ctx, int64(webData.CdnWebId), v)
- if err != nil {
- return err
- }
- if ccId == 0 {
- return fmt.Errorf("IP不存在")
- }
- err = s.cdn.DelIpItem(ctx, ccId, v, "", "", 2000000000)
- if err != nil {
- return err
- }
- }
- return nil
- }
|