Browse Source

更新~注释

zhengkun 3 years ago
parent
commit
9e4ddeb6a4
3 changed files with 37 additions and 35 deletions
  1. 0 1
      data_quality/src/config.json
  2. 33 30
      udpdatafusion/src/fusionAddData.go
  3. 4 4
      udpdatafusion/src/weightFusion.go

+ 0 - 1
data_quality/src/config.json

@@ -71,6 +71,5 @@
     "连续中文": 2
   },
 
-
   "isTest": false
 }

+ 33 - 30
udpdatafusion/src/fusionAddData.go

@@ -85,7 +85,6 @@ func startTaskAddData(data []byte, mapInfo map[string]interface{}) {
 func stareFusionData(tmpFusionMap map[string]string,isUpdateMap map[string]string) {
 	//根据重复组,重新划分新的组别
 	log.Println("开始融合操作......")
-
 	index,start :=0, int(time.Now().Unix())
 	//多线程保存数据
 	pool_mgo := make(chan bool, mgo_pool)
@@ -108,37 +107,41 @@ func stareFusionData(tmpFusionMap map[string]string,isUpdateMap map[string]strin
 
 			saveFusionData, saveRecordData:= map[string]interface{}{},map[string]interface{}{}
 			if fusionid!="" {//更新
-				saveFusionData, saveRecordData:=weight.dealWithMultipleUpdateFusionStruct(fusionid)
-				//更新融合表
-				UpdateFusionPool.pool <- []map[string]interface{}{
-					map[string]interface{}{
-						"_id": StringTOBsonId(fusionid),
-					},
-					saveFusionData,
-				}
-				//更新日志表
-				UpdateRecordPool.pool <- []map[string]interface{}{
-					map[string]interface{}{
-						"_id": StringTOBsonId(fusionid),
-					},
-					map[string]interface{}{
-						"$set": saveRecordData,
-					},
-				}
-				//更新分组表
-				UpdateGroupPool.pool <- []map[string]interface{}{
-					map[string]interface{}{
-						"_id": StringTOBsonId(sourceid),
-					},
-					map[string]interface{}{
-						"$set": map[string]interface{}{
-							"allids":strings.Join(fusionArr, ","),
+				//去历史-当前未更新的融合数据
+				his_data := mgo.FindById(fusion_coll_name,fusionid)
+				if len(his_data)>2 && his_data!=nil {
+					saveFusionData, saveRecordData:=weight.dealWithMultipleUpdateFusionStruct(his_data)
+					//更新融合表
+					UpdateFusionPool.pool <- []map[string]interface{}{
+						map[string]interface{}{
+							"_id": StringTOBsonId(fusionid),
 						},
-					},
-				}
-
-
+						saveFusionData,
+					}
+					//更新日志表
+					UpdateRecordPool.pool <- []map[string]interface{}{
+						map[string]interface{}{
+							"_id": StringTOBsonId(fusionid),
+						},
+						map[string]interface{}{
+							"$set": saveRecordData,
+						},
+					}
+					//更新分组表
+					UpdateGroupPool.pool <- []map[string]interface{}{
+						map[string]interface{}{
+							"_id": StringTOBsonId(sourceid),
+						},
+						map[string]interface{}{
+							"$set": map[string]interface{}{
+								"allids":strings.Join(fusionArr, ","),
+							},
+						},
+					}
+				}else {
+					log.Println("问题很严重...未找到历史融合数据...",sourceid,"~",fusionid,"~",fusionArr)
 
+				}
 			}else {
 				if len(fusionArr) <= 1 {
 					saveFusionData, saveRecordData = weight.dealWithAddFusionStruct()

+ 4 - 4
udpdatafusion/src/weightFusion.go

@@ -111,7 +111,7 @@ func (weight *weightDataMap) dealWithMultipleAddFusionStruct ()(map[string]inter
 }
 
 //处理多条融合数据-返回融合新数据,融合更新细节数据
-func (weight *weightDataMap) dealWithMultipleUpdateFusionStruct (fusion string)(map[string]interface{},map[string]interface{}){
+func (weight *weightDataMap) dealWithMultipleUpdateFusionStruct (his_data map[string]interface{})(map[string]interface{},map[string]interface{}){
 
 	//指定模板数据dict
 	dict :=weight.data[weight.templateid].data
@@ -130,7 +130,7 @@ func (weight *weightDataMap) dealWithMultipleUpdateFusionStruct (fusion string)(
 	//站点,质量分
 	dict["fusion_score"] = weight.saveLevelAndScoreRecord()
 	//融合生成时间-取融合表第一次融合时间
-	dict["fusion_time"] = tmpData["fusion_time"]
+	dict["fusion_time"] = his_data["fusion_time"]
 	//当前更新时间
 	dict["fusion_updatetime"] = qu.IntAll(time.Now().Unix())
 	//当前融合源id
@@ -148,14 +148,14 @@ func (weight *weightDataMap) dealWithMultipleUpdateFusionStruct (fusion string)(
 	}
 
 	//日志记录-更新
-	recordData := mgo.FindById(record_coll_name,BsonTOStringId(tmpData["_id"]))
+	recordData := mgo.FindById(record_coll_name,BsonTOStringId(his_data["_id"]))
 	number:=qu.Int64All(recordData["number"])
 	number++
 	key:=fmt.Sprintf("%d",number)
 	recordDict := map[string]interface{}{
 		key:map[string]interface{}{
 			"data":new_data,
-			"snapshot":tmpData, //快照页面... ...
+			"snapshot":his_data, //快照页面... ...
 			"sourceid":weight.sourceid,
 			"templateid":weight.templateid,
 			"allids":weight.allids,