|
@@ -9,48 +9,48 @@ import (
|
|
|
|
|
|
var cityEndReg *regexp.Regexp = regexp.MustCompile("(区|县|市)$")
|
|
|
|
|
|
-func getCheckDataCity(tmp map[string]interface{},update_check *map[string]interface{}) {
|
|
|
+func getCheckDataCity(tmp map[string]interface{}, update_check *map[string]interface{}) {
|
|
|
|
|
|
area := qu.ObjToString(tmp["area"])
|
|
|
city := qu.ObjToString(tmp["city"])
|
|
|
district := qu.ObjToString(tmp["district"])
|
|
|
buyer := qu.ObjToString(tmp["buyer"])
|
|
|
|
|
|
- if(district!="" && city!="" && area!="" && area!="全国") || buyer=="" {
|
|
|
+ if (district != "" && city != "" && area != "" && area != "全国") || buyer == "" {
|
|
|
//标准城市-校验
|
|
|
- rdata := standardCheckCity(area,city,district)
|
|
|
- if len(rdata)>0 {
|
|
|
- umap:=updateLogging(tmp,rdata,"标准信息")
|
|
|
- copyUpdateData(umap,update_check)
|
|
|
+ rdata := standardCheckCity(area, city, district)
|
|
|
+ if len(rdata) > 0 {
|
|
|
+ umap := updateLogging(tmp, rdata, "标准信息")
|
|
|
+ copyUpdateData(umap, update_check)
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
rdata := cityMarshal(tmp) //企业表-补城市
|
|
|
if len(rdata) > 0 {
|
|
|
- new_area,new_city,new_district := area,city,district
|
|
|
- if rdata["area"]!="" {
|
|
|
+ new_area, new_city, new_district := area, city, district
|
|
|
+ if rdata["area"] != "" {
|
|
|
new_area = qu.ObjToString(rdata["area"])
|
|
|
}
|
|
|
- if rdata["city"]!="" {
|
|
|
+ if rdata["city"] != "" {
|
|
|
new_city = qu.ObjToString(rdata["city"])
|
|
|
}
|
|
|
- if rdata["district"]!="" {
|
|
|
+ if rdata["district"] != "" {
|
|
|
new_district = qu.ObjToString(rdata["district"])
|
|
|
}
|
|
|
- umap:=updateLogging(tmp,rdata,"企业信息")
|
|
|
- n_rdata := standardCheckCity(new_area,new_city,new_district)
|
|
|
- if len(n_rdata)>0 {
|
|
|
+ umap := updateLogging(tmp, rdata, "企业信息")
|
|
|
+ n_rdata := standardCheckCity(new_area, new_city, new_district)
|
|
|
+ if len(n_rdata) > 0 {
|
|
|
for rk, rv := range n_rdata {
|
|
|
umap[rk] = rv
|
|
|
- umap["modifycheck"].(map[string]interface{})[rk] = fmt.Sprintf("企业标准信息~%s~%s",qu.ObjToString(tmp[rk]),rv)
|
|
|
+ umap["modifycheck"].(map[string]interface{})[rk] = fmt.Sprintf("企业标准信息~%s~%s", qu.ObjToString(tmp[rk]), rv)
|
|
|
}
|
|
|
}
|
|
|
- copyUpdateData(umap,update_check)
|
|
|
- }else {
|
|
|
- n_rdata := standardCheckCity(area,city,district)
|
|
|
- if len(n_rdata)>0 {
|
|
|
- umap:=updateLogging(tmp,n_rdata,"标准信息")
|
|
|
- copyUpdateData(umap,update_check)
|
|
|
+ copyUpdateData(umap, update_check)
|
|
|
+ } else {
|
|
|
+ n_rdata := standardCheckCity(area, city, district)
|
|
|
+ if len(n_rdata) > 0 {
|
|
|
+ umap := updateLogging(tmp, n_rdata, "标准信息")
|
|
|
+ copyUpdateData(umap, update_check)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -63,16 +63,16 @@ func cityMarshal(data map[string]interface{}) map[string]string {
|
|
|
biddistrict := qu.ObjToString(data["district"])
|
|
|
rdata := make(map[string]string)
|
|
|
query_name := map[string]interface{}{
|
|
|
- "company_name":buyer,
|
|
|
+ "company_name": buyer,
|
|
|
}
|
|
|
tmp := qy_mgo.FindOne(qy_coll_name, query_name)
|
|
|
- if tmp == nil || len(tmp)<2 {
|
|
|
+ if tmp == nil || len(tmp) < 2 {
|
|
|
return rdata
|
|
|
}
|
|
|
company_code := fmt.Sprint(tmp["company_code"])
|
|
|
if len(company_code) > 5 {
|
|
|
- province_city_district:= qy_mgo.FindOne("address", map[string]interface{}{
|
|
|
- "code":company_code[:6],
|
|
|
+ province_city_district := qy_mgo.FindOne("address", map[string]interface{}{
|
|
|
+ "code": company_code[:6],
|
|
|
})
|
|
|
remarks := fmt.Sprint((province_city_district)["Remarks"])
|
|
|
if remarks == "" || remarks == "废除" || remarks == "已作废" {
|
|
@@ -101,18 +101,19 @@ func cityMarshal(data map[string]interface{}) map[string]string {
|
|
|
} else if biddistrict == "" && codedistrict != "" && bidarea == codeprovince && codecity == bidcity {
|
|
|
rdata["district"] = codedistrict
|
|
|
}
|
|
|
- return rdata
|
|
|
+
|
|
|
+ if rdata["city"] != "" || rdata["district"] != "" {
|
|
|
+ return rdata
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
entprovince := qu.ObjToString(tmp["company_area"])
|
|
|
- //entprovince = strings.TrimRight(entprovince, "省")
|
|
|
- //entprovince = strings.TrimRight(entprovince, "市")
|
|
|
entcity := qu.ObjToString(tmp["company_city"])
|
|
|
entdistrict := qu.ObjToString(tmp["company_district"])
|
|
|
|
|
|
//新增特殊处理-港澳台数据
|
|
|
- if bidarea == "" || bidarea=="香港" || bidarea=="澳门" || bidarea=="台湾" || bidarea == "全国" {
|
|
|
+ if bidarea == "" || bidarea == "香港" || bidarea == "澳门" || bidarea == "台湾" || bidarea == "全国" {
|
|
|
if entprovince != "" {
|
|
|
rdata["area"] = entprovince
|
|
|
if entcity != "" && entcity != entprovince {
|
|
@@ -133,23 +134,24 @@ func cityMarshal(data map[string]interface{}) map[string]string {
|
|
|
|
|
|
return rdata
|
|
|
}
|
|
|
+
|
|
|
//标准校验
|
|
|
-func standardCheckCity(area string,city string,district string) map[string]string{
|
|
|
+func standardCheckCity(area string, city string, district string) map[string]string {
|
|
|
|
|
|
- rdata := make(map[string]string,0)
|
|
|
- if area=="香港"||area=="澳门"||area=="台湾" || (area=="全国"&&(city==""&&district=="")) {
|
|
|
+ rdata := make(map[string]string, 0)
|
|
|
+ if area == "香港" || area == "澳门" || area == "台湾" || (area == "全国" && (city == "" && district == "")) {
|
|
|
return rdata
|
|
|
}
|
|
|
//第一步:区校验
|
|
|
- if district!="" {
|
|
|
+ if district != "" {
|
|
|
districtArr := DistrictDict[district]
|
|
|
- if districtArr==nil {//涉及了 个别别名相关的数据
|
|
|
- trim_arr := aliasDataDistrict(district)//拆分后缀
|
|
|
- if len(trim_arr)>0 {
|
|
|
- for _,alias_district := range trim_arr {
|
|
|
+ if districtArr == nil { //涉及了 个别别名相关的数据
|
|
|
+ trim_arr := aliasDataDistrict(district) //拆分后缀
|
|
|
+ if len(trim_arr) > 0 {
|
|
|
+ for _, alias_district := range trim_arr {
|
|
|
alias_districtArr := DistrictDict[alias_district]
|
|
|
- for _,v:=range alias_districtArr{
|
|
|
- if city == v.C_Name && area == v.P_Name {
|
|
|
+ for _, v := range alias_districtArr {
|
|
|
+ if city == v.C_Name && area == v.P_Name {
|
|
|
rdata["district"] = alias_district
|
|
|
return rdata
|
|
|
}
|
|
@@ -157,23 +159,23 @@ func standardCheckCity(area string,city string,district string) map[string]strin
|
|
|
}
|
|
|
}
|
|
|
rdata["district"] = ""
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
isTrue := false
|
|
|
- for _,v:=range districtArr{
|
|
|
- if city == v.C_Name && area == v.P_Name {
|
|
|
+ for _, v := range districtArr {
|
|
|
+ if city == v.C_Name && area == v.P_Name {
|
|
|
isTrue = true
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
if isTrue { //完全匹配
|
|
|
return rdata
|
|
|
- }else { //未完全匹配
|
|
|
- if len(districtArr)==1 {
|
|
|
+ } else { //未完全匹配
|
|
|
+ if len(districtArr) == 1 {
|
|
|
rdata["area"] = districtArr[0].P_Name
|
|
|
rdata["city"] = districtArr[0].C_Name
|
|
|
rdata["district"] = districtArr[0].D_Name
|
|
|
return rdata
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
rdata["district"] = ""
|
|
|
}
|
|
|
}
|
|
@@ -183,11 +185,11 @@ func standardCheckCity(area string,city string,district string) map[string]strin
|
|
|
//第二步:区校验-失败 市-校验
|
|
|
if city != "" {
|
|
|
cityArr := CityDict[city]
|
|
|
- if cityArr==nil {
|
|
|
+ if cityArr == nil {
|
|
|
//把市当成区,匹配三级 - 存在优化空间- city:郑州 别名
|
|
|
districtArr := DistrictDict[city]
|
|
|
- for _,v:=range districtArr{
|
|
|
- if city == v.C_Name && area == v.P_Name {
|
|
|
+ for _, v := range districtArr {
|
|
|
+ if city == v.C_Name && area == v.P_Name {
|
|
|
rdata["area"] = districtArr[0].P_Name
|
|
|
rdata["city"] = districtArr[0].C_Name
|
|
|
rdata["district"] = districtArr[0].D_Name
|
|
@@ -195,23 +197,23 @@ func standardCheckCity(area string,city string,district string) map[string]strin
|
|
|
}
|
|
|
}
|
|
|
rdata["city"] = ""
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
isTrue := false
|
|
|
- for _,v:=range cityArr{
|
|
|
- if area == v.P_Name {
|
|
|
+ for _, v := range cityArr {
|
|
|
+ if area == v.P_Name {
|
|
|
isTrue = true
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
if isTrue { //完全匹配
|
|
|
return rdata
|
|
|
- }else { //未完全匹配
|
|
|
- if len(cityArr)==1 {
|
|
|
+ } else { //未完全匹配
|
|
|
+ if len(cityArr) == 1 {
|
|
|
rdata["area"] = cityArr[0].P_Name
|
|
|
rdata["city"] = cityArr[0].C_Name
|
|
|
rdata["district"] = ""
|
|
|
return rdata
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
rdata["city"] = ""
|
|
|
}
|
|
|
}
|
|
@@ -219,7 +221,7 @@ func standardCheckCity(area string,city string,district string) map[string]strin
|
|
|
}
|
|
|
|
|
|
//第三步:省份校验
|
|
|
- if ProvinceDict[area]==nil {
|
|
|
+ if ProvinceDict[area] == nil {
|
|
|
rdata["area"] = "全国"
|
|
|
rdata["city"] = ""
|
|
|
rdata["district"] = ""
|
|
@@ -229,7 +231,7 @@ func standardCheckCity(area string,city string,district string) map[string]strin
|
|
|
}
|
|
|
|
|
|
//更新日志
|
|
|
-func updateLogging(tmp map[string]interface{},rdata map[string]string,desc string) map[string]interface{} {
|
|
|
+func updateLogging(tmp map[string]interface{}, rdata map[string]string, desc string) map[string]interface{} {
|
|
|
umap := make(map[string]interface{})
|
|
|
if tmp["modifycheck"] == nil {
|
|
|
umap["modifycheck"] = make(map[string]interface{})
|
|
@@ -238,40 +240,39 @@ func updateLogging(tmp map[string]interface{},rdata map[string]string,desc strin
|
|
|
}
|
|
|
for rk, rv := range rdata {
|
|
|
umap[rk] = rv
|
|
|
- umap["modifycheck"].(map[string]interface{})[rk] = fmt.Sprintf("%s~%s~%s",desc,qu.ObjToString(tmp[rk]),rv)
|
|
|
+ umap["modifycheck"].(map[string]interface{})[rk] = fmt.Sprintf("%s~%s~%s", desc, qu.ObjToString(tmp[rk]), rv)
|
|
|
}
|
|
|
return umap
|
|
|
}
|
|
|
|
|
|
-func copyUpdateData(tmp map[string]interface{},update_check *map[string]interface{}) {
|
|
|
- for k,v := range tmp {
|
|
|
+func copyUpdateData(tmp map[string]interface{}, update_check *map[string]interface{}) {
|
|
|
+ for k, v := range tmp {
|
|
|
(*update_check)[k] = v
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//拆分三级县
|
|
|
func aliasDataDistrict(district string) []string {
|
|
|
- arr :=[]string{}
|
|
|
+ arr := []string{}
|
|
|
if cityEndReg.MatchString(district) {
|
|
|
str := cityEndReg.FindString(district)
|
|
|
strings.TrimRight(district, str)
|
|
|
- if str=="县"{
|
|
|
- arr = append(arr,fmt.Sprintf("%s区",strings.TrimRight(district, str)))
|
|
|
- arr = append(arr,fmt.Sprintf("%s市",strings.TrimRight(district, str)))
|
|
|
- }else if str=="区"{
|
|
|
- arr = append(arr,fmt.Sprintf("%s县",strings.TrimRight(district, str)))
|
|
|
- arr = append(arr,fmt.Sprintf("%s市",strings.TrimRight(district, str)))
|
|
|
- } else if str=="市"{
|
|
|
- arr = append(arr,fmt.Sprintf("%s县",strings.TrimRight(district, str)))
|
|
|
- arr = append(arr,fmt.Sprintf("%s区",strings.TrimRight(district, str)))
|
|
|
- }else {
|
|
|
+ if str == "县" {
|
|
|
+ arr = append(arr, fmt.Sprintf("%s区", strings.TrimRight(district, str)))
|
|
|
+ arr = append(arr, fmt.Sprintf("%s市", strings.TrimRight(district, str)))
|
|
|
+ } else if str == "区" {
|
|
|
+ arr = append(arr, fmt.Sprintf("%s县", strings.TrimRight(district, str)))
|
|
|
+ arr = append(arr, fmt.Sprintf("%s市", strings.TrimRight(district, str)))
|
|
|
+ } else if str == "市" {
|
|
|
+ arr = append(arr, fmt.Sprintf("%s县", strings.TrimRight(district, str)))
|
|
|
+ arr = append(arr, fmt.Sprintf("%s区", strings.TrimRight(district, str)))
|
|
|
+ } else {
|
|
|
|
|
|
}
|
|
|
- }else { //未找到 district- 区县市 例: district : 金水
|
|
|
- arr = append(arr,fmt.Sprintf("%s区",district))
|
|
|
- arr = append(arr,fmt.Sprintf("%s县",district))
|
|
|
- arr = append(arr,fmt.Sprintf("%s市",district))
|
|
|
+ } else { //未找到 district- 区县市 例: district : 金水
|
|
|
+ arr = append(arr, fmt.Sprintf("%s区", district))
|
|
|
+ arr = append(arr, fmt.Sprintf("%s县", district))
|
|
|
+ arr = append(arr, fmt.Sprintf("%s市", district))
|
|
|
}
|
|
|
return arr
|
|
|
}
|
|
|
-
|