From c4f4abbd7d40e75fef0eb1e1dadb78309c059d73 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期三, 13 十一月 2019 20:48:54 +0800
Subject: [PATCH] ---

---
 algorithm/static/static.go |   25 +++++++++++++++++--------
 1 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/algorithm/static/static.go b/algorithm/static/static.go
index b548cd9..f652775 100644
--- a/algorithm/static/static.go
+++ b/algorithm/static/static.go
@@ -12,7 +12,7 @@
 
 func Entrance(rule *protomsg.Rule, am *structure.AreaMap,lable *structure.Others,args *structure.SdkDatas,message *protomsg.SdkMessage) structure.LittleRuleResult {
 	if rule.PolygonId == am.AreaId { // 棣栧厛杩欐潯瑙勫垯寰楁槸杩欎釜绠楁硶鐨勮鍒欙紝鍏舵瑙勫垯鎵�瀵瑰簲鐨勫尯鍩焛d瑕佽窡鍖哄煙鏁版嵁鐨刬d瀵圭殑涓�
-		logger.Debug("---------璧颁簡浜哄憳寮傚父绠楁硶", rule.Id, rule.SdkArgAlias, rule.Operator, rule.SdkArgValue, am.AreaId)
+		logger.Debug("---------璧颁簡涓綋闈欐绠楁硶", rule.Id, rule.SdkArgAlias, rule.Operator, rule.SdkArgValue, am.AreaId)
 		if rule.SdkArgAlias == "score" || rule.SdkArgAlias == "proportion" || rule.SdkArgAlias == "size" || rule.SdkArgAlias == "" { // 鍒ゆ柇鐨勬槸鐩镐技鍊硷紝鍗犳瘮锛屽昂瀵哥瓑杩囨护鏉′欢锛屽鏋滃啀鏈夛紝杩樺彲浠ュ啀鍔�
 			return filterRule(rule, am)
 		} else if rule.SdkArgAlias == "duration" {
@@ -95,8 +95,8 @@
 }
 // 鍒ゆ柇涓�涓尯鍩熷唴鏈夋病鏈夐潤姝㈢殑鐩爣
 func CompareAndSave(rule *protomsg.Rule, am *structure.AreaMap,lable *structure.Others,args *structure.SdkDatas,message *protomsg.SdkMessage) structure.LittleRuleResult {
-	initN := 60
-	if rule.SdkId == "涓綋闈欐" && rule.SdkArgAlias == "duration" {
+	initN := 5
+	if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a977" && rule.SdkArgAlias == "duration" {
 		if init,err := strconv.Atoi(rule.SdkArgValue); err != nil {
 			logger.Debug("涓綋闈欐绠楁硶璇诲彇鎸佺画鏃堕棿澶辫触",err)
 		} else {
@@ -113,12 +113,19 @@
 		return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
 	} else {
 		flag := "false"
+		// 浠ヤ箣鍓嶉潤姝㈢殑瀵硅薄涓轰富鍒ゆ柇鏄惁闈欐
+		tars := []*structure.Arg{}
 		for _, tar := range structure.StaticMap[am.AreaId].Targets {
-			singleResult := SingleStatic(tar,am,lable,90)
+			singleResult,arg := SingleStatic(tar,am,lable,90)
 			if singleResult {
 				flag = "true"
+				tars = append(tars,arg)
+				logger.Info("闈欐鐨勭洰鏍囷細",arg.Id,arg.Location,arg.Score)
 			}
 		}
+
+		// 鎶婃弧瓒虫潯浠剁殑鐩爣鏀捐繘areaMap涓�
+		am.AlarmObj = tars
 		// 鏇存柊鏁版嵁,鎶婃柊鏉ョ殑鏁版嵁鍐欏叆缂撳瓨
 		objs := []*structure.Obj{}
 		for _, tar := range am.FilterData {
@@ -153,11 +160,13 @@
 }
 
 // 鍒ゆ柇涓�涓洰鏍囨槸鍚﹂潤姝簡鎸囧畾鏃堕棿
-func SingleStatic(person *structure.Obj, am *structure.AreaMap,lable *structure.Others, argValue float64) bool{
+func SingleStatic(person *structure.Obj, am *structure.AreaMap,lable *structure.Others, argValue float64) (bool,*structure.Arg){
 	flag := false
+	var o *structure.Arg = nil
 	for _, obj := range am.FilterData {
 		if person.Id == obj.Id {
 			coincidenceDegree := PgsInterPercent(Rect2Point(person.Location), obj.Location, 1, 1)
+			o = obj
 			if coincidenceDegree >= argValue {
 				flag = true
 			}
@@ -166,13 +175,13 @@
 	if flag { // 鏈変竴涓璞′繚鎸侀潤姝紙id鐩哥瓑骞朵笖閲嶅悎搴﹂珮浜庨槇鍊硷級
 		flagTime := TimerAlarm(lable,person,flag,am.AreaId)
 		if flagTime == "10" || flagTime == "11" {
-			return flag
+			return flag,o
 		} else {
-			return false
+			return false,o
 		}
 	} else {
 		TimerAlarm(lable,person,flag,am.AreaId)
-		return flag
+		return flag,o
 	}
 }
 var rw sync.RWMutex

--
Gitblit v1.8.0