From 0b753bff2785604dbcbc6d0df2485cf0e84f0e32 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期一, 16 十二月 2019 16:07:31 +0800
Subject: [PATCH] ---

---
 algorithm/faceCompare/faceCompare.go   |   10 ++--
 algorithm/middleware/middleware.go     |    8 ++--
 algorithm/intrusion/intrusion.go       |    8 ++--
 algorithm/personTrack/personTrack.go   |   14 ++++---
 algorithm/face/face.go                 |   10 ++--
 algorithm/car/plate.go                 |   12 +++---
 structure/rule.go                      |    3 +
 algorithm/personUnsual/personUnsual.go |   12 +++---
 8 files changed, 40 insertions(+), 37 deletions(-)

diff --git a/algorithm/car/plate.go b/algorithm/car/plate.go
index dff8c3a..d2b5f9b 100644
--- a/algorithm/car/plate.go
+++ b/algorithm/car/plate.go
@@ -85,16 +85,16 @@
 		}
 		am.TargetNum = len(am.FilterData) // 鎶婄鍚堟潯浠剁殑鐩爣鏁伴噺鏇存柊鍒皌argetNum瀛楁
 		if am.TargetNum > 0 {
-			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort,am.FilterData}
 		} else {
-			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
+			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort,am.FilterData}
 		}
 
 	} else if rule.SdkArgAlias == "" {
 		if am.TargetNum > 0 {
-			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort,am.FilterData}
 		} else {
-			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
+			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort,am.FilterData}
 		}
 	}
 	return structure.LittleRuleResult{}
@@ -106,7 +106,7 @@
 	//logger.Info("褰撳墠灏忚鍒欐槸锛�---------", rule)
 	//logger.Info("寰楀嚭缁撴灉闃舵", "姣旇緝鐨勮鍒欐槸锛�", rule)
 	if rule.Operator == "" {
-		return structure.LittleRuleResult{am.SdkName, strconv.Itoa(am.TargetNum) + "" + rule.RuleWithPre, rule.Sort} // 濡傛灉鍚庨潰涓嶈窡鎿嶄綔绗﹀氨鐩存帴杩斿洖鏁伴噺  姣斿瑕佽窡涓嬩竴涓尯鍩熸瘮杈冩暟閲忕殑灏辩洿鎺ヨ繑鍥炴湰鍖哄煙鐨勬暟閲�
+		return structure.LittleRuleResult{am.SdkName, strconv.Itoa(am.TargetNum) + "" + rule.RuleWithPre, rule.Sort,am.FilterData} // 濡傛灉鍚庨潰涓嶈窡鎿嶄綔绗﹀氨鐩存帴杩斿洖鏁伴噺  姣斿瑕佽窡涓嬩竴涓尯鍩熸瘮杈冩暟閲忕殑灏辩洿鎺ヨ繑鍥炴湰鍖哄煙鐨勬暟閲�
 	}
 	//args := am.targetNum     targetNum 宸叉垚鎵�鏈夌洰鏍囩殑鎬绘暟閲忥紝杩欓噷鍙畻yolo鐨�
 	var num int = len(am.FilterData)
@@ -114,6 +114,6 @@
 	//logger.Info("杞﹁締鏁伴噺鍏紡",formula)
 	expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡
 	result, _ := expression.Evaluate(nil)                      // 寰楀埌鏁板鍏紡鐨勭粨鏋�
-	return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + " " + strconv.FormatBool(result.(bool)), rule.Sort}
+	return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + " " + strconv.FormatBool(result.(bool)), rule.Sort,am.FilterData}
 	// 鍔犱笂鍏充簬绠楁硶鐨勫垽鏂潯浠讹紝涓嶈兘鍙湁鍏充簬瑙勫垯鐨勶紝鏈夌殑绠楁硶鏈韩灏辨槸涓�涓鍒欙紝濡備釜浣撻潤姝紝闈犲彸琛�,鎵�浠ワ紝鎷垮埌褰撳墠瀛愯鍒欑殑sdkid鏉ュ垽鏂槸鍚︽槸閭d簺鐗规畩鐨勮鍒�
 }
\ No newline at end of file
diff --git a/algorithm/face/face.go b/algorithm/face/face.go
index 262358e..68313d6 100644
--- a/algorithm/face/face.go
+++ b/algorithm/face/face.go
@@ -41,7 +41,7 @@
 						flag = "true"
 					}
 					//logger.Info("---------浜鸿劯姣斿绗﹀悎鏉′欢鐨勬暟閲忎负锛�",len(am.FilterData))
-					return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + flag, rule.Sort}
+					return structure.LittleRuleResult{SdkName:am.SdkName, Result:rule.RuleWithPre + "" + flag, Sort:rule.Sort}
 				}
 			}
 			if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a97e" { // 浜鸿劯妫�娴�
@@ -84,16 +84,16 @@
 						am.TargetNum = len(am.FilterData) // 鎶婄鍚堟潯浠剁殑鐩爣鏁伴噺鏇存柊鍒皌argetNum瀛楁
 						if am.TargetNum > 0 {
 							logger.Info("锛侊紒锛侊紒锛侊紒锛侊紒锛佷汉鑴告娴嬫垚鍔�")
-							return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+							return structure.LittleRuleResult{SdkName:am.SdkName, Result:rule.RuleWithPre + "" + "true", Sort:rule.Sort,Target:am.FilterData}
 						} else {
-							return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
+							return structure.LittleRuleResult{SdkName:am.SdkName, Result:rule.RuleWithPre + "" + "false", Sort:rule.Sort}
 						}
 					}
 				} else if rule.SdkArgAlias == "" { // 浠�涔堝弬鏁伴兘涓嶉厤鐨勬儏鍐�
 					if am.TargetNum > 0 {
-						return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+						return structure.LittleRuleResult{SdkName:am.SdkName, Result:rule.RuleWithPre + "" + "true", Sort:rule.Sort,Target:am.FilterData}
 					} else {
-						return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
+						return structure.LittleRuleResult{SdkName:am.SdkName, Result:rule.RuleWithPre + "" + "false", Sort:rule.Sort}
 					}
 				}
 			}
diff --git a/algorithm/faceCompare/faceCompare.go b/algorithm/faceCompare/faceCompare.go
index f5a9d2f..bb99c72 100644
--- a/algorithm/faceCompare/faceCompare.go
+++ b/algorithm/faceCompare/faceCompare.go
@@ -41,7 +41,7 @@
 						flag = "true"
 					}
 					//logger.Info("---------浜鸿劯姣斿绗﹀悎鏉′欢鐨勬暟閲忎负锛�",len(am.FilterData))
-					return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + flag, rule.Sort}
+					return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + flag, rule.Sort,am.FilterData}
 				}
 			}
 			if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a97e" { // 浜鸿劯妫�娴�
@@ -85,16 +85,16 @@
 						//logger.Info("杩囧畬鏉′欢鍚庣殑鐩爣鏁伴噺涓猴細",am.TargetNum)
 						if am.TargetNum > 0 {
 							//logger.Info("锛侊紒锛侊紒锛侊紒锛侊紒锛佷汉鑴告娴嬫垚鍔�")
-							return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+							return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort,am.FilterData}
 						} else {
-							return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
+							return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort,am.FilterData}
 						}
 					}
 				} else if rule.SdkArgAlias == "" { // 浠�涔堝弬鏁伴兘涓嶉厤鐨勬儏鍐�
 					if am.TargetNum > 0 {
-						return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+						return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort,am.FilterData}
 					} else {
-						return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
+						return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort,am.FilterData}
 					}
 				}
 			}
diff --git a/algorithm/intrusion/intrusion.go b/algorithm/intrusion/intrusion.go
index 879318d..4097687 100644
--- a/algorithm/intrusion/intrusion.go
+++ b/algorithm/intrusion/intrusion.go
@@ -51,16 +51,16 @@
 		}
 		am.TargetNum = len(am.FilterData) // 鎶婄鍚堟潯浠剁殑鐩爣鏁伴噺鏇存柊鍒皌argetNum瀛楁
 		if am.TargetNum > 0 {
-			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort,am.FilterData}
 		} else {
-			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
+			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort,am.FilterData}
 		}
 
 	} else if rule.SdkArgAlias == "" {
 		if am.TargetNum > 0 {
-			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort,am.FilterData}
 		} else {
-			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
+			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort,am.FilterData}
 		}
 	}
 	return structure.LittleRuleResult{}
diff --git a/algorithm/middleware/middleware.go b/algorithm/middleware/middleware.go
index e1a3c2c..0c8c596 100644
--- a/algorithm/middleware/middleware.go
+++ b/algorithm/middleware/middleware.go
@@ -74,7 +74,7 @@
 					for _, areaMap := range sdkData.AreaMapList {
 						ruleResult := CallSo(sdk.Id, groupRule.Rules[j], areaMap,lable,args,message)
 						logger.Info("鍓嶇疆杩炴帴绗︼細",groupRule.Rules[j])
-						if groupRule.Rules[j].RuleWithPre == "鈯�" {
+						if groupRule.Rules[j].RuleWithPre == "鈯�" && len(ruleResult.Target) > 0 {
 							assembleDta(args,groupRule.Rules[j-1],groupRule.Rules[j])
 							// 鎶婂綋鍓嶅皬瑙勫垯缁撴灉缃┖
 							ruleResult = structure.LittleRuleResult{}
@@ -330,7 +330,7 @@
 						break
 					}
 				}
-				return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + flag, rule.Sort}
+				return structure.LittleRuleResult{SdkName:am.SdkName, Result:rule.RuleWithPre + "" + flag, Sort:rule.Sort}
 			}
 
 			if rule.Operator == "unsatisfy" || rule.Operator == "!=" { // 涓嶆弧瓒虫墍閫夌殑鏃堕棿瑙勫垯
@@ -350,7 +350,7 @@
 						break
 					}
 				}
-				return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + flag, rule.Sort}
+				return structure.LittleRuleResult{SdkName:am.SdkName, Result:rule.RuleWithPre + "" + flag, Sort:rule.Sort}
 			}
 
 		}
@@ -479,7 +479,7 @@
 		for _, sdkData := range args.Sdkdata {
 			for _, areaMap := range sdkData.AreaMapList {
 				logger.Info("sdkId鍜屽尯鍩焛d纰版挒锛�",areaMap.SdkId,rule2.SdkId,"---",areaMap.AreaId,rule2.PolygonId)
-				if areaMap.SdkId == rule2.SdkId && areaMap.AreaId == rule2.PolygonId {
+				if areaMap.AreaId == rule2.PolygonId {
 					area = *areaMap
 					goto second
 				}
diff --git a/algorithm/personTrack/personTrack.go b/algorithm/personTrack/personTrack.go
index d33e423..f06f1a4 100644
--- a/algorithm/personTrack/personTrack.go
+++ b/algorithm/personTrack/personTrack.go
@@ -76,16 +76,16 @@
 		}
 		am.TargetNum = len(am.FilterData) // 鎶婄鍚堟潯浠剁殑鐩爣鏁伴噺鏇存柊鍒皌argetNum瀛楁
 		if am.TargetNum > 0 {
-			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort,am.FilterData}
 		} else {
-			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
+			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort,am.FilterData}
 		}
 
 	} else if rule.SdkArgAlias == "" {
 		if am.TargetNum > 0 {
-			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort,am.FilterData}
 		} else {
-			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
+			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort,am.FilterData}
 		}
 	}
 	return structure.LittleRuleResult{}
@@ -135,7 +135,7 @@
 	//	return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
 	//}
 	// 鏃犺鏈夋病鏈夌浉浼艰�呴兘瑕佽繑鍥瀟rue
-	return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+	return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort,nil}
 }
 
 func Push(){
@@ -169,7 +169,9 @@
 	for {
 		select {
 		case data := <- sender:
-			logger.Debug("鎺ㄩ�佹暟鎹�:",len(data))
+			trackMap := make(map[string]interface{})
+			_ = json.Unmarshal(data, &trackMap)
+			logger.Info("鎺ㄩ�佹暟鎹�:",trackMap)
 			if err = sock.Send(data); err != nil {
 				logger.Error("鎺ㄩ�乻ocket鍙戦�佹暟鎹け璐�: %s", err.Error())
 			}
diff --git a/algorithm/personUnsual/personUnsual.go b/algorithm/personUnsual/personUnsual.go
index 9288fc0..0eeaa2f 100644
--- a/algorithm/personUnsual/personUnsual.go
+++ b/algorithm/personUnsual/personUnsual.go
@@ -57,16 +57,16 @@
 		}
 		am.TargetNum = len(am.FilterData) // 鎶婄鍚堟潯浠剁殑鐩爣鏁伴噺鏇存柊鍒皌argetNum瀛楁
 		if am.TargetNum > 0 {
-			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort,am.FilterData}
 		} else {
-			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
+			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort,am.FilterData}
 		}
 
 	} else if rule.SdkArgAlias == "" {
 		if am.TargetNum > 0 {
-			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort,am.FilterData}
 		} else {
-			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
+			return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort,am.FilterData}
 		}
 	}
 	return structure.LittleRuleResult{}
@@ -77,7 +77,7 @@
 	//logger.Info("褰撳墠灏忚鍒欐槸锛�---------", rule)
 	//logger.Info("寰楀嚭缁撴灉闃舵", "姣旇緝鐨勮鍒欐槸锛�", rule)
 	if rule.Operator == "" {
-		return structure.LittleRuleResult{am.SdkName, strconv.Itoa(am.TargetNum) + "" + rule.RuleWithPre, rule.Sort} // 濡傛灉鍚庨潰涓嶈窡鎿嶄綔绗﹀氨鐩存帴杩斿洖鏁伴噺  姣斿瑕佽窡涓嬩竴涓尯鍩熸瘮杈冩暟閲忕殑灏辩洿鎺ヨ繑鍥炴湰鍖哄煙鐨勬暟閲�
+		return structure.LittleRuleResult{am.SdkName, strconv.Itoa(am.TargetNum) + "" + rule.RuleWithPre, rule.Sort,am.FilterData} // 濡傛灉鍚庨潰涓嶈窡鎿嶄綔绗﹀氨鐩存帴杩斿洖鏁伴噺  姣斿瑕佽窡涓嬩竴涓尯鍩熸瘮杈冩暟閲忕殑灏辩洿鎺ヨ繑鍥炴湰鍖哄煙鐨勬暟閲�
 	}
 	//args := am.targetNum     targetNum 宸叉垚鎵�鏈夌洰鏍囩殑鎬绘暟閲忥紝杩欓噷鍙畻yolo鐨�
 	var num int = 0
@@ -89,6 +89,6 @@
 	formula := strconv.Itoa(num) + " " + rule.Operator + " " + rule.SdkArgValue
 	expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡
 	result, _ := expression.Evaluate(nil)                      // 寰楀埌鏁板鍏紡鐨勭粨鏋�
-	return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + " " + strconv.FormatBool(result.(bool)), rule.Sort}
+	return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + " " + strconv.FormatBool(result.(bool)), rule.Sort,am.FilterData}
 	// 鍔犱笂鍏充簬绠楁硶鐨勫垽鏂潯浠讹紝涓嶈兘鍙湁鍏充簬瑙勫垯鐨勶紝鏈夌殑绠楁硶鏈韩灏辨槸涓�涓鍒欙紝濡備釜浣撻潤姝紝闈犲彸琛�,鎵�浠ワ紝鎷垮埌褰撳墠瀛愯鍒欑殑sdkid鏉ュ垽鏂槸鍚︽槸閭d簺鐗规畩鐨勮鍒�
 }
diff --git a/structure/rule.go b/structure/rule.go
index 4d97c92..1629a82 100644
--- a/structure/rule.go
+++ b/structure/rule.go
@@ -113,7 +113,8 @@
 type LittleRuleResult struct {
 	SdkName string // 璁板綍涓嬫缁撴灉鏄摢涓猻dk鐨勭粨鏋�
 	Result  string // 宸插寘鍚簡鍓嶇疆杩炴帴绗�
-	Sort    int32
+	Sort    int32  // 瑙勫垯搴忓彿
+	Target  []*Arg
 }
 
 type TimeRange struct {

--
Gitblit v1.8.0