增加检查中国特殊区域的函数

This commit is contained in:
GoEdgeLab
2023-08-24 11:50:47 +08:00
parent c90ebf9257
commit 018c1e5dee
2 changed files with 37 additions and 0 deletions

View File

@@ -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
}

View 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))
}