fengweiqiang 4 anni fa
parent
commit
371b145cf3
2 ha cambiato i file con 58 aggiunte e 50 eliminazioni
  1. 5 3
      udp_city/src/config.json
  2. 53 47
      udp_city/src/main.go

+ 5 - 3
udp_city/src/config.json

@@ -6,13 +6,15 @@
   "mgodb_bidding": "192.168.3.207:27092",
   "mgodb_bidding_xs": "172.17.4.187:27083",
   "dbname_bidding": "qfw",
-  "findDb": "bidding",
+  "findDb": "baidu_xxbs_toid20200909_result",
   "udpport": "1485",
   "nextNode": [
     {
       "addr": "127.0.0.1",
-      "port": 1484,
-      "memo": "抽取回复"
+      "port": 1781,
+      "stype":"hangye",
+      "memo": "生kv招标分类"
     }
+
   ]
 }

+ 53 - 47
udp_city/src/main.go

@@ -2,6 +2,7 @@ package main
 
 import (
 	"encoding/json"
+	"fmt"
 	"gopkg.in/mgo.v2/bson"
 	"log"
 	mu "mfw/util"
@@ -93,7 +94,9 @@ func getCity(sid, eid, rep string) {
 	for i := 0; i < pageNum; i++ {
 		query = bson.M{"_id": bson.M{"$gte": bson.ObjectIdHex(sid), "$lte": bson.ObjectIdHex(eid)}}
 		log.Printf("page=%d,query=%v,db=%v\n", i+1, query, table)
-		list, _ := mgo.Mgo_Bidding.Find(table, query, nil, biddingFields, false, 0, limit)
+		list, _ := mgo.Mgo_Bidding.Find(table, query, map[string]interface{}{
+			"_id": 1,
+		}, biddingFields, false, 0, limit)
 		for _, v := range *list {
 			if qu.ObjToString(v["district"]) != "" && qu.ObjToString(v["city"]) != "" && qu.ObjToString(v["area"]) != "" && qu.ObjToString(v["area"]) != "全国" {
 				index++
@@ -140,67 +143,70 @@ func getCity(sid, eid, rep string) {
 }
 
 func cityMarshal(data map[string]interface{}) map[string]string {
-	rdata := make(map[string]string)
 	buyer := qu.ObjToString(data["buyer"])
+	bidarea := qu.ObjToString(data["area"])
+	bidcity := qu.ObjToString(data["city"])
+	biddistrict := qu.ObjToString(data["district"])
+	rdata := make(map[string]string)
 	tmp, _ := mgo.Mgo.FindOneByField("qyxy", `{"company_name":"`+buyer+`"}`, qyxyFields)
 	if tmp == nil || (*tmp) == nil {
 		return rdata
 	}
-	company_code := qu.ObjToString((*tmp)["company_code"])
+	company_code := fmt.Sprint((*tmp)["company_code"])
 	if len(company_code) > 5 {
 		province_city_district, _ := mgo.Mgo.FindOne("address", `{"code":"`+company_code[:6]+`"}`)
-		if province_city_district != nil && (*province_city_district) != nil && (*province_city_district)["Remarks"] != "废除" {
-			if qu.ObjToString(data["area"]) == "" || qu.ObjToString(data["area"]) == "全国" {
-				if province := qu.ObjToString((*province_city_district)["province"]); province != "" {
-					rdata["area"] = province
-				}
-				if city := qu.ObjToString((*province_city_district)["city"]); city != "" && !strings.Contains(city, rdata["area"]) {
-					rdata["city"] = city
-				}
-				if district := qu.ObjToString((*province_city_district)["district"]); district != "" && !strings.Contains(district, rdata["area"]) && !strings.Contains(district, rdata["city"]) {
-					rdata["district"] = district
-				}
-			} else if qu.ObjToString(data["city"]) == "" && qu.ObjToString((*province_city_district)["province"]) != "" && qu.ObjToString((*province_city_district)["province"]) == qu.ObjToString(data["area"]) {
-				if city := qu.ObjToString((*province_city_district)["city"]); city != "" && !strings.Contains(city, rdata["area"]) {
-					rdata["city"] = city
-				}
-				if district := qu.ObjToString((*province_city_district)["district"]); district != "" && !strings.Contains(district, rdata["area"]) && !strings.Contains(district, rdata["city"]) {
-					rdata["district"] = district
+		remarks := fmt.Sprint((*province_city_district)["Remarks"])
+		if remarks == "" || remarks == "废除" || remarks == "已作废" {
+		} else if province_city_district != nil && (*province_city_district) != nil {
+			codeprovince := qu.ObjToString((*province_city_district)["province"])
+			codecity := qu.ObjToString((*province_city_district)["city"])
+			codedistrict := qu.ObjToString((*province_city_district)["district"])
+			if bidarea == "" || bidarea == "全国" {
+				if codeprovince != "" {
+					rdata["area"] = codeprovince
+					if codecity != "" && codecity != codeprovince {
+						rdata["city"] = codecity
+						if codedistrict != "" && codedistrict != codecity {
+							rdata["district"] = codedistrict
+						}
+					}
 				}
-			} else if qu.ObjToString(data["district"]) == "" && qu.ObjToString((*province_city_district)["city"]) != "" && qu.ObjToString((*province_city_district)["city"]) == qu.ObjToString(data["city"]) {
-				if district := qu.ObjToString((*province_city_district)["district"]); district != "" && !strings.Contains(district, rdata["area"]) && !strings.Contains(district, rdata["city"]) {
-					rdata["district"] = district
+			} else if bidcity == "" && codecity != "" && bidarea == codeprovince {
+				if codecity != bidarea {
+					rdata["city"] = codecity
+					if codedistrict != "" && codecity != codedistrict {
+						rdata["district"] = codedistrict
+					}
 				}
+			} else if biddistrict == "" && codedistrict != "" && bidarea == codeprovince && codecity == bidcity {
+				rdata["district"] = codedistrict
 			}
 			return rdata
 		}
 	}
-	var province string
-	if qu.ObjToString(data["area"]) == "" || qu.ObjToString(data["area"]) == "全国" {
-		if province = qu.ObjToString((*tmp)["province"]); province != "" {
-			province = strings.TrimRight(province, "省")
-			province = strings.TrimRight(province, "市")
-			rdata["area"] = province
-		}
-		if city := qu.ObjToString((*tmp)["city"]); city != "" && province != city {
-			rdata["city"] = city
-		}
-		if district := qu.ObjToString((*tmp)["district"]); district != "" && rdata["city"] != district {
-			rdata["district"] = district
-		}
-	} else if qu.ObjToString(data["city"]) == "" && province != "" && qu.ObjToString(data["area"]) == province {
-		if city := qu.ObjToString((*tmp)["city"]); city != "" && province != city {
-			rdata["city"] = city
-		}
-		if district := qu.ObjToString((*tmp)["district"]); district != "" && qu.ObjToString((*tmp)["city"]) != district {
-			rdata["district"] = district
-		}
-	} else if qu.ObjToString(data["district"]) == "" && qu.ObjToString((*tmp)["city"]) != "" && qu.ObjToString((*tmp)["city"]) == qu.ObjToString(data["city"]) {
-		if district := qu.ObjToString((*tmp)["district"]); district != "" && qu.ObjToString(data["city"]) != district {
-			if qu.ObjToString(data["district"]) != rdata["city"] {
-				rdata["district"] = district
+
+	entprovince := qu.ObjToString((*tmp)["province"])
+	entprovince = strings.TrimRight(entprovince, "省")
+	entprovince = strings.TrimRight(entprovince, "市")
+	entcity := qu.ObjToString((*tmp)["city"])
+	entdistrict := qu.ObjToString((*tmp)["district"])
+	if bidarea == "" || bidarea == "全国" {
+		if entprovince != "" {
+			rdata["area"] = entprovince
+			if entcity != "" && entcity != entprovince {
+				rdata["city"] = entcity
+				if entdistrict != "" && entdistrict != entcity {
+					rdata["district"] = entdistrict
+				}
 			}
 		}
+	} else if bidcity == "" && entcity != "" && entprovince == bidarea {
+		rdata["city"] = entcity
+		if entdistrict != "" && entcity != entdistrict {
+			rdata["district"] = entdistrict
+		}
+	} else if biddistrict == "" && entdistrict != "" && entprovince == bidarea && bidcity == entcity {
+		rdata["district"] = entdistrict
 	}
 
 	return rdata