From 0d95e05cf47aa7b24a57a673db46d5607016016c Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期六, 16 十一月 2019 11:11:14 +0800
Subject: [PATCH] 目标加timeLable

---
 algorithm/static/static.go |   49 ++++++++++++++++++++++++++++++-------------------
 1 files changed, 30 insertions(+), 19 deletions(-)

diff --git a/algorithm/static/static.go b/algorithm/static/static.go
index c0a1686..282a506 100644
--- a/algorithm/static/static.go
+++ b/algorithm/static/static.go
@@ -16,7 +16,10 @@
 		if rule.SdkArgAlias == "score" || rule.SdkArgAlias == "proportion" || rule.SdkArgAlias == "size" || rule.SdkArgAlias == "" { // 鍒ゆ柇鐨勬槸鐩镐技鍊硷紝鍗犳瘮锛屽昂瀵哥瓑杩囨护鏉′欢锛屽鏋滃啀鏈夛紝杩樺彲浠ュ啀鍔�
 			return filterRule(rule, am)
 		} else if rule.SdkArgAlias == "duration" {
-			return CompareAndSave(rule,am,lable,args,message)
+
+			lr := CompareAndSave(rule,am,lable,args,message)
+			logger.Info("涓綋闈欐瑙勫垯缁撴灉锛�",lr)
+			return lr
 		} else {
 			return structure.LittleRuleResult{}
 		}
@@ -109,15 +112,22 @@
 			initN = init
 		}
 	}
-	logger.Info("鐪嬩竴涓嬮潤姝㈠尯鍩熷唴鐨勭洰鏍囷細",am.AreaId)
-	for _, tar := range structure.StaticMap[am.AreaId].Targets {
-		logger.Info("鍏蜂綋鐩爣锛�",tar.Location)
+	if len(am.FilterData) < 0 {
+		logger.Info("鏈抚鍖哄煙鍐呮棤鏁版嵁锛岃繑鍥�")
+		// 娓呯┖缂撳瓨鐨勭洰鏍�
+
+		return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
 	}
-	if len(structure.StaticMap[am.AreaId].Targets) == 0 { // 鍗崇涓�甯ф暟鎹�(涔熶笉涓�瀹�)锛岃繕娌℃湁缂撳瓨
-		logger.Info("涔嬪墠鏃犵紦瀛�")
+	m := make(map[string]interface{})
+	m["target"] = []structure.Result{}
+	m["target"] = append(m["target"].([]structure.Result), structure.Result{args.TaskId, "", "", true, 0, "", am.FilterData, am.AreaJson, false,*lable})
+
+	if structure.StaticMap[am.AreaId] == nil || len(structure.StaticMap[am.AreaId].Targets) == 0 {
+		logger.Info("涔嬪墠鏃犵紦瀛樺苟涓旀娆″尯鍩熷唴鏈変汉")
+
 		objs := []*structure.Obj{}
 		for _, tar := range am.FilterData {
-			obj := &structure.Obj{Id: tar.Id, Location: tar.Location, N: initN,InitN:initN}
+			obj := &structure.Obj{Id: tar.Id, Location: tar.Location, N: initN, InitN:initN, AlarmFlag: false, BufferFlag: 10, CacheSdkData:structure.ResultMsg{message, m}}
 			objs = append(objs, obj)
 		}
 		structure.StaticMap[am.AreaId] = &structure.CameraArea{objs}
@@ -127,6 +137,10 @@
 		flag := "false"
 		// 浠ヤ箣鍓嶉潤姝㈢殑瀵硅薄涓轰富鍒ゆ柇鏄惁闈欐
 		tars := []*structure.Arg{}
+		//logger.Info("鐪嬩竴涓嬮潤姝㈠尯鍩熷唴鐨勭洰鏍囷細",am.AreaId)
+		//for _, tar := range structure.StaticMap[am.AreaId].Targets {
+		//	logger.Info("鍏蜂綋鐩爣锛�",tar.Location)
+		//}
 		for _, tar := range structure.StaticMap[am.AreaId].Targets {
 			singleResult,arg := SingleStatic(tar,am,lable,90)
 			if singleResult {
@@ -139,7 +153,6 @@
 		// 鎶婃弧瓒虫潯浠剁殑鐩爣鏀捐繘areaMap涓�
 		am.AlarmObj = tars
 		// 鏇存柊鏁版嵁,鎶婃柊鏉ョ殑鏁版嵁鍐欏叆缂撳瓨
-		objs := []*structure.Obj{}
 		for _, tar := range am.FilterData {
 			flag1 := false
 			for _, OBJ := range structure.StaticMap[am.AreaId].Targets {
@@ -148,11 +161,10 @@
 				}
 			}
 			if !flag1 { // 闆嗗悎涓病鏈夌殑鎵嶆彃鍏�
-				obj := &structure.Obj{Id: tar.Id, Location: tar.Location, N: initN,InitN:initN,AlarmFlag: false, BufferFlag: 10, CacheSdkData: structure.ResultMsg{message, nil}}
-				objs = append(objs, obj)
+				obj := &structure.Obj{Id: tar.Id, Location: tar.Location, N: initN, InitN:initN,AlarmFlag: false, BufferFlag: 10, CacheSdkData: structure.ResultMsg{message, m}}
+				structure.StaticMap[am.AreaId].Targets = append(structure.StaticMap[am.AreaId].Targets, obj)
 			}
 		}
-		structure.StaticMap[am.AreaId] = &structure.CameraArea{objs}
 		return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + flag, rule.Sort}
 	}
 }
@@ -187,20 +199,20 @@
 		}
 	}
 	if flag { // 褰撳墠妫�娴嬪璞′繚鎸侀潤姝紙id鐩哥瓑骞朵笖閲嶅悎搴﹂珮浜庨槇鍊硷級
-		flagTime := TimerAlarm(lable,person,flag,am.AreaId)
+		flagTime := TimerAlarm(o,person,flag,am.AreaId)
 		if flagTime == "10" || flagTime == "11" {
 			return flag,o
 		} else {
 			return false,o
 		}
 	} else {
-		TimerAlarm(lable,person,flag,am.AreaId)
+		TimerAlarm(o,person,flag,am.AreaId)
 		return flag,o
 	}
 }
 var rw sync.RWMutex
 // 鍒ゆ柇鏄惁绗﹀悎瀹氭椂鍣ㄦ潯浠�
-func TimerAlarm(oth *structure.Others,person *structure.Obj, result bool,areaId string) (string) {
+func TimerAlarm(o *structure.Arg,person *structure.Obj, result bool,areaId string) (string) {
 	var flagTime string //
 	logger.Info("鐩爣鐨勫畾鏃跺櫒锛�")
 	rw.Lock()
@@ -211,15 +223,15 @@
 					if tar.N == 0 && tar.AlarmFlag {
 						logger.Debug("-------------------------绗﹀悎鎸佺画鏃堕棿瑙勫垯浣嗗苟涓嶆槸棣栨锛屼笉鎶ヨ")
 						flagTime = "11"
-						oth.TimeLabel = flagTime
+						o.TimeLable = flagTime
+						o.CacheData = tar.CacheSdkData
 					}
 					if tar.N == 0 && !tar.AlarmFlag { // 杩欑粍瑙勫垯鐨勫畾鏃跺櫒瑕佸叏閮ㄧ瓑浜�0   鏆備笖璁や负涓�缁勮鍒欏彧鏈変竴涓畾鏃跺櫒
 						logger.Debug("鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��-------------棣栨绗﹀悎鎸佺画鏃堕棿瑙勫垯骞舵姤璀�")
 						flagTime = "10"
 						tar.AlarmFlag = true
-						oth.CacheData = []structure.ResultMsg{}
-						oth.CacheData = append(oth.CacheData,tar.CacheSdkData)
-						oth.TimeLabel = flagTime
+						o.TimeLable = flagTime
+						o.CacheData = tar.CacheSdkData
 					}
 					if tar.N != 0 {
 						flagTime = "00"
@@ -236,7 +248,6 @@
 						if tar.BufferFlag == 0 {
 							logger.Debug("------------------------------鏉�姝昏鏁板櫒锛屾姤璀︽甯х姸鎬佹敼鍙樼殑鏁版嵁锛屾鏃剁殑璁℃暟鍣ㄧ殑鍊间负", tar.N)
 							flagTime = "12"
-							oth.TimeLabel = flagTime
 							structure.StaticMap[areaId].Targets = append(structure.StaticMap[areaId].Targets[:index],structure.StaticMap[areaId].Targets[index+1:]...)
 						} else {
 							if tar.BufferFlag > 0 {

--
Gitblit v1.8.0