1 Star 0 Fork 1

烟熏牛肉干/go-area

Create your Gitee Account
Explore and code with more than 14 million developers,Free private repositories !:)
Sign up
文件
Clone or Download
area_build.go 1.08 KB
Copy Edit Raw Blame History
烟熏牛肉干 authored 2025-10-14 16:55 +08:00 . feat: 初始化地区查询功能模块
package area
import "sort"
// buildIndex 构建一个索引,以便快速查询
func buildIndex(areas []Area) ([]Area, map[uint64][]Area, map[uint64][]Area) {
provinces := make([]Area, 0)
provinceToCity := make(map[uint64][]Area)
cityToCounty := make(map[uint64][]Area)
for _, area := range areas {
if area.Level == 1 { // 省级
provinces = append(provinces, area)
} else if area.Level == 2 { // 市级
provinceToCity[area.UpperID] = append(provinceToCity[area.UpperID], area)
} else if area.Level == 3 { // 县级
cityToCounty[area.UpperID] = append(cityToCounty[area.UpperID], area)
}
}
return provinces, provinceToCity, cityToCounty
}
// buildReverseIndex 构建反向索引,以便通过当前区域的ID快速查询到上级区域
func buildReverseIndex(areas []Area) map[uint64]Area {
reverseIndex := make(map[uint64]Area)
for _, area := range areas {
reverseIndex[area.ID] = area
}
return reverseIndex
}
// sortAreasByID 对地区按 ID 进行排序
func sortAreasByID(areas []Area) {
sort.Slice(areas, func(i, j int) bool {
return areas[i].ID < areas[j].ID
})
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/love_bass/go-area.git
git@gitee.com:love_bass/go-area.git
love_bass
go-area
go-area
v0.1.0

Search