mirror of
				https://github.com/TeaOSLab/EdgeCommon.git
				synced 2025-11-04 05:00:24 +08:00 
			
		
		
		
	增加检查中国特殊区域的函数
This commit is contained in:
		@@ -39,3 +39,20 @@ func CheckRegionProvinceIsInChinaMainland(regionProvinceId RegionProvinceId) boo
 | 
			
		||||
		regionProvinceId != RegionChinaProvinceIdMO &&
 | 
			
		||||
		regionProvinceId != RegionChinaProvinceIdTW
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func MatchUserRegion(userCountryId int64, userProvinceId int64, regionId int64) bool {
 | 
			
		||||
	if userCountryId == RegionChinaId {
 | 
			
		||||
		switch regionId {
 | 
			
		||||
		case RegionChinaIdMainland: // china.mainland
 | 
			
		||||
			return CheckRegionProvinceIsInChinaMainland(userProvinceId)
 | 
			
		||||
		case RegionChinaIdHK: // china.hk
 | 
			
		||||
			return userProvinceId == RegionChinaProvinceIdHK
 | 
			
		||||
		case RegionChinaIdMO: // china.mo
 | 
			
		||||
			return userProvinceId == RegionChinaProvinceIdMO
 | 
			
		||||
		case RegionChinaIdTW: // china.tw
 | 
			
		||||
			return userProvinceId == RegionChinaProvinceIdTW
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return userCountryId == regionId
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										20
									
								
								pkg/serverconfigs/regionconfigs/china_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								pkg/serverconfigs/regionconfigs/china_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
 | 
			
		||||
 | 
			
		||||
package regionconfigs_test
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/regionconfigs"
 | 
			
		||||
	"github.com/iwind/TeaGo/assert"
 | 
			
		||||
	"testing"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestMatchUserRegion(t *testing.T) {
 | 
			
		||||
	var a = assert.NewAssertion(t)
 | 
			
		||||
	a.IsTrue(regionconfigs.MatchUserRegion(regionconfigs.RegionChinaId, 1, 1))
 | 
			
		||||
	a.IsTrue(regionconfigs.MatchUserRegion(regionconfigs.RegionChinaId, 1, regionconfigs.RegionChinaIdMainland))
 | 
			
		||||
	a.IsTrue(regionconfigs.MatchUserRegion(regionconfigs.RegionChinaId, regionconfigs.RegionChinaProvinceIdHK, regionconfigs.RegionChinaIdHK))
 | 
			
		||||
	a.IsTrue(regionconfigs.MatchUserRegion(regionconfigs.RegionChinaId, regionconfigs.RegionChinaProvinceIdMO, regionconfigs.RegionChinaIdMO))
 | 
			
		||||
	a.IsTrue(regionconfigs.MatchUserRegion(regionconfigs.RegionChinaId, regionconfigs.RegionChinaProvinceIdTW, regionconfigs.RegionChinaIdTW))
 | 
			
		||||
	a.IsFalse(regionconfigs.MatchUserRegion(regionconfigs.RegionChinaId, 0, regionconfigs.RegionChinaIdHK))
 | 
			
		||||
	a.IsFalse(regionconfigs.MatchUserRegion(regionconfigs.RegionChinaId, 1, regionconfigs.RegionChinaIdHK))
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user