|
@@ -322,29 +322,18 @@ func (p *ProjectTask) taskZl(udpInfo map[string]interface{}) {
|
|
|
//招标字段更新
|
|
|
func (p *ProjectTask) taskUpdateInfo(udpInfo map[string]interface{}) {
|
|
|
defer util.Catch()
|
|
|
- db := MongoTool.DbName
|
|
|
- coll, _ := udpInfo["coll"].(string)
|
|
|
- if coll == "" {
|
|
|
- coll = ExtractColl
|
|
|
- }
|
|
|
- thread := util.IntAllDef(Thread, 4)
|
|
|
- if thread > 0 {
|
|
|
- p.thread = thread
|
|
|
- }
|
|
|
- q, _ := udpInfo["query"].(map[string]interface{})
|
|
|
- gtid := udpInfo["gtid"].(string)
|
|
|
- lteid := udpInfo["lteid"].(string)
|
|
|
- if q == nil {
|
|
|
- q = map[string]interface{}{
|
|
|
- "_id": map[string]interface{}{
|
|
|
- "$gte": StringTOBsonId(gtid),
|
|
|
- "$lte": StringTOBsonId(lteid),
|
|
|
- },
|
|
|
- "is_m": 1,
|
|
|
- }
|
|
|
+ infoid := udpInfo["infoid"].(string)
|
|
|
+ infoMap := MongoTool.FindById(ExtractColl, infoid)
|
|
|
+ client := Es.GetEsConn()
|
|
|
+ defer Es.DestoryEsConn(client)
|
|
|
+ esquery := `{"query": {"bool": {"must": [{"term": {"list.infoid": "`+infoid+`"}}]}}}`
|
|
|
+ data := Es.Get(Index, Itype, esquery)
|
|
|
+ if len(*data) > 0 {
|
|
|
+ info := ParseInfo(infoMap)
|
|
|
+ p.updateJudge(infoMap, info, util.ObjToString((*data)[0]["_id"]))
|
|
|
+ }else {
|
|
|
+ util.Debug("Not find project---", infoid)
|
|
|
}
|
|
|
- log.Println("查询语句:", q)
|
|
|
- p.enter(db, coll, q)
|
|
|
}
|
|
|
|
|
|
func (p *ProjectTask) taskQuery() {
|
|
@@ -588,13 +577,8 @@ func (p *ProjectTask) enter(db, coll string, q map[string]interface{}) {
|
|
|
p.fillInPlace(tmp)
|
|
|
info := ParseInfo(tmp)
|
|
|
p.currentTime = info.Publishtime
|
|
|
- if p.currentType == "updateInfo" {
|
|
|
- //招标信息更改合并
|
|
|
- p.updateJudge(tmp, info)
|
|
|
- } else {
|
|
|
- //普通合并
|
|
|
- p.CommonMerge(tmp, info)
|
|
|
- }
|
|
|
+ //普通合并
|
|
|
+ p.CommonMerge(tmp, info)
|
|
|
} else {
|
|
|
//信息错误,进行更新
|
|
|
util.Debug(tmp["_id"])
|
|
@@ -828,65 +812,56 @@ func ParseInfo(tmp map[string]interface{}) (info *Info) {
|
|
|
return thisinfo
|
|
|
}
|
|
|
|
|
|
-func (p *ProjectTask) updateJudge(tmp map[string]interface{}, info *Info) {
|
|
|
- index := -1
|
|
|
- pInfoId := ""
|
|
|
- p.AllIdsMapLock.Lock()
|
|
|
- F:
|
|
|
- for k, ID := range p.AllIdsMap {
|
|
|
- for i, id := range ID.P.Ids {
|
|
|
- if info.Id == id {
|
|
|
- pInfoId = k
|
|
|
- index = i
|
|
|
- break F
|
|
|
- }
|
|
|
+func (p *ProjectTask) updateJudge(infoMap map[string]interface{}, info *Info, pInfoId string) {
|
|
|
+ var index = -1 //0:第一个,1:中间,2:最后一个
|
|
|
+ tmpPro := MongoTool.FindById(ProjectColl, pInfoId)
|
|
|
+ ids := []interface{}(tmpPro["ids"].(primitive.A))
|
|
|
+ infoList := []interface{}(tmpPro["list"].(primitive.A))
|
|
|
+ for i, v := range ids {
|
|
|
+ if util.ObjToString(v) == util.ObjToString(infoMap["_id"]) {
|
|
|
+ if i == 0 {
|
|
|
+ index = 0
|
|
|
+ }else if i == len(ids) - 1 {
|
|
|
+ index = 2
|
|
|
+ }else {
|
|
|
+ index = 1
|
|
|
}
|
|
|
}
|
|
|
- p.AllIdsMapLock.Unlock()
|
|
|
- //未找到招标信息
|
|
|
- if index == -1 {
|
|
|
- if info != nil && !((info.pnbval == 1 && info.Buyer != "") || info.pnbval == 0) {
|
|
|
- p.currentTime = info.Publishtime
|
|
|
- p.startProjectMerge(info, tmp)
|
|
|
- }
|
|
|
- } else {
|
|
|
- tmpPro := MongoTool.FindById(ProjectColl, pInfoId)
|
|
|
- infoList := []interface{}(tmpPro["list"].(primitive.A))
|
|
|
- infoMap := infoList[index].(map[string]interface{})
|
|
|
- modifyMap, f := modifyEle(infoMap, tmp)
|
|
|
- //projecthref字段
|
|
|
- jsonData := tmp["jsondata"].(map[string]interface{})
|
|
|
- if jsonData != nil && jsonData["projecthref"] != nil {
|
|
|
- proHref := jsonData["projecthref"].(string)
|
|
|
- tmp["projecthref"] = proHref
|
|
|
- p.mapHrefLock.Lock()
|
|
|
- pid := p.mapHref[proHref]
|
|
|
- p.mapHrefLock.Unlock()
|
|
|
- if pid == pInfoId {
|
|
|
- p.modifyUpdate(pInfoId, index, info, tmp, tmpPro, modifyMap)
|
|
|
- return
|
|
|
- }
|
|
|
+ }
|
|
|
+ proListMap := infoList[index].(map[string]interface{})
|
|
|
+ modifyMap, f := modifyEle(proListMap, infoMap)
|
|
|
+ //projecthref字段
|
|
|
+ jsonData := infoMap["jsondata"].(map[string]interface{})
|
|
|
+ if jsonData != nil && jsonData["projecthref"] != nil {
|
|
|
+ proHref := jsonData["projecthref"].(string)
|
|
|
+ infoMap["projecthref"] = proHref
|
|
|
+ p.mapHrefLock.Lock()
|
|
|
+ pid := p.mapHref[proHref]
|
|
|
+ p.mapHrefLock.Unlock()
|
|
|
+ if pid == pInfoId {
|
|
|
+ p.modifyUpdate(pInfoId, index, info, infoMap, tmpPro, modifyMap)
|
|
|
+ return
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- if f {
|
|
|
- //合并、修改
|
|
|
- log.Println("合并修改更新", "----------------------------")
|
|
|
- p.mergeAndModify(pInfoId, index, info, tmp, tmpPro, modifyMap)
|
|
|
- } else {
|
|
|
- //修改
|
|
|
- log.Println("修改更新", "----------------------------")
|
|
|
- p.modifyUpdate(pInfoId, index, info, tmp, tmpPro, modifyMap)
|
|
|
- }
|
|
|
+ if f {
|
|
|
+ //合并、修改
|
|
|
+ log.Println("合并修改更新", "----------------------------")
|
|
|
+ p.mergeAndModify(pInfoId, index, info, infoMap, tmpPro, modifyMap)
|
|
|
+ } else {
|
|
|
+ //修改
|
|
|
+ log.Println("修改更新", "----------------------------")
|
|
|
+ p.modifyUpdate(pInfoId, index, info, infoMap, tmpPro, modifyMap)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var Elements = []string{
|
|
|
"projectname",
|
|
|
"projectcode",
|
|
|
+ "buyer",
|
|
|
"agency",
|
|
|
"budget",
|
|
|
"bidamount",
|
|
|
- "buyerperson",
|
|
|
"area",
|
|
|
"city",
|
|
|
"publishtime",
|