From b4814201252dd4d01173ac30f5fdf7af78db5aee Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期三, 04 九月 2019 14:23:04 +0800
Subject: [PATCH] face link fix bug

---
 insertdata/insertDataToEs.go |  137 ++++++++++++++++++++++++++-------------------
 1 files changed, 79 insertions(+), 58 deletions(-)

diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go
index 00d23bb..21fed87 100644
--- a/insertdata/insertDataToEs.go
+++ b/insertdata/insertDataToEs.go
@@ -7,10 +7,8 @@
 	"fmt"
 	"io/ioutil"
 	"net"
-	"os"
 	"ruleprocess/cache"
 	"ruleprocess/logger"
-	"strings"
 	"time"
 
 	"basic.com/pubsub/protomsg.git"
@@ -111,6 +109,8 @@
 	AlarmLevel   string `json:"alarmLevel"`
 	RuleText     string `json:"ruleText"`
 	DefenceState bool   `json:"defenceState"`
+	IsLink		 bool	`json:"isLink"`
+	LinkInfo	 string `json:"linkInfo"`
 }
 
 // 涓�涓猣ace瀵瑰涓鍒欑粍鐨勫綊缃汉鑴哥殑缁撴瀯浣�
@@ -167,7 +167,7 @@
 		logger.Info("寰�ES鎻掍汉鑴告暟鎹�")
 		faces := []*FaceAndRules{}
 		faces = PutFace(faces,msg)
-		logger.Info("鏁寸悊鍚庣殑鏁版嵁锛�",faces)
+		//logger.Info("鏁寸悊鍚庣殑鏁版嵁锛�",faces)
 		if faces != nil {
 			for _,face := range faces {
 				// 涓婁紶澶у浘
@@ -178,10 +178,10 @@
 				}
 				alarmRules := []AlarmRule{}
 				logger.Warn("浜鸿劯id涓猴細",face.Id,"浜鸿劯鐨勮鍒欓暱搴︿负锛�",len(face.rules))
-				os.Exit(1)
+				//os.Exit(1)
 				for _,faceResult := range face.rules {
 					alarm := ChangeToString(faceResult.DefenceState, faceResult.AlarmLevel)
-					alarmRules = append(alarmRules, AlarmRule{faceResult.RuleGroupId, alarm, faceResult.RuleText, faceResult.DefenceState})
+					alarmRules = append(alarmRules, AlarmRule{faceResult.RuleGroupId, alarm, faceResult.RuleText, faceResult.DefenceState,faceResult.IsLink,""})
 				}
 				i := protomsg.Image{}
 				err = proto.Unmarshal(bdata, &i)
@@ -204,7 +204,7 @@
 				if err != nil {
 					logger.Error("涓婁紶灏忓浘鍑洪敊")
 				}
-				logger.Info("================灏忓浘鍦板潃:", resp["fileUrl"].(string))
+				//logger.Info("================灏忓浘鍦板潃:", resp["fileUrl"].(string))
 				sex := ""
 				if face.ThftRes.Gender == 1 {
 					sex = "鐢�"
@@ -223,7 +223,7 @@
 					msg.Cid,
 					camera.Addr,
 					i.Timestamp,
-					strings.Split(bigPhotoUrl["fileUrl"].(string), "/")[1],
+					bigPhotoUrl["fileUrl"].(string),
 					msg.Tasklab.Taskid,
 					msg.Tasklab.Taskname,
 					"浜鸿劯",
@@ -237,7 +237,7 @@
 					face.ThftRes.Smile,
 					face.ThftRes.Beauty,
 					base64.StdEncoding.EncodeToString(face.Feature),
-					[]string{strings.Split(resp["fileUrl"].(string), "/")[1]},
+					[]string{resp["fileUrl"].(string)},
 					"鏆傛棤闆嗙兢",
 					localConfig.ServerId,
 					localConfig.ServerName,
@@ -273,7 +273,6 @@
 // 褰掔疆浜鸿劯
 func PutFace(faces []*FaceAndRules,msg ruleserver.ResultMsg)[]*FaceAndRules{
 	if msg.RuleResult["face"] != nil && len(msg.RuleResult["face"].([]ruleserver.FaceResult)) > 0 {
-		logger.Info("鏁寸悊浜鸿劯鏁版嵁")
 		for _, faceResult := range msg.RuleResult["face"].([]ruleserver.FaceResult) {
 			faces = hebingFace(faces, faceResult)
 		}
@@ -285,18 +284,34 @@
 func hebingFace(faces []*FaceAndRules, faceResult ruleserver.FaceResult) []*FaceAndRules{
 	for _, arg := range faceResult.Args {
 		// 鎷垮埌姣忎竴寮犱汉鑴�
+		logger.Info("褰掔疆浜鸿劯鏃剁浉浼艰�呯殑鏁伴噺锛�",len(arg.Liker))
 		flag := false
 		for _, face := range faces {
+			for _,lik := range face.Liker {
+				logger.Warn("--------鍚堝苟浜鸿劯鏃剁浉浼艰�咃細",lik.PersonId,lik.TableName)
+			}
 			if arg.Id == face.Id {
 				flag = true
 				face.rules = append(face.rules,faceResult.Result)
+				// 鐩镐技鑰呭幓閲嶅綊骞�
+				for _,liker := range arg.Liker {
+					flag1 := true
+					for _,liker1 := range face.Liker {
+						if liker.PersonId == liker1.PersonId {
+							flag1 = false
+						}
+					}
+					if flag1 {
+						face.Liker = append(face.Liker,liker)
+					}
+				}
+				//face.Liker = append(face.Liker,arg.Liker...)
 			}
 		}
 		if !flag {
 			faces = append(faces, &FaceAndRules{arg, []ruleserver.Result{faceResult.Result}})
 		}
 	}
-	logger.Info("鏁寸悊涓殑鏁版嵁",faces)
 	return faces
 }
 
@@ -322,7 +337,11 @@
 					//logger.Info("搴旇杩涙潵鎵嶅鐨�")
 					sdkNames = sdkNames + yoloResult.SdkName
 					alarm := ChangeToString(yoloResult.DefenceState, yoloResult.AlarmLevel)
-					alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText, yoloResult.DefenceState})
+					linkInfo := ""
+					if yoloResult.IsLink {
+						linkInfo = "鑱斿姩浠诲姟"
+					}
+					alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText, yoloResult.DefenceState,yoloResult.IsLink,linkInfo})
 					// 涓婁紶缂撳瓨鏁版嵁鐨勫浘鐗囨嬁鍒皍rl
 					if yoloResult.Others.CacheData != nil {
 						//InsertYolo(msg.RuleResult["cacheData"].(ruleserver.ResultMsg))
@@ -342,7 +361,7 @@
 							} else {
 								logger.Info("涓婁紶鐨勫浘鐗囦俊鎭細", resp1)
 							}
-							url = append(url, strings.Split(resp1["fileUrl"].(string), "/")[1])
+							url = append(url, resp1["fileUrl"].(string))
 						}
 					}
 				}
@@ -380,6 +399,7 @@
 				resp, err = util.DrawPolygonOnImage(msg.Cid, i, msg.RuleResult["yolo"].([]ruleserver.Result), weedfsUrl)
 				if err != nil {
 					logger.Error("鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err)
+					return
 				} else {
 					logger.Info("涓婁紶鐨勫浘鐗囦俊鎭細", resp)
 				}
@@ -400,52 +420,53 @@
 				logger.Error("鏌ヨ鎽勫儚鏈轰俊鎭け璐�")
 			}
 			serverIp, err := GetLocalIP()
+			if resp["fileUrl"] != nil {
+				url = append(url, resp["fileUrl"].(string))
+				esDataId := uuid.NewV4().String()
+				linksId := ""
+				if linkId != "" {
+					linksId = linkId
+				}
+				peraction := Personaction{
+					esDataId,
+					msg.Cid,
+					camera.Name,
+					camera.Addr,
+					msg.Tasklab.Taskid,
+					msg.Tasklab.Taskname,
+					sdkNames,
+					"",
+					alarmRules,
+					localConfig.ServerId,
+					localConfig.ServerName,
+					serverIp,
+					"",
+					url,
+					i.Timestamp,
+					linksId,
+					"",
+					isAlarm,
+					0,
+					0,
+					0,
+				}
+				requstbody, err := json.Marshal(peraction)
 
-			url = append(url, strings.Split(resp["fileUrl"].(string), "/")[1])
-			esDataId := uuid.NewV4().String()
-			linksId := ""
-			if linkId != "" {
-				linksId = linkId
-			}
-			peraction := Personaction{
-				esDataId,
-				msg.Cid,
-				camera.Name,
-				camera.Addr,
-				msg.Tasklab.Taskid,
-				msg.Tasklab.Taskname,
-				sdkNames,
-				"",
-				alarmRules,
-				localConfig.ServerId,
-				localConfig.ServerName,
-				serverIp,
-				"",
-				url,
-				i.Timestamp,
-				linksId,
-				"",
-				isAlarm,
-				0,
-				0,
-				0,
-			}
-			requstbody, err := json.Marshal(peraction)
+				if err != nil {
+					logger.Info("json parse error ", err)
+					return
 
-			if err != nil {
-				logger.Info("json parse error ", err)
-				return
-
-			}
-			resp1, err2 := EsReq("POST", personAction, requstbody)
-			if err2 != nil {
-				logger.Error("寰�ES鎻掑叆鏁版嵁澶辫触", err)
-			} else {
-				logger.Debug("鎻掑叆es杩斿洖鐨勬暟鎹俊鎭槸锛�", resp1)
-				// 鍙戝嚭褰曞儚淇″彿
-				ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: esDataId, CameraId: msg.Cid, TaskId: msg.Tasklab.Taskid, ImgId: i.Id, SdkIds: []string{}, Type: 2})
-				logger.Warn("__________________________________________寰�ES鎻掑叆yolo鏁版嵁鎴愬姛")
-				//os.Exit(1)
+				}
+				resp1, err2 := EsReq("POST", personAction, requstbody)
+				if err2 != nil {
+					logger.Error("寰�ES鎻掑叆鏁版嵁澶辫触", err)
+				} else {
+					logger.Debug("鎻掑叆es杩斿洖鐨勬暟鎹俊鎭槸锛�", resp1)
+					// 鍙戝嚭褰曞儚淇″彿
+					ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: esDataId, CameraId: msg.Cid, TaskId: msg.Tasklab.Taskid, ImgId: i.Id, SdkIds: []string{}, Type: 2})
+					logger.Warn("__________________________________________寰�ES鎻掑叆yolo鏁版嵁鎴愬姛")
+					//os.Exit(1)
+				}
 			}
 		} else {
 			logger.Debug("timeLabel鏉′欢閮戒笉绗﹀悎锛�")
@@ -496,7 +517,7 @@
 		localConfig.ServerName,
 		serverIp,
 		"",
-		[]string{strings.Split(resp["fileUrl"].(string), "/")[1]},
+		[]string{resp["fileUrl"].(string)},
 		i.Timestamp,
 		"",
 		"",
@@ -554,7 +575,7 @@
 		msg.Cid,
 		camera.Addr,
 		i.Timestamp,
-		strings.Split(bigPhotoUrl["fileUrl"].(string), "/")[1],
+		bigPhotoUrl["fileUrl"].(string),
 		msg.Tasklab.Taskid,
 		msg.Tasklab.Taskname,
 		"浜鸿劯",

--
Gitblit v1.8.0