From 5cc66a4cb1161073a3d519213f671ae44b76a5e4 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期二, 20 八月 2019 09:50:51 +0800
Subject: [PATCH] 图片地址保留全路径

---
 insertdata/insertDataToEs.go |   87 +++++++++++++++++++++++++------------------
 1 files changed, 51 insertions(+), 36 deletions(-)

diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go
index 00d23bb..13ac16e 100644
--- a/insertdata/insertDataToEs.go
+++ b/insertdata/insertDataToEs.go
@@ -7,10 +7,9 @@
 	"fmt"
 	"io/ioutil"
 	"net"
-	"os"
 	"ruleprocess/cache"
 	"ruleprocess/logger"
-	"strings"
+	"ruleprocess/structure"
 	"time"
 
 	"basic.com/pubsub/protomsg.git"
@@ -78,7 +77,7 @@
 	IsAckAlarm      int                    `json:"isAckAlarm"`
 	IsCollect       int                    `json:"isCollect"`
 	IsDelete        int                    `json:"isDelete"`
-	BaseInfo        []*ruleserver.BaseInfo `json:"baseInfo"`
+	BaseInfo        []*structure.BaseInfo `json:"baseInfo"`
 }
 
 //  yolo琛屼负鐨勬暟鎹粨鏋�
@@ -111,12 +110,13 @@
 	AlarmLevel   string `json:"alarmLevel"`
 	RuleText     string `json:"ruleText"`
 	DefenceState bool   `json:"defenceState"`
+	IsLink		 bool	`json:"isLink"`
 }
 
 // 涓�涓猣ace瀵瑰涓鍒欑粍鐨勫綊缃汉鑴哥殑缁撴瀯浣�
 type FaceAndRules struct {
-	ruleserver.Arg
-	rules []ruleserver.Result
+	structure.Arg
+	rules []structure.Result
 }
 
 // 寰�ES鎻掓暟鎹�
@@ -143,7 +143,7 @@
 //	//	ChangeStatusYolo(msg)
 //	//}
 //}
-func InsertToEs(msg ruleserver.ResultMsg) {
+func InsertToEs(msg structure.ResultMsg) {
 	InsertFace(msg, "")
 	// 濡傛灉鏍囩涓惈鏈夋寔缁椂闂撮娆℃姤璀︾殑timeLabel鐨勮瘽鍒欎笉闇�瑕佽繃浜轰綋杩借釜锛屼笉鐒跺氨娌$殑鎻掑叆浜�
 	fk := ruleserver.TrackOrNot(msg.RuleResult)
@@ -162,12 +162,12 @@
 }
 
 // 寰�es涓彃鍏ヤ汉鑴告暟鎹�
-func InsertFace(msg ruleserver.ResultMsg, linkId string) {
-	if msg.RuleResult["face"] != nil && len(msg.RuleResult["face"].([]ruleserver.FaceResult)) > 0 {
+func InsertFace(msg structure.ResultMsg, linkId string) {
+	if msg.RuleResult["face"] != nil && len(msg.RuleResult["face"].([]structure.FaceResult)) > 0 {
 		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)
@@ -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,
@@ -271,10 +271,9 @@
 }
 
 // 褰掔疆浜鸿劯
-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) {
+func PutFace(faces []*FaceAndRules,msg structure.ResultMsg)[]*FaceAndRules{
+	if msg.RuleResult["face"] != nil && len(msg.RuleResult["face"].([]structure.FaceResult)) > 0 {
+		for _, faceResult := range msg.RuleResult["face"].([]structure.FaceResult) {
 			faces = hebingFace(faces, faceResult)
 		}
 		return faces
@@ -282,30 +281,46 @@
 		return nil
 	}
 }
-func hebingFace(faces []*FaceAndRules, faceResult ruleserver.FaceResult) []*FaceAndRules{
+func hebingFace(faces []*FaceAndRules, faceResult structure.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}})
+			faces = append(faces, &FaceAndRules{arg, []structure.Result{faceResult.Result}})
 		}
 	}
-	logger.Info("鏁寸悊涓殑鏁版嵁",faces)
 	return faces
 }
 
 // 寰�es涓彃鍏olo鏁版嵁
-func InsertYolo(msg ruleserver.ResultMsg, linkId string) {
-	if msg.RuleResult["yolo"] != nil && len(msg.RuleResult["yolo"].([]ruleserver.Result)) > 0 {
+func InsertYolo(msg structure.ResultMsg, linkId string) {
+	if msg.RuleResult["yolo"] != nil && len(msg.RuleResult["yolo"].([]structure.Result)) > 0 {
 		// 鍏堝垽鏂竴涓嬫暟鎹甫鐨勮鍒欐爣绛炬槸鍚︽湁鍙互鎻掑叆鐨�
 		flag := false
-		for _, res := range msg.RuleResult["yolo"].([]ruleserver.Result) {
+		for _, res := range msg.RuleResult["yolo"].([]structure.Result) {
 			//logger.Info("瀹氭椂鍣ㄦ墦鐨勬暟瀛楁爣绛撅細",res.Others.TimeLabel)
 			if res.Others.TimeLabel == "01" || res.Others.TimeLabel == "10" {
 				flag = true
@@ -316,13 +331,13 @@
 			var sdkNames string = ""
 			alarmRules := []AlarmRule{}
 			url := []string{}
-			for _, yoloResult := range msg.RuleResult["yolo"].([]ruleserver.Result) {
+			for _, yoloResult := range msg.RuleResult["yolo"].([]structure.Result) {
 				if yoloResult.Others.TimeLabel == "01" || yoloResult.Others.TimeLabel == "10" {
 					// 鎷煎嚭sdkname
 					//logger.Info("搴旇杩涙潵鎵嶅鐨�")
 					sdkNames = sdkNames + yoloResult.SdkName
 					alarm := ChangeToString(yoloResult.DefenceState, yoloResult.AlarmLevel)
-					alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText, yoloResult.DefenceState})
+					alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText, yoloResult.DefenceState,yoloResult.IsLink})
 					// 涓婁紶缂撳瓨鏁版嵁鐨勫浘鐗囨嬁鍒皍rl
 					if yoloResult.Others.CacheData != nil {
 						//InsertYolo(msg.RuleResult["cacheData"].(ruleserver.ResultMsg))
@@ -336,19 +351,19 @@
 							}
 							i := protomsg.Image{}
 							err = proto.Unmarshal(bdata, &i)
-							resp1, err1 := util.DrawPolygonOnImage(msg1.Cid, i, msg1.RuleResult["yolo"].([]ruleserver.Result), weedfsUrl)
+							resp1, err1 := util.DrawPolygonOnImage(msg1.Cid, i, msg1.RuleResult["yolo"].([]structure.Result), weedfsUrl)
 							if err1 != nil {
 								logger.Error("缂撳瓨鏁版嵁鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err)
 							} else {
 								logger.Info("涓婁紶鐨勫浘鐗囦俊鎭細", resp1)
 							}
-							url = append(url, strings.Split(resp1["fileUrl"].(string), "/")[1])
+							url = append(url, resp1["fileUrl"].(string))
 						}
 					}
 				}
 			}
 			linkFlag := false
-			for _, yoloResult := range msg.RuleResult["yolo"].([]ruleserver.Result) {
+			for _, yoloResult := range msg.RuleResult["yolo"].([]structure.Result) {
 				if (yoloResult.Others.TimeLabel == "01" || yoloResult.Others.TimeLabel == "10") && yoloResult.Others.LinkCache != nil && len(yoloResult.Others.LinkCache) > 1 {
 					linkId := uuid.NewV4().String()
 					for _, msg2 := range yoloResult.Others.LinkCache {
@@ -377,7 +392,7 @@
 			if len(alarmRules) > 0 {
 				isAlarm = 1
 				//resp, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String())
-				resp, err = util.DrawPolygonOnImage(msg.Cid, i, msg.RuleResult["yolo"].([]ruleserver.Result), weedfsUrl)
+				resp, err = util.DrawPolygonOnImage(msg.Cid, i, msg.RuleResult["yolo"].([]structure.Result), weedfsUrl)
 				if err != nil {
 					logger.Error("鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err)
 				} else {
@@ -401,7 +416,7 @@
 			}
 			serverIp, err := GetLocalIP()
 
-			url = append(url, strings.Split(resp["fileUrl"].(string), "/")[1])
+			url = append(url, resp["fileUrl"].(string))
 			esDataId := uuid.NewV4().String()
 			linksId := ""
 			if linkId != "" {
@@ -452,7 +467,7 @@
 		}
 	}
 }
-func ChangeStatusYolo(msg ruleserver.ResultMsg) {
+func ChangeStatusYolo(msg structure.ResultMsg) {
 	logger.Info("寰�ES鎻抷olo闈炴姤璀︾姸鎬佹敼鍙樻暟鎹�")
 	var sdkNames string = ""
 	alarmRules := []AlarmRule{}
@@ -463,7 +478,7 @@
 	i := protomsg.Image{}
 	err = proto.Unmarshal(bdata, &i)
 	//resp, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String())
-	resp, err := util.DrawPolygonOnImage(msg.Cid, i, msg.RuleResult["yolo"].([]ruleserver.Result), weedfsUrl)
+	resp, err := util.DrawPolygonOnImage(msg.Cid, i, msg.RuleResult["yolo"].([]structure.Result), weedfsUrl)
 	if err != nil {
 		logger.Error("鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err)
 	} else {
@@ -496,7 +511,7 @@
 		localConfig.ServerName,
 		serverIp,
 		"",
-		[]string{strings.Split(resp["fileUrl"].(string), "/")[1]},
+		[]string{resp["fileUrl"].(string)},
 		i.Timestamp,
 		"",
 		"",
@@ -523,7 +538,7 @@
 		//os.Exit(1)
 	}
 }
-func ChangeStatusFace(msg ruleserver.ResultMsg) {
+func ChangeStatusFace(msg structure.ResultMsg) {
 	logger.Info("寰�ES鎻掑叆浜鸿劯闈炴姤璀︿絾鏄姸鎬佽浆鎹㈡暟鎹�")
 	// 涓婁紶澶у浘
 	// 瑙e帇缂╁苟涓婁紶鍥剧墖
@@ -554,7 +569,7 @@
 		msg.Cid,
 		camera.Addr,
 		i.Timestamp,
-		strings.Split(bigPhotoUrl["fileUrl"].(string), "/")[1],
+		bigPhotoUrl["fileUrl"].(string),
 		msg.Tasklab.Taskid,
 		msg.Tasklab.Taskname,
 		"浜鸿劯",
@@ -580,7 +595,7 @@
 		0,
 		0,
 		0,
-		[]*ruleserver.BaseInfo{},
+		[]*structure.BaseInfo{},
 	}
 	requstbody, err := json.Marshal(pervideo)
 

--
Gitblit v1.8.0