From fce697021526285f7e06387ea8f282d11ed25155 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期六, 29 六月 2019 16:57:23 +0800
Subject: [PATCH] 把区域数据变为指针拷贝

---
 ruleserver/ruleToformula.go |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index 194c7f9..2b2138a 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -112,7 +112,7 @@
 	IsStatic    bool       // 鏄惁闈欐
 	ImageWidth  int        // 鎽勫儚鏈烘媿鎽勭殑鍥惧儚瀹� 鍍忕礌
 	ImageHeight int        // 鎽勫儚鏈烘媿鎽勭殑鍥惧儚楂� 鍍忕礌
-	AreaMapList []AreaMap  // 鏈瑂dk鎻愬彇鐨勬暟鎹寜鐓у尯鍩熷垝鍒嗗悗鐨勬暟鎹泦鍚�
+	AreaMapList []*AreaMap  // 鏈瑂dk鎻愬彇鐨勬暟鎹寜鐓у尯鍩熷垝鍒嗗悗鐨勬暟鎹泦鍚�
 }
 
 // 浠庣畻娉曟ā鍧楀効鎷挎潵鐨勫涓�甯у浘鍍忓悇涓畻娉曟彁鍙栫殑鏁版嵁闆嗗悎
@@ -182,8 +182,8 @@
 	for _, polygon := range cameraPolygons {
 		areaMap := AreaMap{cameraId: cameraId, areaId: polygon.Id, areaJson: polygon.Polygon, triggerLine: polygon.TriggerLine, directionLine: polygon.DirectionLine}
 		// 涓烘瘡涓憚鍍忔満鍖哄煙濉厖鏁版嵁
-		areaMap.CountAreaObjs(arg)
-		arg.AreaMapList = append(arg.AreaMapList, areaMap)
+		(&areaMap).CountAreaObjs(arg)
+		arg.AreaMapList = append(arg.AreaMapList, &areaMap)
 	}
 }
 
@@ -230,8 +230,11 @@
 	log.Println("---------------------鐪嬩笅杩欎釜缁勮鍒欙細",groupRule.Rules)
 	for j := 0; j < len(groupRule.Rules); j++ {
 		for _, sdkData := range args.Sdkdata {
+			if sdkData.SdkId == "812b674b-2375-4589-919a-5c1c3278a975" {
+				log.Println("鍏ヤ镜鐨勭畻娉曟暟鎹�",sdkData)
+			}
 			for _, areaMap := range sdkData.AreaMapList {
-				ruleResult := filterRule(groupRule.Rules[j], &areaMap)
+				ruleResult := filterRule(groupRule.Rules[j], areaMap)
 				if ruleResult.Result != "" {
 					log.Println("鏉′欢瑙勫垯缁撴灉锛�", ruleResult.Result)
 					resultSplice = append(resultSplice, &ruleResult)
@@ -244,7 +247,7 @@
 	for _, sdkData := range args.Sdkdata {
 		for _, areaMap := range sdkData.AreaMapList {
 			for j := 0; j < len(groupRule.Rules); j++ {
-				putFaceToResult(groupRule.Rules[j], &areaMap, faces)
+				putFaceToResult(groupRule.Rules[j], areaMap, faces)
 			}
 		}
 	}
@@ -253,7 +256,7 @@
 	for j := 0; j < len(groupRule.Rules); j++ {
 		for _, sdkData := range args.Sdkdata {
 			for _, areaMap := range sdkData.AreaMapList {
-				ruleResult := transferParameters(groupRule.Rules[j], &areaMap)
+				ruleResult := transferParameters(groupRule.Rules[j], areaMap)
 				if ruleResult.Result != "" {
 					log.Println("鏁伴噺瑙勫垯缁撴灉锛�", ruleResult.Result)
 					resultSplice = append(resultSplice, &ruleResult)
@@ -265,7 +268,7 @@
 	for j := 0; j < len(groupRule.Rules); j++ {
 		for _, sdkData := range args.Sdkdata {
 			for _, areaMap := range sdkData.AreaMapList {
-				ruleResult := timeRuleResult(groupRule.Rules[j], &areaMap)
+				ruleResult := timeRuleResult(groupRule.Rules[j], areaMap)
 				if ruleResult.Result != "" {
 					log.Println("鏃堕棿瑙勫垯缁撴灉锛�", ruleResult.Result)
 					resultSplice = append(resultSplice, &ruleResult)
@@ -277,7 +280,7 @@
 	for j := 0; j < len(groupRule.Rules); j++ {
 		for _, sdkData := range args.Sdkdata {
 			for _, areaMap := range sdkData.AreaMapList {
-				duration(groupRule.Rules[j], &areaMap)
+				duration(groupRule.Rules[j], areaMap)
 			}
 		}
 	}

--
Gitblit v1.8.0