mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 16:00:24 +08:00 
			
		
		
		
	访问日志增加区域和ISP信息
This commit is contained in:
		
							
								
								
									
										71
									
								
								internal/db/models/region_city_dao.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								internal/db/models/region_city_dao.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	_ "github.com/go-sql-driver/mysql"
 | 
			
		||||
	"github.com/iwind/TeaGo/Tea"
 | 
			
		||||
	"github.com/iwind/TeaGo/dbs"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	RegionCityStateEnabled  = 1 // 已启用
 | 
			
		||||
	RegionCityStateDisabled = 0 // 已禁用
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type RegionCityDAO dbs.DAO
 | 
			
		||||
 | 
			
		||||
func NewRegionCityDAO() *RegionCityDAO {
 | 
			
		||||
	return dbs.NewDAO(&RegionCityDAO{
 | 
			
		||||
		DAOObject: dbs.DAOObject{
 | 
			
		||||
			DB:     Tea.Env,
 | 
			
		||||
			Table:  "edgeRegionCities",
 | 
			
		||||
			Model:  new(RegionCity),
 | 
			
		||||
			PkName: "id",
 | 
			
		||||
		},
 | 
			
		||||
	}).(*RegionCityDAO)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var SharedRegionCityDAO *RegionCityDAO
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	dbs.OnReady(func() {
 | 
			
		||||
		SharedRegionCityDAO = NewRegionCityDAO()
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 启用条目
 | 
			
		||||
func (this *RegionCityDAO) EnableRegionCity(id uint32) error {
 | 
			
		||||
	_, err := this.Query().
 | 
			
		||||
		Pk(id).
 | 
			
		||||
		Set("state", RegionCityStateEnabled).
 | 
			
		||||
		Update()
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 禁用条目
 | 
			
		||||
func (this *RegionCityDAO) DisableRegionCity(id uint32) error {
 | 
			
		||||
	_, err := this.Query().
 | 
			
		||||
		Pk(id).
 | 
			
		||||
		Set("state", RegionCityStateDisabled).
 | 
			
		||||
		Update()
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找启用中的条目
 | 
			
		||||
func (this *RegionCityDAO) FindEnabledRegionCity(id uint32) (*RegionCity, error) {
 | 
			
		||||
	result, err := this.Query().
 | 
			
		||||
		Pk(id).
 | 
			
		||||
		Attr("state", RegionCityStateEnabled).
 | 
			
		||||
		Find()
 | 
			
		||||
	if result == nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return result.(*RegionCity), err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 根据主键查找名称
 | 
			
		||||
func (this *RegionCityDAO) FindRegionCityName(id uint32) (string, error) {
 | 
			
		||||
	return this.Query().
 | 
			
		||||
		Pk(id).
 | 
			
		||||
		Result("name").
 | 
			
		||||
		FindStringCol("")
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										5
									
								
								internal/db/models/region_city_dao_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								internal/db/models/region_city_dao_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	_ "github.com/go-sql-driver/mysql"
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										22
									
								
								internal/db/models/region_city_model.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								internal/db/models/region_city_model.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
type RegionCity struct {
 | 
			
		||||
	Id         uint32 `field:"id"`         // ID
 | 
			
		||||
	ProvinceId uint32 `field:"provinceId"` // 省份ID
 | 
			
		||||
	Name       string `field:"name"`       // 名称
 | 
			
		||||
	Codes      string `field:"codes"`      // 代号
 | 
			
		||||
	State      uint8  `field:"state"`      // 状态
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type RegionCityOperator struct {
 | 
			
		||||
	Id         interface{} // ID
 | 
			
		||||
	ProvinceId interface{} // 省份ID
 | 
			
		||||
	Name       interface{} // 名称
 | 
			
		||||
	Codes      interface{} // 代号
 | 
			
		||||
	State      interface{} // 状态
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewRegionCityOperator() *RegionCityOperator {
 | 
			
		||||
	return &RegionCityOperator{}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								internal/db/models/region_city_model_ext.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								internal/db/models/region_city_model_ext.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
package models
 | 
			
		||||
							
								
								
									
										71
									
								
								internal/db/models/region_country_dao.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								internal/db/models/region_country_dao.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	_ "github.com/go-sql-driver/mysql"
 | 
			
		||||
	"github.com/iwind/TeaGo/Tea"
 | 
			
		||||
	"github.com/iwind/TeaGo/dbs"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	RegionCountryStateEnabled  = 1 // 已启用
 | 
			
		||||
	RegionCountryStateDisabled = 0 // 已禁用
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type RegionCountryDAO dbs.DAO
 | 
			
		||||
 | 
			
		||||
func NewRegionCountryDAO() *RegionCountryDAO {
 | 
			
		||||
	return dbs.NewDAO(&RegionCountryDAO{
 | 
			
		||||
		DAOObject: dbs.DAOObject{
 | 
			
		||||
			DB:     Tea.Env,
 | 
			
		||||
			Table:  "edgeRegionCountries",
 | 
			
		||||
			Model:  new(RegionCountry),
 | 
			
		||||
			PkName: "id",
 | 
			
		||||
		},
 | 
			
		||||
	}).(*RegionCountryDAO)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var SharedRegionCountryDAO *RegionCountryDAO
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	dbs.OnReady(func() {
 | 
			
		||||
		SharedRegionCountryDAO = NewRegionCountryDAO()
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 启用条目
 | 
			
		||||
func (this *RegionCountryDAO) EnableRegionCountry(id uint32) error {
 | 
			
		||||
	_, err := this.Query().
 | 
			
		||||
		Pk(id).
 | 
			
		||||
		Set("state", RegionCountryStateEnabled).
 | 
			
		||||
		Update()
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 禁用条目
 | 
			
		||||
func (this *RegionCountryDAO) DisableRegionCountry(id uint32) error {
 | 
			
		||||
	_, err := this.Query().
 | 
			
		||||
		Pk(id).
 | 
			
		||||
		Set("state", RegionCountryStateDisabled).
 | 
			
		||||
		Update()
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找启用中的条目
 | 
			
		||||
func (this *RegionCountryDAO) FindEnabledRegionCountry(id uint32) (*RegionCountry, error) {
 | 
			
		||||
	result, err := this.Query().
 | 
			
		||||
		Pk(id).
 | 
			
		||||
		Attr("state", RegionCountryStateEnabled).
 | 
			
		||||
		Find()
 | 
			
		||||
	if result == nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return result.(*RegionCountry), err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 根据主键查找名称
 | 
			
		||||
func (this *RegionCountryDAO) FindRegionCountryName(id uint32) (string, error) {
 | 
			
		||||
	return this.Query().
 | 
			
		||||
		Pk(id).
 | 
			
		||||
		Result("name").
 | 
			
		||||
		FindStringCol("")
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										5
									
								
								internal/db/models/region_country_dao_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								internal/db/models/region_country_dao_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	_ "github.com/go-sql-driver/mysql"
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										20
									
								
								internal/db/models/region_country_model.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								internal/db/models/region_country_model.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
type RegionCountry struct {
 | 
			
		||||
	Id    uint32 `field:"id"`    // ID
 | 
			
		||||
	Name  string `field:"name"`  // 名称
 | 
			
		||||
	Codes string `field:"codes"` // 代号
 | 
			
		||||
	State uint8  `field:"state"` // 状态
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type RegionCountryOperator struct {
 | 
			
		||||
	Id    interface{} // ID
 | 
			
		||||
	Name  interface{} // 名称
 | 
			
		||||
	Codes interface{} // 代号
 | 
			
		||||
	State interface{} // 状态
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewRegionCountryOperator() *RegionCountryOperator {
 | 
			
		||||
	return &RegionCountryOperator{}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								internal/db/models/region_country_model_ext.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								internal/db/models/region_country_model_ext.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
package models
 | 
			
		||||
							
								
								
									
										71
									
								
								internal/db/models/region_provider_dao.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								internal/db/models/region_provider_dao.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	_ "github.com/go-sql-driver/mysql"
 | 
			
		||||
	"github.com/iwind/TeaGo/Tea"
 | 
			
		||||
	"github.com/iwind/TeaGo/dbs"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	RegionProviderStateEnabled  = 1 // 已启用
 | 
			
		||||
	RegionProviderStateDisabled = 0 // 已禁用
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type RegionProviderDAO dbs.DAO
 | 
			
		||||
 | 
			
		||||
func NewRegionProviderDAO() *RegionProviderDAO {
 | 
			
		||||
	return dbs.NewDAO(&RegionProviderDAO{
 | 
			
		||||
		DAOObject: dbs.DAOObject{
 | 
			
		||||
			DB:     Tea.Env,
 | 
			
		||||
			Table:  "edgeRegionProviders",
 | 
			
		||||
			Model:  new(RegionProvider),
 | 
			
		||||
			PkName: "id",
 | 
			
		||||
		},
 | 
			
		||||
	}).(*RegionProviderDAO)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var SharedRegionProviderDAO *RegionProviderDAO
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	dbs.OnReady(func() {
 | 
			
		||||
		SharedRegionProviderDAO = NewRegionProviderDAO()
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 启用条目
 | 
			
		||||
func (this *RegionProviderDAO) EnableRegionProvider(id uint32) error {
 | 
			
		||||
	_, err := this.Query().
 | 
			
		||||
		Pk(id).
 | 
			
		||||
		Set("state", RegionProviderStateEnabled).
 | 
			
		||||
		Update()
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 禁用条目
 | 
			
		||||
func (this *RegionProviderDAO) DisableRegionProvider(id uint32) error {
 | 
			
		||||
	_, err := this.Query().
 | 
			
		||||
		Pk(id).
 | 
			
		||||
		Set("state", RegionProviderStateDisabled).
 | 
			
		||||
		Update()
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找启用中的条目
 | 
			
		||||
func (this *RegionProviderDAO) FindEnabledRegionProvider(id uint32) (*RegionProvider, error) {
 | 
			
		||||
	result, err := this.Query().
 | 
			
		||||
		Pk(id).
 | 
			
		||||
		Attr("state", RegionProviderStateEnabled).
 | 
			
		||||
		Find()
 | 
			
		||||
	if result == nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return result.(*RegionProvider), err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 根据主键查找名称
 | 
			
		||||
func (this *RegionProviderDAO) FindRegionProviderName(id uint32) (string, error) {
 | 
			
		||||
	return this.Query().
 | 
			
		||||
		Pk(id).
 | 
			
		||||
		Result("name").
 | 
			
		||||
		FindStringCol("")
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										5
									
								
								internal/db/models/region_provider_dao_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								internal/db/models/region_provider_dao_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	_ "github.com/go-sql-driver/mysql"
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										20
									
								
								internal/db/models/region_provider_model.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								internal/db/models/region_provider_model.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
type RegionProvider struct {
 | 
			
		||||
	Id    uint32 `field:"id"`    // ID
 | 
			
		||||
	Name  string `field:"name"`  // 名称
 | 
			
		||||
	Codes string `field:"codes"` // 代号
 | 
			
		||||
	State uint8  `field:"state"` // 状态
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type RegionProviderOperator struct {
 | 
			
		||||
	Id    interface{} // ID
 | 
			
		||||
	Name  interface{} // 名称
 | 
			
		||||
	Codes interface{} // 代号
 | 
			
		||||
	State interface{} // 状态
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewRegionProviderOperator() *RegionProviderOperator {
 | 
			
		||||
	return &RegionProviderOperator{}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								internal/db/models/region_provider_model_ext.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								internal/db/models/region_provider_model_ext.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
package models
 | 
			
		||||
							
								
								
									
										71
									
								
								internal/db/models/region_province_dao.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								internal/db/models/region_province_dao.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	_ "github.com/go-sql-driver/mysql"
 | 
			
		||||
	"github.com/iwind/TeaGo/Tea"
 | 
			
		||||
	"github.com/iwind/TeaGo/dbs"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	RegionProvinceStateEnabled  = 1 // 已启用
 | 
			
		||||
	RegionProvinceStateDisabled = 0 // 已禁用
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type RegionProvinceDAO dbs.DAO
 | 
			
		||||
 | 
			
		||||
func NewRegionProvinceDAO() *RegionProvinceDAO {
 | 
			
		||||
	return dbs.NewDAO(&RegionProvinceDAO{
 | 
			
		||||
		DAOObject: dbs.DAOObject{
 | 
			
		||||
			DB:     Tea.Env,
 | 
			
		||||
			Table:  "edgeRegionProvinces",
 | 
			
		||||
			Model:  new(RegionProvince),
 | 
			
		||||
			PkName: "id",
 | 
			
		||||
		},
 | 
			
		||||
	}).(*RegionProvinceDAO)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var SharedRegionProvinceDAO *RegionProvinceDAO
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	dbs.OnReady(func() {
 | 
			
		||||
		SharedRegionProvinceDAO = NewRegionProvinceDAO()
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 启用条目
 | 
			
		||||
func (this *RegionProvinceDAO) EnableRegionProvince(id uint32) error {
 | 
			
		||||
	_, err := this.Query().
 | 
			
		||||
		Pk(id).
 | 
			
		||||
		Set("state", RegionProvinceStateEnabled).
 | 
			
		||||
		Update()
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 禁用条目
 | 
			
		||||
func (this *RegionProvinceDAO) DisableRegionProvince(id uint32) error {
 | 
			
		||||
	_, err := this.Query().
 | 
			
		||||
		Pk(id).
 | 
			
		||||
		Set("state", RegionProvinceStateDisabled).
 | 
			
		||||
		Update()
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查找启用中的条目
 | 
			
		||||
func (this *RegionProvinceDAO) FindEnabledRegionProvince(id uint32) (*RegionProvince, error) {
 | 
			
		||||
	result, err := this.Query().
 | 
			
		||||
		Pk(id).
 | 
			
		||||
		Attr("state", RegionProvinceStateEnabled).
 | 
			
		||||
		Find()
 | 
			
		||||
	if result == nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return result.(*RegionProvince), err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 根据主键查找名称
 | 
			
		||||
func (this *RegionProvinceDAO) FindRegionProvinceName(id uint32) (string, error) {
 | 
			
		||||
	return this.Query().
 | 
			
		||||
		Pk(id).
 | 
			
		||||
		Result("name").
 | 
			
		||||
		FindStringCol("")
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										5
									
								
								internal/db/models/region_province_dao_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								internal/db/models/region_province_dao_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	_ "github.com/go-sql-driver/mysql"
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										22
									
								
								internal/db/models/region_province_model.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								internal/db/models/region_province_model.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
type RegionProvince struct {
 | 
			
		||||
	Id        uint32 `field:"id"`        // ID
 | 
			
		||||
	CountryId uint32 `field:"countryId"` // 国家ID
 | 
			
		||||
	Name      string `field:"name"`      // 名称
 | 
			
		||||
	Codes     string `field:"codes"`     // 代号
 | 
			
		||||
	State     uint8  `field:"state"`     // 状态
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type RegionProvinceOperator struct {
 | 
			
		||||
	Id        interface{} // ID
 | 
			
		||||
	CountryId interface{} // 国家ID
 | 
			
		||||
	Name      interface{} // 名称
 | 
			
		||||
	Codes     interface{} // 代号
 | 
			
		||||
	State     interface{} // 状态
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewRegionProvinceOperator() *RegionProvinceOperator {
 | 
			
		||||
	return &RegionProvinceOperator{}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								internal/db/models/region_province_model_ext.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								internal/db/models/region_province_model_ext.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
package models
 | 
			
		||||
@@ -39,6 +39,22 @@ func (this *IP2RegionLibrary) Lookup(ip string) (*Result, error) {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if info.Country == "0" {
 | 
			
		||||
		info.Country = ""
 | 
			
		||||
	}
 | 
			
		||||
	if info.Region == "0" {
 | 
			
		||||
		info.Region = ""
 | 
			
		||||
	}
 | 
			
		||||
	if info.Province == "0" {
 | 
			
		||||
		info.Province = ""
 | 
			
		||||
	}
 | 
			
		||||
	if info.City == "0" {
 | 
			
		||||
		info.City = ""
 | 
			
		||||
	}
 | 
			
		||||
	if info.ISP == "0" {
 | 
			
		||||
		info.ISP = ""
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &Result{
 | 
			
		||||
		CityId:   info.CityId,
 | 
			
		||||
		Country:  info.Country,
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,7 @@ package services
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeAPI/internal/db/models"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeAPI/internal/iplibrary"
 | 
			
		||||
	rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
 | 
			
		||||
)
 | 
			
		||||
@@ -161,3 +162,27 @@ func (this *IPLibraryService) DeleteIPLibrary(ctx context.Context, req *pb.Delet
 | 
			
		||||
	}
 | 
			
		||||
	return rpcutils.RPCDeleteSuccess()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查询某个IP信息
 | 
			
		||||
func (this *IPLibraryService) LookupIPRegion(ctx context.Context, req *pb.LookupIPRegionRequest) (*pb.LookupIPRegionResponse, error) {
 | 
			
		||||
	// 校验请求
 | 
			
		||||
	_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	result, err := iplibrary.SharedLibrary.Lookup(req.Ip)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if result == nil {
 | 
			
		||||
		return &pb.LookupIPRegionResponse{Region: nil}, nil
 | 
			
		||||
	}
 | 
			
		||||
	return &pb.LookupIPRegionResponse{Region: &pb.IPRegion{
 | 
			
		||||
		Country:  result.Country,
 | 
			
		||||
		Region:   result.Region,
 | 
			
		||||
		Province: result.Province,
 | 
			
		||||
		City:     result.City,
 | 
			
		||||
		Isp:      result.ISP,
 | 
			
		||||
	}}, nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user