|
@@ -4,11 +4,13 @@ import (
|
|
|
log "github.com/donnie4w/go-logger/logger"
|
|
|
"github.com/go-ego/gse"
|
|
|
"github.com/sensitive"
|
|
|
+ "go.mongodb.org/mongo-driver/bson/primitive"
|
|
|
qu "qfw/util"
|
|
|
ul "util"
|
|
|
)
|
|
|
|
|
|
var Ext *ExtractTask
|
|
|
+var RegionsConfig map[string]interface{}
|
|
|
var DefaultRegions, AdjustmentRegions = []string{}, []string{}
|
|
|
|
|
|
type ExtractTask struct {
|
|
@@ -52,6 +54,49 @@ type ExtractTask struct {
|
|
|
Seg_SV *gse.Segmenter //分词
|
|
|
}
|
|
|
|
|
|
+func ConvertInterface(t interface{}) []string {
|
|
|
+ p_list := []string{}
|
|
|
+ if yl_list_1, ok_1 := t.(primitive.A); ok_1 {
|
|
|
+ p_list = qu.ObjArrToStringArr(yl_list_1)
|
|
|
+ } else {
|
|
|
+ if yl_list_2, ok_2 := t.([]interface{}); ok_2 {
|
|
|
+ p_list = qu.ObjArrToStringArr(yl_list_2)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return p_list
|
|
|
+}
|
|
|
+
|
|
|
+//初始化邮编库
|
|
|
+func (e *ExtractTask) InitPostCode() {
|
|
|
+ defer qu.Catch()
|
|
|
+ e.PostCodeMap = make(map[string]*PostCode)
|
|
|
+ query := map[string]interface{}{}
|
|
|
+ list, _ := ul.ExtMgo.Find("postcode", query, nil, nil)
|
|
|
+ for _, l := range list {
|
|
|
+ pc := &PostCode{}
|
|
|
+ pc.Code = qu.ObjToString(l["code"])
|
|
|
+ pc.P = qu.ObjToString(l["province"])
|
|
|
+ pc.C = qu.ObjToString(l["city"])
|
|
|
+ pc.D = ConvertInterface(l["district"])
|
|
|
+ e.PostCodeMap[pc.Code] = pc
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//初始化区号库
|
|
|
+func (e *ExtractTask) InitAreaCode() {
|
|
|
+ defer qu.Catch()
|
|
|
+ e.AreaCodeMap = make(map[string]*AreaCode)
|
|
|
+ query := map[string]interface{}{}
|
|
|
+ list, _ := ul.ExtMgo.Find("areacode", query, nil, nil)
|
|
|
+ for _, l := range list {
|
|
|
+ ac := &AreaCode{}
|
|
|
+ ac.Code = qu.ObjToString(l["code"])
|
|
|
+ ac.P = qu.ObjToString(l["province"])
|
|
|
+ ac.C = ConvertInterface(l["city"])
|
|
|
+ e.AreaCodeMap[ac.Code] = ac
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
//加载所有
|
|
|
func InitProvincesx() []map[string]interface{} {
|
|
|
defer qu.Catch()
|
|
@@ -109,11 +154,12 @@ func (e *ExtractTask) InitUpdateSite() {
|
|
|
|
|
|
func (e *ExtractTask) InitCityInfo() {
|
|
|
defer qu.Catch()
|
|
|
- e.InitVar() //初始化变量
|
|
|
- //新疆兵团数据
|
|
|
- e.InitXjbtCityInfo()
|
|
|
- //site站点信息
|
|
|
- e.InitUpdateSite()
|
|
|
+ e.InitVar() //初始化变量
|
|
|
+ e.InitXjbtCityInfo() //新疆兵团数据
|
|
|
+ e.InitUpdateSite() //site站点信息
|
|
|
+ e.InitPostCode() //邮编信息
|
|
|
+ e.InitAreaCode() //区号信息
|
|
|
+
|
|
|
//初始化省信息
|
|
|
alldata := InitProvincesx()
|
|
|
fnx := make([]map[string]interface{}, 0)
|
|
@@ -348,6 +394,8 @@ func (e *ExtractTask) InitVar() {
|
|
|
|
|
|
//初始化城市相关
|
|
|
e.SiteCityMap = make(map[string]*SiteCity)
|
|
|
+ e.PostCodeMap = make(map[string]*PostCode)
|
|
|
+ e.AreaCodeMap = make(map[string]*AreaCode)
|
|
|
e.ProvinceMap = make(map[string]string)
|
|
|
e.CityMap = make(map[string]string)
|
|
|
e.DistrictSimAndAll = make(map[string][]map[string]*City)
|