cc.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package flexCdn
  2. import (
  3. "context"
  4. v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
  5. "github.com/go-nunu/nunu-layout-advanced/internal/repository"
  6. )
  7. type CcRepository interface {
  8. GetCcList(ctx context.Context, serviceId int64) ([]v1.CCList, error)
  9. GetCcId(ctx context.Context, serviceId int64, ip string) (int64, error)
  10. }
  11. func NewCcRepository(
  12. repository *repository.Repository,
  13. ) CcRepository {
  14. return &ccRepository{
  15. Repository: repository,
  16. }
  17. }
  18. type ccRepository struct {
  19. *repository.Repository
  20. }
  21. func (r *ccRepository) GetCcList(ctx context.Context, serviceId int64) ([]v1.CCList, error) {
  22. var req []v1.CCList
  23. if err := r.DBWithName(ctx,"cdn").Table("cloud_ip_items").Where("sourceServerId = ? AND state = 1", serviceId).Select("value,type,reason,sourceURL,sourceUserAgent,createdAt,expiredAt").Scan(&req).Error; err != nil {
  24. return nil, err
  25. }
  26. return req, nil
  27. }
  28. func (r *ccRepository) GetCcId(ctx context.Context, serviceId int64, ip string) (int64, error) {
  29. var req int64
  30. if err := r.DBWithName(ctx,"cdn").Table("cloud_ip_items").Where("sourceServerId = ? AND value = ? AND state = 1", serviceId, ip).Select("id").Scan(&req).Error; err != nil {
  31. return 0, err
  32. }
  33. return req, nil
  34. }