mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 07:50:25 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			152 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
 | 
						|
 | 
						|
package services
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"github.com/TeaOSLab/EdgeAPI/internal/db/models/regions"
 | 
						|
	"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
 | 
						|
)
 | 
						|
 | 
						|
// RegionProviderService ISP相关服务
 | 
						|
type RegionProviderService struct {
 | 
						|
	BaseService
 | 
						|
}
 | 
						|
 | 
						|
// FindAllEnabledRegionProviders 查找所有ISP
 | 
						|
// Deprecated
 | 
						|
func (this *RegionProviderService) FindAllEnabledRegionProviders(ctx context.Context, req *pb.FindAllEnabledRegionProvidersRequest) (*pb.FindAllEnabledRegionProvidersResponse, error) {
 | 
						|
	_, _, err := this.ValidateNodeId(ctx)
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
 | 
						|
	var tx = this.NullTx()
 | 
						|
	providers, err := regions.SharedRegionProviderDAO.FindAllEnabledProviders(tx)
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
 | 
						|
	var pbProviders = []*pb.RegionProvider{}
 | 
						|
	for _, provider := range providers {
 | 
						|
		pbProviders = append(pbProviders, &pb.RegionProvider{
 | 
						|
			Id:          int64(provider.ValueId),
 | 
						|
			Name:        provider.Name,
 | 
						|
			Codes:       provider.DecodeCodes(),
 | 
						|
			CustomName:  provider.CustomName,
 | 
						|
			CustomCodes: provider.DecodeCustomCodes(),
 | 
						|
			DisplayName: provider.DisplayName(),
 | 
						|
		})
 | 
						|
	}
 | 
						|
 | 
						|
	return &pb.FindAllEnabledRegionProvidersResponse{
 | 
						|
		RegionProviders: pbProviders,
 | 
						|
	}, nil
 | 
						|
}
 | 
						|
 | 
						|
// FindEnabledRegionProvider 查找单个ISP信息
 | 
						|
// Deprecated
 | 
						|
func (this *RegionProviderService) FindEnabledRegionProvider(ctx context.Context, req *pb.FindEnabledRegionProviderRequest) (*pb.FindEnabledRegionProviderResponse, error) {
 | 
						|
	_, _, err := this.ValidateNodeId(ctx)
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
 | 
						|
	var tx = this.NullTx()
 | 
						|
	provider, err := regions.SharedRegionProviderDAO.FindEnabledRegionProvider(tx, req.RegionProviderId)
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
	if provider == nil {
 | 
						|
		return &pb.FindEnabledRegionProviderResponse{
 | 
						|
			RegionProvider: nil,
 | 
						|
		}, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return &pb.FindEnabledRegionProviderResponse{
 | 
						|
		RegionProvider: &pb.RegionProvider{
 | 
						|
			Id:          int64(provider.ValueId),
 | 
						|
			Name:        provider.Name,
 | 
						|
			Codes:       provider.DecodeCodes(),
 | 
						|
			CustomName:  provider.CustomName,
 | 
						|
			CustomCodes: provider.DecodeCustomCodes(),
 | 
						|
			DisplayName: provider.DisplayName(),
 | 
						|
		},
 | 
						|
	}, nil
 | 
						|
}
 | 
						|
 | 
						|
// FindAllRegionProviders 查找所有ISP
 | 
						|
func (this *RegionProviderService) FindAllRegionProviders(ctx context.Context, req *pb.FindAllRegionProvidersRequest) (*pb.FindAllRegionProvidersResponse, error) {
 | 
						|
	_, _, err := this.ValidateNodeId(ctx)
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
 | 
						|
	var tx = this.NullTx()
 | 
						|
	providers, err := regions.SharedRegionProviderDAO.FindAllEnabledProviders(tx)
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
 | 
						|
	var pbProviders = []*pb.RegionProvider{}
 | 
						|
	for _, provider := range providers {
 | 
						|
		pbProviders = append(pbProviders, &pb.RegionProvider{
 | 
						|
			Id:          int64(provider.ValueId),
 | 
						|
			Name:        provider.Name,
 | 
						|
			Codes:       provider.DecodeCodes(),
 | 
						|
			CustomName:  provider.CustomName,
 | 
						|
			CustomCodes: provider.DecodeCustomCodes(),
 | 
						|
			DisplayName: provider.DisplayName(),
 | 
						|
		})
 | 
						|
	}
 | 
						|
 | 
						|
	return &pb.FindAllRegionProvidersResponse{
 | 
						|
		RegionProviders: pbProviders,
 | 
						|
	}, nil
 | 
						|
}
 | 
						|
 | 
						|
// FindRegionProvider 查找单个ISP信息
 | 
						|
func (this *RegionProviderService) FindRegionProvider(ctx context.Context, req *pb.FindRegionProviderRequest) (*pb.FindRegionProviderResponse, error) {
 | 
						|
	_, _, err := this.ValidateNodeId(ctx)
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
 | 
						|
	var tx = this.NullTx()
 | 
						|
	provider, err := regions.SharedRegionProviderDAO.FindEnabledRegionProvider(tx, req.RegionProviderId)
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
	if provider == nil {
 | 
						|
		return &pb.FindRegionProviderResponse{
 | 
						|
			RegionProvider: nil,
 | 
						|
		}, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return &pb.FindRegionProviderResponse{
 | 
						|
		RegionProvider: &pb.RegionProvider{
 | 
						|
			Id:          int64(provider.ValueId),
 | 
						|
			Name:        provider.Name,
 | 
						|
			Codes:       provider.DecodeCodes(),
 | 
						|
			CustomName:  provider.CustomName,
 | 
						|
			CustomCodes: provider.DecodeCustomCodes(),
 | 
						|
			DisplayName: provider.DisplayName(),
 | 
						|
		},
 | 
						|
	}, nil
 | 
						|
}
 | 
						|
 | 
						|
// UpdateRegionProviderCustom 修改城市定制信息
 | 
						|
func (this *RegionProviderService) UpdateRegionProviderCustom(ctx context.Context, req *pb.UpdateRegionProviderCustomRequest) (*pb.RPCSuccess, error) {
 | 
						|
	_, err := this.ValidateAdmin(ctx)
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
 | 
						|
	var tx = this.NullTx()
 | 
						|
	err = regions.SharedRegionProviderDAO.UpdateProviderCustom(tx, req.RegionProviderId, req.CustomName, req.CustomCodes)
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
	return this.Success()
 | 
						|
}
 |