From f08948b36e73de524a8177f64dab91afd33fe8fd Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期三, 09 十月 2019 17:07:01 +0800
Subject: [PATCH] 把分值和id以及坐标都预备存上

---
 ruleserver/ruleToformula.go |   67 +++++++++++++++------------------
 1 files changed, 31 insertions(+), 36 deletions(-)

diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index a3f3354..da722fc 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -2,7 +2,7 @@
 
 import (
 	"ruleprocess/cache"
-	"ruleprocess/logger"
+	"basic.com/valib/logger.git"
 	"sort"
 	"strconv"
 	"strings"
@@ -82,6 +82,11 @@
 	RuleResult map[string]interface{} // 杩囧畬瑙勫垯鍚庢墦鐨勬爣绛� face: []FaceResult, yolo: []Result
 }
 
+type TargetInfo struct {
+	Rect
+	TargetId    uint64
+	TargetScore float64
+}
 // 杩囪鍒欏簱鎵撲笂鐨勬爣绛�
 type Result struct {
 	TaskId       string // 浠诲姟id
@@ -90,7 +95,7 @@
 	DefenceState bool   // 鏄惁甯冮槻
 	AlarmLevel   int32  // 鎶ヨ绛夌骇
 	RuleText     string // 鏂囧瓧鐗堣鍒欑粍
-	Location     []Rect // 鐩爣鐨勫潗鏍�
+	Location     []TargetInfo // 鐩爣鐨勫潗鏍�
 	AlarmPolygon string // 瑙﹀彂鐨勬姤璀︽
 	IsLink		 bool   // 鏄惁鏄仈鍔ㄤ换鍔�
 	Others
@@ -205,9 +210,8 @@
 						// 濡傛灉姝ょ粨鏋滀负鐪熶笖褰撳墠杩囩殑鏄痽olo绠楁硶锛屽簲璁颁笅姝よ鍒欐墍瀵瑰簲鐨剆dkName,鍙﹀锛岃繕瑕佸幓閲� (鍚庡姞锛氭妸姝ゆ潯瑙︾鐨勫尯鍩焛d涔熻褰曚笅鏉�)
 						if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) {
 							sdkNames = sdkName + ","
-							polygonId = groupRule.Rules[j].PolygonId + ","
 						}
-						if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(polygonId, groupRule.Rules[j].PolygonId) {
+						if strings.Contains(ruleResult.Result, "true") && !strings.Contains(polygonId, groupRule.Rules[j].PolygonId) {
 							polygonId = groupRule.Rules[j].PolygonId + ","
 						}
 						resultSplice = append(resultSplice, &ruleResult)
@@ -216,7 +220,6 @@
 			}
 		}
 	}
-
 	// 鍐嶈繃鍏朵粬鏁版嵁 杩欐鐩存帴寰楀埌缁撴灉锛堢湡鎴栧亣锛� 杩囩洰鏍囨暟閲�
 	for j := 0; j < len(groupRule.Rules); j++ {
 		for _, sdkData := range args.Sdkdata {
@@ -350,7 +353,7 @@
 				//}
 				logger.Warn("___________________________________________________________________________缁堜簬璧板畬涓囬噷闀垮緛")
 				// 鎶婁粬浠殑浣嶇疆鏁版嵁涔熶紶涓嬪幓
-				locations := []Rect{}
+				locations := []TargetInfo{}
 				for _, sdkData := range args.Sdkdata {
 					if sdkData.IpcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && sdkNames != "" { // 鎶妝olo鏁版嵁鐨勫悇涓洰鏍囩殑鍧愭爣杈撳嚭鏂逛究鍚庨潰鐢绘
 						for _, areaMap := range sdkData.AreaMapList {
@@ -372,7 +375,7 @@
 					//logger.Info("-------------------yolo缁撴灉鏍囩闀垮害", len(args.RuleResult["yolo"].([]Result)))
 				}
 				if faceFlag {
-					args.RuleResult["face"] = append(args.RuleResult["face"].([]FaceResult), FaceResult{Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, []Rect{}, polygonId, islink,label,}, faces})
+					args.RuleResult["face"] = append(args.RuleResult["face"].([]FaceResult), FaceResult{Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, []TargetInfo{}, polygonId, islink,label,}, faces})
 					//logger.Info("-------------------face缁撴灉鏍囩", len(args.RuleResult["face"].([]FaceResult)))
 					labelTypes = append(labelTypes,1)
 				}
@@ -411,11 +414,15 @@
 	return faces
 }
 
-func putYolosToResult(am *AreaMap) []Rect {
-	locations := []Rect{}
+func putYolosToResult(am *AreaMap) []TargetInfo {
+	locations := []TargetInfo{}
 	if len(am.filterData) > 0 {
 		for _, data := range am.filterData {
-			locations = append(locations, data.Location)
+			location := TargetInfo{}
+			location.Rect = data.Location
+			location.TargetId = data.Id
+			location.TargetScore = data.Score
+			locations = append(locations, location)
 		}
 	}
 	//logger.Println("-----------------------------------------------鍚浣犳槸绌虹殑锛�",faces)
@@ -580,7 +587,7 @@
 		//logger.Info("瑙勫垯鐨勭畻娉昳d鍜屽尯鍩熺殑绠楁硶id锛�", rule.SdkId, "===", am.sdkId)
 		if rule.PolygonId == am.areaId { // 绠楁硶鍜屽尯鍩熼兘寰楀鐨勪笂
 
-			if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && rule.SdkArgAlias != "time_rule"{
+			if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && rule.SdkArgAlias != "time_rule" {
 				if rule.RuleWithPre == "||" {
 					return LittleRuleResult{}
 				} else {
@@ -648,17 +655,15 @@
 						} else {
 							return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + "false", rule.Sort}
 						}
-					} else {
-						return LittleRuleResult{}
 					}
-				} else {
-					return LittleRuleResult{}
+				} else if rule.SdkArgAlias == "" { // 浠�涔堝弬鏁伴兘涓嶉厤鐨勬儏鍐�
+					if am.targetNum > 0 {
+						return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+					} else {
+						return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + "false", rule.Sort}
+					}
 				}
-			} else {
-				return LittleRuleResult{}
 			}
-		} else {
-			return LittleRuleResult{}
 		}
 	} else {
 		// 澶勭悊鐨勯兘鏄痽olo鏁版嵁
@@ -698,14 +703,16 @@
 					return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + "false", rule.Sort}
 				}
 
-			} else {
-				return LittleRuleResult{}
+			} else if rule.SdkArgAlias == "" {
+				if am.targetNum > 0 {
+					return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+				} else {
+					return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + "false", rule.Sort}
+				}
 			}
-
-		} else {
-			return LittleRuleResult{}
 		}
 	}
+	return LittleRuleResult{}
 }
 
 // 濡傛灉鏈夋寔缁椂闂存潯浠剁淮鎶ゅ紑鍚竴涓畾鏃跺櫒
@@ -756,18 +763,6 @@
 			result, _ := expression.Evaluate(nil)                      // 寰楀埌鏁板鍏紡鐨勭粨鏋�
 			return LittleRuleResult{am.sdkName, rule.RuleWithPre + " " + strconv.FormatBool(result.(bool)), rule.Sort}
 			// 鍔犱笂鍏充簬绠楁硶鐨勫垽鏂潯浠讹紝涓嶈兘鍙湁鍏充簬瑙勫垯鐨勶紝鏈夌殑绠楁硶鏈韩灏辨槸涓�涓鍒欙紝濡備釜浣撻潤姝紝闈犲彸琛�,鎵�浠ワ紝鎷垮埌褰撳墠瀛愯鍒欑殑sdkid鏉ュ垽鏂槸鍚︽槸閭d簺鐗规畩鐨勮鍒�
-		} else if rule.SdkId == "IsStatic" { // 闈欐绠楁硶
-			if am.isStatic {
-				return LittleRuleResult{}
-			} else {
-				return LittleRuleResult{}
-			}
-		} else if rule.SdkId == "KeepRight" { // 闈犲彸琛岀畻娉�
-			if am.keepRight {
-				return LittleRuleResult{}
-			} else {
-				return LittleRuleResult{}
-			}
 		}
 	}
 	return LittleRuleResult{}

--
Gitblit v1.8.0