From 0cacae93b146ea559cbc5980ddeb53893e5fab41 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期二, 30 七月 2019 19:56:43 +0800
Subject: [PATCH] 联动任务缓存数据

---
 /dev/null                    |    7 ---
 insertdata/insertDataToEs.go |   28 +++++++------
 ruleserver/ruleToformula.go  |   36 +++++++++++------
 main.go                      |   11 -----
 ruleserver/timeTicker.go     |   14 ++++---
 5 files changed, 46 insertions(+), 50 deletions(-)

diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go
index 9b1e92f..7926e92 100644
--- a/insertdata/insertDataToEs.go
+++ b/insertdata/insertDataToEs.go
@@ -360,20 +360,22 @@
 			//InsertYolo(msg.RuleResult["cacheData"].(ruleserver.ResultMsg))
 			// 鎶婄紦瀛樼殑鏁版嵁涓婁紶鍚庡緱鍒板湴鍧�瀛樿繘鍘�
 			// 瑙e帇缂╁苟涓婁紶鍥剧墖
-			msg1 := msg.RuleResult["cacheData"].(ruleserver.ResultMsg)
-			bdata, err := util.UnCompress(msg1.Data)
-			if err != nil {
-				panic("瑙e帇缂╁浘鐗囨椂鍑虹幇閿欒")
+			msgs := msg.RuleResult["cacheData"].([]ruleserver.ResultMsg)
+			for _,msg1 := range msgs {
+				bdata, err := util.UnCompress(msg1.Data)
+				if err != nil {
+					panic("瑙e帇缂╁浘鐗囨椂鍑虹幇閿欒")
+				}
+				i := protomsg.Image{}
+				err = proto.Unmarshal(bdata, &i)
+				resp1, err1 := util.DrawPolygonOnImage(msg1.Cid, i, msg1.RuleResult["yolo"].([]ruleserver.Result), weedfsUrl)
+				if err1 != nil {
+					logger.Error("缂撳瓨鏁版嵁鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err)
+				} else {
+					logger.Info("涓婁紶鐨勫浘鐗囦俊鎭細", resp1)
+				}
+				url = append(url, strings.Split(resp1["fileUrl"].(string), "/")[1])
 			}
-			i := protomsg.Image{}
-			err = proto.Unmarshal(bdata, &i)
-			resp1, err1 := util.DrawPolygonOnImage(msg1.Cid, i, msg1.RuleResult["yolo"].([]ruleserver.Result), weedfsUrl)
-			if err1 != nil {
-				logger.Error("缂撳瓨鏁版嵁鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err)
-			} else {
-				logger.Info("涓婁紶鐨勫浘鐗囦俊鎭細", resp1)
-			}
-			url = append(url, strings.Split(resp1["fileUrl"].(string), "/")[1])
 		}
 		url = append(url, strings.Split(resp["fileUrl"].(string), "/")[1])
 		esDataId := uuid.NewV4().String()
diff --git a/insertdata/insertDataToEs_test.go b/insertdata/insertDataToEs_test.go
deleted file mode 100644
index a3f46e8..0000000
--- a/insertdata/insertDataToEs_test.go
+++ /dev/null
@@ -1,7 +0,0 @@
-package insertdata
-
-import "testing"
-
-func TestInsertToEs(t *testing.T){
-	//InsertToEs()
-}
\ No newline at end of file
diff --git a/main.go b/main.go
index 987cf1a..8276e02 100644
--- a/main.go
+++ b/main.go
@@ -109,17 +109,6 @@
 		panic("瑙f瀽msg鏃跺嚭鐜伴敊璇�")
 	}
 
-	// 鎵�201鐨勪汉鑴告暟鎹�
-	//for _, sdkinfo := range m.Tasklab.Sdkinfos {
-	//	if sdkinfo.Sdktype == "FaceDetect" && m.Cid == "e7e3f5b0-d0ef-40af-a9c9-eefd736937bf"{ // 浜鸿劯妫�娴�
-	//		if len(sdkinfo.Sdkdata) > 1 {
-	//			logger.Debug("鏈�201鐨勪汉鑴告暟鎹簡")
-	//		} else {
-	//			logger.Debug("娌℃湁201鐨勪汉鑴告暟鎹�")
-	//		}
-	//	}
-	//}
-
 	// 鍏堣繘琛屼竴涓嬭拷韪�
 	ruleserver.FaceIsSame(&m)
 	args.CameraId = m.Cid
diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index 8bfc5f4..95e7e00 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -2,6 +2,7 @@
 
 import (
 	"fmt"
+	"os"
 	"ruleprocess/cache"
 	"ruleprocess/logger"
 	"sort"
@@ -71,7 +72,7 @@
 	CameraId   string
 	TaskId     string
 	Sdkdata    []*SdkData
-	RuleResult map[string]interface{} // 杩囧畬瑙勫垯鍚庢墦鐨勬爣绛� face: []FaceResult, yolo: []Result, cacheData: SdkDatas, timeLabel: 0,1,2,3,4,5
+	RuleResult map[string]interface{} // 杩囧畬瑙勫垯鍚庢墦鐨勬爣绛� face: []FaceResult, yolo: []Result, cacheData: []ResultMsg, timeLabel: 0,1,2,3,4,5
 }
 
 type ResultMsg struct {
@@ -375,7 +376,7 @@
 	// new涓�涓畾鏃跺櫒锛屽鏋滀互姝roupId涓烘爣蹇楃殑瀹氭椂鍣ㄤ笉瀛樺湪鐨勮瘽
 	logger.Info("------------------------------------------褰撳墠鏄仈鍔ㄤ换鍔★紝瑙勫垯鏄細", groupRule.GroupText)
 	var flag bool = true
-	var timeEle = TimeElement{N: 3, InitN: 3, GroupId: groupRule.GroupId}
+	var timeEle = TimeElement{N: 2, InitN: 2, GroupId: groupRule.GroupId}
 	for k, timeEle1 := range TimeEleList {
 		if k == groupRule.GroupId {
 			flag = false // 宸茬粡鏈変簡杩欎釜瀹氭椂鍣ㄥ氨缃负false 涓嶅啀鏂板
@@ -383,7 +384,7 @@
 		}
 	}
 	if flag { // 濡傛灉杩樻病鏈夎繖涓畾鏃跺櫒鍏冪礌灏辨柊澧炰竴涓�
-		timeEle := TimeElement{N: 3, InitN: 3, GroupId: groupRule.GroupId} // 鎵旇繘鍘讳竴涓畾鏃跺櫒鍏冪礌
+		//timeEle := TimeElement{N: 2, InitN: 2, GroupId: groupRule.GroupId} // 鎵旇繘鍘讳竴涓畾鏃跺櫒鍏冪礌
 		//TimeEleList = make(map[string]timeElement)
 		TimeEleList[groupRule.GroupId] = &timeEle // 瀹氭椂鍣ㄥ厓绱犱互瑙勫垯缁刬d涓洪敭
 		logger.Info("---------------------------------------------鑱斿姩浠诲姟鍒涘缓浜嗚鏁板櫒骞朵笖璁℃暟鍣ㄩ泦鍚堜负锛�", TimeEleList)
@@ -396,7 +397,7 @@
 				}
 			}
 			if flag1 {
-				TimeEleList[groupRule.GroupId].RuleResults = append(TimeEleList[groupRule.GroupId].RuleResults, &RuleResult{groupRule.Rules[j].CameraId, groupRule.Rules[j].Sort, "", groupRule.Rules[j].RuleWithPre})
+				TimeEleList[groupRule.GroupId].RuleResults = append(TimeEleList[groupRule.GroupId].RuleResults, &RuleResult{groupRule.Rules[j].CameraId, groupRule.Rules[j].Sort, "", groupRule.Rules[j].RuleWithPre,&ResultMsg{message,args.RuleResult}})
 			}
 		}
 	}
@@ -421,6 +422,7 @@
 			}
 		}
 		if isPerfect {
+			logger.Debug("鏁扮粍瀹屾弧浜嗭紝鑱斿姩浠诲姟鍙互鎴愬姛鎶ヨ浜嗭紒")
 			// 灏嗘暟缁勬寜sort鎺掑簭
 			sort.Sort(SubList(timeEle.RuleResults))
 			// 鎺掑簭鍚庡彇鍚勮嚜鐨勭粨鏋滃拰杩炴帴绗︽嫾鍑鸿鍒欒〃杈惧紡寰楀嚭缁撴灉
@@ -434,12 +436,13 @@
 				result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
 				if result.(bool) {
 					logger.Info("___________________________________________________________________鑱斿姩浠诲姟鎶ヨ")
-					args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, "", groupRule.GroupId, groupRule.DefenceState,groupRule.AlarmLevel, groupRule.GroupText, []Rect{}, ""})
-					//logger.Info("-------------------yolo缁撴灉鏍囩鏈夊嚑涓�", len(args.RuleResult["yolo"].([]Result)))
-					if args.RuleResult["face"] != nil {
-						//logger.Info("-------------------face缁撴灉鏍囩鏈夊嚑涓�", len(args.RuleResult["face"].([]FaceResult)))
+					// 鎶婃暟缁勯噷缂撳瓨鐨勬暟鎹彇鍑烘潵涓�璧锋姤璀�
+					args.RuleResult["linkCache"] = []*ResultMsg{}
+					for _, ruleRes := range TimeEleList[groupRule.GroupId].RuleResults {
+						args.RuleResult["linkCache"] = append(args.RuleResult["linkCache"].([]*ResultMsg),ruleRes.CacheData)
 					}
-					//os.Exit(0)
+					logger.Debug("鑱斿姩浠诲姟缂撳瓨浜嗗嚑涓暟鎹�",len(args.RuleResult["linkCache"].([]*ResultMsg)))
+					os.Exit(1)
 				}
 			}
 		} else {
@@ -447,13 +450,20 @@
 		}
 	} else { // 娌℃湁鎶ヨ锛�
 		//logger.Info("杩欏抚鍥惧儚鍦ㄤ换鍔′笅鐨勪竴鏁存潯瑙勫垯涓嬶紙鑱斿姩浠诲姟涓嬪氨鏄窡鏈憚鍍忔満鍍忕浉鍏崇殑灏忚鍒欙級鐨勫垽鏂粨鏋滀负false")
-		// 鎵�浠ヤ篃瑕佸幓缁撴灉鏁扮粍閲屾斁鍊兼垨鏇存柊
-		for _, va := range timeEle.RuleResults {
-			if args.CameraId != "" && va.CameraId == args.CameraId {
-				va.Result = strconv.FormatBool(isOk)
+		// 鎵�浠ヤ篃瑕佸幓缁撴灉鏁扮粍閲屾斁鍊兼垨鏇存柊   07/30澶囨敞锛�  涓嶅簲鏀惧�硷紝搴斿垹闄ゅ畾鏃跺櫒锛岀瓑涓簍rue鏃跺啀搴﹀紑鍚�
+		//for _, va := range timeEle.RuleResults {
+		//	if args.CameraId != "" && va.CameraId == args.CameraId {
+		//		va.Result = strconv.FormatBool(isOk)
+		//	}
+		//}
+		for k,_ := range TimeEleList  {
+			if k == groupRule.GroupId {
+				delete(TimeEleList,k)
+				logger.Debug("鍥犱负瀹氭椂鍣ㄧ殑涓�甯ф暟鎹粨鏋滀负false锛屽共鎺夊畾鏃跺櫒")
 			}
 		}
 		// 鍥犱负鏈抚鏁版嵁涓嶇鍚堣鍒欙紝鎵�浠ヤ篃涓嶇敤缁熻缁撴灉鏁扮粍閲岀殑涓滆タ
+
 	}
 }
 
diff --git a/ruleserver/timeTicker.go b/ruleserver/timeTicker.go
index a748788..fcc5104 100644
--- a/ruleserver/timeTicker.go
+++ b/ruleserver/timeTicker.go
@@ -24,10 +24,11 @@
 }
 type RuleResult struct {
 	// 姣忎釜鎽勫儚鏈轰竴涓粨鏋勪綋
-	CameraId    string // 鎽勫儚鏈篿d
-	Sort        int32  // 鎽勫儚鏈哄湪瑙勫垯缁勪腑搴忓彿
-	Result      string // 鎽勫儚鏈鸿繃婊ゆ暟鎹緱鍑虹殑缁撴灉
-	RuleWithPre string // 鎽勫儚鏈轰箣闂寸殑杩炴帴绗�
+	CameraId    string    // 鎽勫儚鏈篿d
+	Sort        int32     // 鎽勫儚鏈哄湪瑙勫垯缁勪腑搴忓彿
+	Result      string    // 鎽勫儚鏈鸿繃婊ゆ暟鎹緱鍑虹殑缁撴灉
+	RuleWithPre string    // 鎽勫儚鏈轰箣闂寸殑杩炴帴绗�
+	CacheData   *ResultMsg // 缂撳瓨褰撳墠甯ф暟鎹�
 }
 
 func TimeTicker() {
@@ -91,14 +92,15 @@
 						logger.Debug("鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��-------------棣栨绗﹀悎鎸佺画鏃堕棿瑙勫垯骞舵姤璀�")
 						flagTime = "10"
 						timeEle.AlarmFlag = true
-						args.RuleResult["cacheData"] = timeEle.CacheSdkData
+						args.RuleResult["cacheData"] = []ResultMsg{}
+						args.RuleResult["cacheData"] = append(args.RuleResult["cacheData"].([]ResultMsg),timeEle.CacheSdkData)
 						args.RuleResult["timeLabel"] = flagTime
 					}
 					if timeEle.N != 0 {
 						flagTime = "00"
 						// 鏈夊畾鏃跺櫒浣嗕笉涓�0鎶婂凡鎵撶殑鏍囩鍒犻櫎
 						// args.RuleResult = nil
-						logger.Debug("------------------------缁撴灉涓虹湡浣嗚鏁板櫒涓嶅埌0锛屼笉鎶ヨ,姝ゆ椂鐨勮鏁板櫒",k,"鐨勫�间负锛�", timeEle.N)
+						logger.Debug("------------------------缁撴灉涓虹湡浣嗚鏁板櫒涓嶅埌0锛屼笉鎶ヨ,姝ゆ椂鐨勮鏁板櫒", k, "鐨勫�间负锛�", timeEle.N)
 					}
 				}
 			}

--
Gitblit v1.8.0