|
@@ -5,7 +5,6 @@ import (
|
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
|
"mongodb"
|
|
|
"qfw/util/elastic"
|
|
|
- "qfw/util/redis"
|
|
|
"regexp"
|
|
|
"time"
|
|
|
//"fmt"
|
|
@@ -15,7 +14,6 @@ import (
|
|
|
"reflect"
|
|
|
"strings"
|
|
|
"sync"
|
|
|
-
|
|
|
)
|
|
|
|
|
|
//对字段处理 bidamount budget
|
|
@@ -77,7 +75,7 @@ func biddingAllTask(data []byte, mapInfo map[string]interface{}) {
|
|
|
query := session.DB(db).C(c).Find(q).Select(bson.M{
|
|
|
"projectinfo.attachment": 0,
|
|
|
"contenthtml": 0,
|
|
|
- "publishdept": 0, // 6.30 迭代报错,字段值乱码
|
|
|
+ "publishdept": 0, // 6.30 迭代报错,字段值乱码
|
|
|
}).Sort("_id").Iter()
|
|
|
//查询抽取结果
|
|
|
extractquery := extractsession.DB(extractdb).C(extractc).Find(q).Sort("_id").Iter()
|
|
@@ -230,7 +228,7 @@ func biddingAllTask(data []byte, mapInfo map[string]interface{}) {
|
|
|
// }
|
|
|
// update["s_winner"] = strings.Join(winnerarr, ",")
|
|
|
// }
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
area := qutil.ObjToString(tmp["area"])
|
|
|
city := qutil.ObjToString(tmp["city"])
|
|
|
district := qutil.ObjToString(tmp["district"])
|
|
@@ -249,28 +247,28 @@ func biddingAllTask(data []byte, mapInfo map[string]interface{}) {
|
|
|
tmp[tk] = tv
|
|
|
}
|
|
|
if tmp["s_winner"] != "" {
|
|
|
- sWinnerarr := strings.Split(qutil.ObjToString(tmp["s_winner"]), ",")
|
|
|
+ //sWinnerarr := strings.Split(qutil.ObjToString(tmp["s_winner"]), ",")
|
|
|
var cid []string
|
|
|
- for _, w := range sWinnerarr {
|
|
|
- if w != "" {
|
|
|
- id := redis.GetStr("qyxy_id", w)
|
|
|
- if id == "" {
|
|
|
- ents, _ := mgostandard.Find("qyxy_std", map[string]interface{}{"company_name": w}, map[string]interface{}{"updatetime": -1}, nil, false, -1, -1)
|
|
|
- if len(*ents) > 0 {
|
|
|
- id = qutil.ObjToString((*ents)[0]["_id"])
|
|
|
- }else {
|
|
|
- ent, _ := qyxydb.FindOne("company_history_name", map[string]interface{}{"history_name": w})
|
|
|
- if len(*ent) > 0 {
|
|
|
- id = qutil.ObjToString((*ent)["company_id"])
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if id == "" {
|
|
|
- id = "-"
|
|
|
- }
|
|
|
- cid = append(cid, id)
|
|
|
- }
|
|
|
- }
|
|
|
+ //for _, w := range sWinnerarr {
|
|
|
+ // if w != "" {
|
|
|
+ // id := redis.GetStr("qyxy_id", w)
|
|
|
+ // if id == "" {
|
|
|
+ // ents, _ := mgostandard.Find("qyxy_std", map[string]interface{}{"company_name": w}, map[string]interface{}{"updatetime": -1}, nil, false, -1, -1)
|
|
|
+ // if len(*ents) > 0 {
|
|
|
+ // id = qutil.ObjToString((*ents)[0]["_id"])
|
|
|
+ // }else {
|
|
|
+ // ent, _ := qyxydb.FindOne("company_history_name", map[string]interface{}{"history_name": w})
|
|
|
+ // if len(*ent) > 0 {
|
|
|
+ // id = qutil.ObjToString((*ent)["company_id"])
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // if id == "" {
|
|
|
+ // id = "-"
|
|
|
+ // }
|
|
|
+ // cid = append(cid, id)
|
|
|
+ // }
|
|
|
+ //}
|
|
|
if len(cid) > 0 {
|
|
|
tmp["entidlist"] = cid
|
|
|
update["entidlist"] = cid
|
|
@@ -394,7 +392,7 @@ func biddingAllTask(data []byte, mapInfo map[string]interface{}) {
|
|
|
}
|
|
|
} else if field == "review_experts" {
|
|
|
// 评审专家
|
|
|
- if arr, ok :=tmp["review_experts"].([]interface{}); ok && len(arr) > 0 {
|
|
|
+ if arr, ok := tmp["review_experts"].([]interface{}); ok && len(arr) > 0 {
|
|
|
arr1 := qutil.ObjArrToStringArr(arr)
|
|
|
newTmp[field] = strings.Join(arr1, ",")
|
|
|
}
|
|
@@ -404,10 +402,10 @@ func biddingAllTask(data []byte, mapInfo map[string]interface{}) {
|
|
|
if tmp[field] != nil && tmp["bidendtime"] == nil {
|
|
|
newTmp["bidendtime"] = tmp[field]
|
|
|
newTmp[field] = tmp["bidendtime"]
|
|
|
- }else if tmp[field] == nil && tmp["bidendtime"] != nil {
|
|
|
+ } else if tmp[field] == nil && tmp["bidendtime"] != nil {
|
|
|
newTmp["bidendtime"] = tmp[field]
|
|
|
newTmp[field] = tmp["bidendtime"]
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
if tmp["bidopentime"] != nil {
|
|
|
newTmp[field] = tmp["bidopentime"]
|
|
|
}
|
|
@@ -540,21 +538,21 @@ func UpdateExtract() {
|
|
|
}
|
|
|
|
|
|
//城市标准校验
|
|
|
-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)
|
|
|
- if area=="香港"||area=="澳门"||area=="台湾" || (area=="全国"&&(city==""&&district=="")) {
|
|
|
+ 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
|
|
|
}
|
|
@@ -562,23 +560,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"] = ""
|
|
|
}
|
|
|
}
|
|
@@ -588,11 +586,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
|
|
@@ -600,23 +598,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"] = ""
|
|
|
}
|
|
|
}
|
|
@@ -624,7 +622,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"] = ""
|
|
@@ -634,29 +632,29 @@ func standardCheckCity(area string,city string,district string) map[string]strin
|
|
|
}
|
|
|
|
|
|
var cityEndReg = regexp.MustCompile("(区|县|市)$")
|
|
|
+
|
|
|
//拆分三级县
|
|
|
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
|
|
|
}
|
|
|
-
|