From e2aab518eddae165b9a7c517fbaddaf692ac4070 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期二, 10 九月 2019 18:49:05 +0800
Subject: [PATCH] merge labelFilter

---
 util/common.go                 |   46 +++---
 util/upload.go                 |    3 
 go.sum                         |   19 --
 insertdata/insertDataToEs.go   |  139 +++++++++++++------
 go.mod                         |    2 
 ruleserver/ruleToformula.go    |   39 +++-
 main.go                        |    9 +
 ruleserver/readyDataForRule.go |  108 ++++++++++++--
 ruleserver/timeTicker.go       |    4 
 9 files changed, 242 insertions(+), 127 deletions(-)

diff --git a/go.mod b/go.mod
index 6eca960..3ebe584 100644
--- a/go.mod
+++ b/go.mod
@@ -5,7 +5,7 @@
 require (
 	basic.com/dbapi.git v0.0.0-20190822081128-ce924b8a905f
 	basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48
-	basic.com/pubsub/protomsg.git v0.0.0-20190822060153-dc8ca60fc531
+	basic.com/pubsub/protomsg.git v0.0.0-20190824080957-7b44351cb40b
 	basic.com/pubsub/sdkcompare.git v0.0.0-20190715013640-f536a4647d00
 	basic.com/valib/deliver.git v0.0.0-20190531095353-25d8c3b20051
 	basic.com/valib/gopherdiscovery.git v0.0.0-20190605034340-15d89d8b4e28
diff --git a/go.sum b/go.sum
index 7aed012..c82c1fe 100644
--- a/go.sum
+++ b/go.sum
@@ -1,23 +1,6 @@
-basic.com/dbapi.git v0.0.0-20190701055817-73bca225181f h1:CVB4pmUXTPPFN7w/DQfU1YWg2Tp2gG93TTr1M5W86sE=
-basic.com/dbapi.git v0.0.0-20190701055817-73bca225181f/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q=
-basic.com/dbapi.git v0.0.0-20190724082851-b6ae90344405 h1:BJzdtGipKxQAaptrwUNOVQZ3Qx4jbeAf72wkqBmm5vE=
-basic.com/dbapi.git v0.0.0-20190724082851-b6ae90344405/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q=
-basic.com/dbapi.git v0.0.0-20190822035835-8e0e9514983b h1:rgPZYF2rIPESZo6zKWgRnP3nzslEY3ZMeWjr0CVIL2g=
-basic.com/dbapi.git v0.0.0-20190822035835-8e0e9514983b/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q=
-basic.com/dbapi.git v0.0.0-20190822081128-ce924b8a905f h1:m7ONW0VqagpmWppr6GSa2Gykid202vCbV9worYCM+pg=
 basic.com/dbapi.git v0.0.0-20190822081128-ce924b8a905f/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q=
-basic.com/pubsub/cache.git v0.0.0-20190712095028-e73efb4afc3b h1:UAasACFqEYUBCuZkkdxYVc1QmSyB7McvNHS36QxDJp4=
-basic.com/pubsub/cache.git v0.0.0-20190712095028-e73efb4afc3b/go.mod h1:gHLJZz2ee1cGL0X0ae69fs56bAxkDgEQwDhhXZJNUcY=
-basic.com/pubsub/cache.git v0.0.0-20190718024458-be52360c4814 h1:KoSik/aiJNDt3d+qRKExLW4pNHZ7vU1wXHhWXxZi4qo=
-basic.com/pubsub/cache.git v0.0.0-20190718024458-be52360c4814/go.mod h1:gHLJZz2ee1cGL0X0ae69fs56bAxkDgEQwDhhXZJNUcY=
-basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48 h1:BBA30Rgljn6MRieC4gUncETJDyna3ObyubTo9HEQ2M0=
 basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48/go.mod h1:gHLJZz2ee1cGL0X0ae69fs56bAxkDgEQwDhhXZJNUcY=
-basic.com/pubsub/protomsg.git v0.0.0-20190801122504-ad6c105f7a2b h1:2eskhTo22eo07AmAj3xVo31U/+qRFf6P1qhlfxoaFOc=
-basic.com/pubsub/protomsg.git v0.0.0-20190801122504-ad6c105f7a2b/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
-basic.com/pubsub/protomsg.git v0.0.0-20190821115153-4d63ce5655e6 h1:qusWXX8/w5kEzDRadRAlag956j72bcKvhaIEF/5f5k0=
-basic.com/pubsub/protomsg.git v0.0.0-20190821115153-4d63ce5655e6/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
-basic.com/pubsub/protomsg.git v0.0.0-20190822060153-dc8ca60fc531 h1:XsygHuAqvEovNNOiG80qLoV9OtdcN8IPP+xv/Ajx+Eg=
-basic.com/pubsub/protomsg.git v0.0.0-20190822060153-dc8ca60fc531/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
+basic.com/pubsub/protomsg.git v0.0.0-20190824080957-7b44351cb40b/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
 basic.com/pubsub/sdkcompare.git v0.0.0-20190715013640-f536a4647d00 h1:sK+Tx7rvM9J2WnNIwrzMDjZSylWiKNfQO0prUBfKsDk=
 basic.com/pubsub/sdkcompare.git v0.0.0-20190715013640-f536a4647d00/go.mod h1:8by33F9E1w17Pw/rDgJGJXAo122w0wDENG14hiMS+RE=
 basic.com/valib/deliver.git v0.0.0-20190531095353-25d8c3b20051 h1:9flC2o3kasaM2Y6I+mY+mxmve/pyAY/UzGQZLT3lFHM=
diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go
index 13ac16e..ffdb4d4 100644
--- a/insertdata/insertDataToEs.go
+++ b/insertdata/insertDataToEs.go
@@ -9,7 +9,6 @@
 	"net"
 	"ruleprocess/cache"
 	"ruleprocess/logger"
-	"ruleprocess/structure"
 	"time"
 
 	"basic.com/pubsub/protomsg.git"
@@ -111,6 +110,7 @@
 	RuleText     string `json:"ruleText"`
 	DefenceState bool   `json:"defenceState"`
 	IsLink		 bool	`json:"isLink"`
+	LinkInfo	 string `json:"linkInfo"`
 }
 
 // 涓�涓猣ace瀵瑰涓鍒欑粍鐨勫綊缃汉鑴哥殑缁撴瀯浣�
@@ -181,7 +181,7 @@
 				//os.Exit(1)
 				for _,faceResult := range face.rules {
 					alarm := ChangeToString(faceResult.DefenceState, faceResult.AlarmLevel)
-					alarmRules = append(alarmRules, AlarmRule{faceResult.RuleGroupId, alarm, faceResult.RuleText, faceResult.DefenceState,faceResult.IsLink})
+					alarmRules = append(alarmRules, AlarmRule{faceResult.RuleGroupId, alarm, faceResult.RuleText, faceResult.DefenceState,faceResult.IsLink,""})
 				}
 				i := protomsg.Image{}
 				err = proto.Unmarshal(bdata, &i)
@@ -204,7 +204,7 @@
 				if err != nil {
 					logger.Error("涓婁紶灏忓浘鍑洪敊")
 				}
-				logger.Info("================灏忓浘鍦板潃:", resp["fileUrl"].(string))
+				//logger.Info("================灏忓浘鍦板潃:", resp["fileUrl"].(string))
 				sex := ""
 				if face.ThftRes.Gender == 1 {
 					sex = "鐢�"
@@ -337,7 +337,11 @@
 					//logger.Info("搴旇杩涙潵鎵嶅鐨�")
 					sdkNames = sdkNames + yoloResult.SdkName
 					alarm := ChangeToString(yoloResult.DefenceState, yoloResult.AlarmLevel)
-					alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText, yoloResult.DefenceState,yoloResult.IsLink})
+					linkInfo := ""
+					if yoloResult.IsLink {
+						linkInfo = "鑱斿姩浠诲姟"
+					}
+					alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText, yoloResult.DefenceState,yoloResult.IsLink,linkInfo})
 					// 涓婁紶缂撳瓨鏁版嵁鐨勫浘鐗囨嬁鍒皍rl
 					if yoloResult.Others.CacheData != nil {
 						//InsertYolo(msg.RuleResult["cacheData"].(ruleserver.ResultMsg))
@@ -395,6 +399,7 @@
 				resp, err = util.DrawPolygonOnImage(msg.Cid, i, msg.RuleResult["yolo"].([]structure.Result), weedfsUrl)
 				if err != nil {
 					logger.Error("鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err)
+					return
 				} else {
 					logger.Info("涓婁紶鐨勫浘鐗囦俊鎭細", resp)
 				}
@@ -415,52 +420,90 @@
 				logger.Error("鏌ヨ鎽勫儚鏈轰俊鎭け璐�")
 			}
 			serverIp, err := GetLocalIP()
+			if resp["fileUrl"] != nil {
+				url = append(url, resp["fileUrl"].(string))
+				esDataId := uuid.NewV4().String()
+				linksId := ""
+				if linkId != "" {
+					linksId = linkId
+				}
+				peraction := Personaction{
+					esDataId,
+					msg.Cid,
+					camera.Name,
+					camera.Addr,
+					msg.Tasklab.Taskid,
+					msg.Tasklab.Taskname,
+					sdkNames,
+					"",
+					alarmRules,
+					localConfig.ServerId,
+					localConfig.ServerName,
+					serverIp,
+					"",
+					url,
+					i.Timestamp,
+					linksId,
+					"",
+					isAlarm,
+					0,
+					0,
+					0,
+				}
+				requstbody, err := json.Marshal(peraction)
 
-			url = append(url, resp["fileUrl"].(string))
-			esDataId := uuid.NewV4().String()
-			linksId := ""
-			if linkId != "" {
-				linksId = linkId
-			}
-			peraction := Personaction{
-				esDataId,
-				msg.Cid,
-				camera.Name,
-				camera.Addr,
-				msg.Tasklab.Taskid,
-				msg.Tasklab.Taskname,
-				sdkNames,
-				"",
-				alarmRules,
-				localConfig.ServerId,
-				localConfig.ServerName,
-				serverIp,
-				"",
-				url,
-				i.Timestamp,
-				linksId,
-				"",
-				isAlarm,
-				0,
-				0,
-				0,
-			}
-			requstbody, err := json.Marshal(peraction)
+//<<<<<<< HEAD
+//			url = append(url, resp["fileUrl"].(string))
+//			esDataId := uuid.NewV4().String()
+//			linksId := ""
+//			if linkId != "" {
+//				linksId = linkId
+//			}
+//			peraction := Personaction{
+//				esDataId,
+//				msg.Cid,
+//				camera.Name,
+//				camera.Addr,
+//				msg.Tasklab.Taskid,
+//				msg.Tasklab.Taskname,
+//				sdkNames,
+//				"",
+//				alarmRules,
+//				localConfig.ServerId,
+//				localConfig.ServerName,
+//				serverIp,
+//				"",
+//				url,
+//				i.Timestamp,
+//				linksId,
+//				"",
+//				isAlarm,
+//				0,
+//				0,
+//				0,
+//			}
+//			requstbody, err := json.Marshal(peraction)
+//
+//			if err != nil {
+//				logger.Info("json parse error ", err)
+//				return
+//=======
+				if err != nil {
+					logger.Info("json parse error ", err)
+					return
+//>>>>>>> labelFilter
 
-			if err != nil {
-				logger.Info("json parse error ", err)
-				return
-
-			}
-			resp1, err2 := EsReq("POST", personAction, requstbody)
-			if err2 != nil {
-				logger.Error("寰�ES鎻掑叆鏁版嵁澶辫触", err)
-			} else {
-				logger.Debug("鎻掑叆es杩斿洖鐨勬暟鎹俊鎭槸锛�", resp1)
-				// 鍙戝嚭褰曞儚淇″彿
-				ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: esDataId, CameraId: msg.Cid, TaskId: msg.Tasklab.Taskid, ImgId: i.Id, SdkIds: []string{}, Type: 2})
-				logger.Warn("__________________________________________寰�ES鎻掑叆yolo鏁版嵁鎴愬姛")
-				//os.Exit(1)
+				}
+				resp1, err2 := EsReq("POST", personAction, requstbody)
+				if err2 != nil {
+					logger.Error("寰�ES鎻掑叆鏁版嵁澶辫触", err)
+				} else {
+					logger.Debug("鎻掑叆es杩斿洖鐨勬暟鎹俊鎭槸锛�", resp1)
+					// 鍙戝嚭褰曞儚淇″彿
+					ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: esDataId, CameraId: msg.Cid, TaskId: msg.Tasklab.Taskid, ImgId: i.Id, SdkIds: []string{}, Type: 2})
+					logger.Warn("__________________________________________寰�ES鎻掑叆yolo鏁版嵁鎴愬姛")
+					//os.Exit(1)
+				}
 			}
 		} else {
 			logger.Debug("timeLabel鏉′欢閮戒笉绗﹀悎锛�")
diff --git a/main.go b/main.go
index 0ea330b..a8adc1a 100644
--- a/main.go
+++ b/main.go
@@ -4,6 +4,8 @@
 	"basic.com/dbapi.git"
 	"basic.com/pubsub/protomsg.git"
 	"basic.com/valib/deliver.git"
+	"net/http"
+	_ "net/http/pprof"
 	"ruleprocess/insertdata"
 	"ruleprocess/structure"
 	"ruleprocess/util"
@@ -37,14 +39,17 @@
 
 }
 func main() {
+	//fmt.Println("缂撳瓨鍒濆鍖栧畬鎴�",<- initchan)//dbserver鍒濆鍖栧畬姣�
+	go func() {
+		http.ListenAndServe("0.0.0.0:8899",nil)
+	}()
 	flag.Parse()
 	wg := sync.WaitGroup{}
-	wg.Add(2)
+	wg.Add(3)
 
 	dbapi.Init(*dbIp, *dbPort)
 	go cache.Init(initchan, *dbIp, *surveyPort, *pubPort)
 	logger.Info("cache init completed!!!", <-initchan) //dbserver鍒濆鍖栧畬姣�
-	//fmt.Println("缂撳瓨鍒濆鍖栧畬鎴�",<- initchan)//dbserver鍒濆鍖栧畬姣�
 	ruleserver.Init()
 	go ruleserver.TimeTicker()
 	go ruleserver.StartServer()
diff --git a/ruleserver/readyDataForRule.go b/ruleserver/readyDataForRule.go
index f9148f8..9b77c3e 100644
--- a/ruleserver/readyDataForRule.go
+++ b/ruleserver/readyDataForRule.go
@@ -1,8 +1,8 @@
 package ruleserver
 
 import (
+	"basic.com/dbapi.git"
 	bigCache "basic.com/pubsub/cache.git"
-	"basic.com/pubsub/cache.git/esutil"
 	"basic.com/pubsub/protomsg.git"
 	"encoding/json"
 	"errors"
@@ -17,7 +17,6 @@
 	"net"
 	"ruleprocess/cache"
 	"ruleprocess/logger"
-	"ruleprocess/structure"
 	"strconv"
 	"time"
 )
@@ -52,12 +51,25 @@
 	}
 	logger.Debug("鏈満淇℃伅鍜宻erver淇℃伅锛�", localConfig, serverIp, serverPort)
 	bigCache.Init(dbTablePersons, serverIp, serverPort, localConfig.ServerId)
-	sock, err = req.NewSocket();
-	if err != nil {
-		logger.Error("鍒涘缓璇锋眰socket澶辫触: %s", err.Error())
-	}
+	go Push1()
 }
 
+var sender chan *protomsg.CompareArgs = make(chan *protomsg.CompareArgs)
+var receiver chan []byte = make(chan []byte)
+type BaseInfo struct {
+	TableId      string  `json:"tableId"`
+	TableName    string  `json:"tableName"`
+	BwType       string  `json:"bwType"`
+	CompareScore float64 `json:"compareScore"`
+	PersonId     string  `json:"personId"`
+	PersonName   string  `json:"personName"`
+	PersonPicUrl string  `json:"personPicUrl"`
+	PhoneNum     string  `json:"phoneNum"`
+	Sex          string  `json:"sex"`
+	IdCard       string  `json:"idCard"`
+	MonitorLevel string  `json:"monitorLevel"`
+	Content      string  `json:"content"`
+}
 
 // 浠ユ憚鍍忔満id鏌ュ嚭璺熷叾鐩稿叧鐨勬墍鏈変换鍔′笅鐨勬墍鏈夎鍒欑粍
 func GetRuleGroup(cameraId string, taskId string) *protomsg.TaskGroupArgs {
@@ -155,12 +167,13 @@
 		CompareThreshold:compareThreshold,
 		Source:false,
 	}
-	serverIp, _ := GetLocalIP()
-	bytes := Push("tcp://"+serverIp+":40010",comArg,sock)
+
+	bytes := getCompareMsg(comArg)
 	var scResult protomsg.SdkCompareResult
 	err1 := proto.Unmarshal(bytes, &scResult)
 	if err1 != nil {
 		logger.Error("getBaseInfo瑙e帇閿欒", err1)
+		return
 	}
 	//logger.Info("----------------------------------------map鏄�", m)
 	ids := []string{}
@@ -172,16 +185,20 @@
 	logger.Info("------------------------------------------------------------------------------------------------------------------------")
 	//logger.Info("=====================浜哄憳id鐨勯泦鍚堜负锛�",ids)
 	if len(ids) > 0 {
-		baseinfos, err1 := esutil.Dbpersoninfosbyid(ids, dbTablePersons, serverIp, serverPort)
+		var dbApi dbapi.DbPersonApi
+		baseinfos, err1 := dbApi.Dbpersoninfosbyid(ids)
+		//baseinfos, err1 := esutil.Dbpersoninfosbyid(ids, dbTablePersons, serverIp, serverPort)
 		if err1 != nil {
 			logger.Error("鏌ヨ搴曞簱浜哄憳淇℃伅鍑洪敊", err1)
 		}
+		var dtapi dbapi.DbTableApi
 		for _, baseinfo := range baseinfos {
 			// 鏍规嵁tableId鏌ヨ搴曞簱淇℃伅缁檒iker璧嬪��
 			//logger.Info("---------鐪嬬湅姣忎釜搴曞簱浜哄憳鐨勪俊鎭細",baseinfo.Id,baseinfo.PersonName)
 			tableIds := []string{}
 			tableIds = append(tableIds, baseinfo.TableId) // 铏界劧鏄紶鍏ユ暟缁勮繑鍥炴暟缁勭殑鎺ュ彛锛屼絾鎴戞寜鍗曚釜鐨勪娇鐢ㄤ簡
-			table, err := esutil.Dbtablefosbyid(tableIds, "dbtables", serverIp, serverPort)
+			table, err := dtapi.DbtablesById(tableIds)
+			//table, err := esutil.Dbtablefosbyid(tableIds, "dbtables", serverIp, serverPort)
 			if err != nil || len(table) == 0 {
 				logger.Error("鏍规嵁id鏌ヨ搴曞簱淇℃伅鍑洪敊锛�", err, "--杩斿洖鍊奸暱搴︿负锛�", len(table))
 			}
@@ -286,10 +303,10 @@
 			a.FilterData = append(a.FilterData, &arg1)
 		}
 	}
-	logger.Info("鍖哄煙鏄細",areaPoints,"瑁呴厤瀹屾暟鎹尯鍩熷唴鐩爣鏁伴噺涓猴細",a.TargetNum)
-	a.Time = time.Unix(time.Now().Unix(), 0).String()[11:16]
-	a.KeepRight = arg.KeepRight
-	a.IsStatic = arg.IsStatic
+	logger.Info("鍖哄煙鏄細",areaPoints,"鍖哄煙鍐呯洰鏍囨暟閲忎负锛�",a.targetNum,"---",len(a.filterData))
+	a.time = time.Unix(time.Now().Unix(), 0).String()[11:16]
+	a.keepRight = arg.KeepRight
+	a.isStatic = arg.IsStatic
 	//logger.Println("--------------------鐪嬬湅鍖哄煙鏁版嵁锛�",*a)
 }
 
@@ -308,7 +325,7 @@
 	}
 }
 
-func Push(url string,data *protomsg.CompareArgs,sock mangos.Socket) []byte{
+func Push(data *protomsg.CompareArgs,sock mangos.Socket) []byte{
 	//var sock mangos.Socket
 	var err error
 	var msg []byte
@@ -321,11 +338,13 @@
 		logger.Error("Failed set MaxRecvSize: %v", err)
 		return nil
 	}
-	//sock.AddTransport(ipc.NewTransport())
-	sock.AddTransport(tcp.NewTransport())
-	if err = sock.Dial(url); err != nil {
+	serverIP, _ := GetLocalIP()
+	if err = sock.Dial("tcp://"+serverIP+":4010"); err != nil {
 		logger.Error("璇锋眰socket鎷ㄥ彿澶辫触: %s", err.Error())
 	}
+	//sock.AddTransport(ipc.NewTransport())
+	sock.AddTransport(tcp.NewTransport())
+
 	logger.Info("搴忓垪鍖栨暟鎹�")
 	bytes,err1 := proto.Marshal(data)
 	logger.Info("鏁版嵁闀垮害涓猴細",len(bytes))
@@ -346,6 +365,57 @@
 	return msg
 }
 
+func Push1(){
+	//var sock mangos.Socket
+	var err error
+	var msg []byte
+
+	if sock, err = req.NewSocket(); err != nil {
+		logger.Error("鍒涘缓璇锋眰socket澶辫触: %s", err.Error())
+	}
+	errSize := sock.SetOption(mangos.OptionMaxRecvSize,5*1024*1024)
+	if errSize != nil {
+		logger.Error("Failed set MaxRecvSize: %v", err)
+	}
+	//sock.AddTransport(ipc.NewTransport())
+	sock.AddTransport(tcp.NewTransport())
+	serverIP, _ := GetLocalIP()
+	if err = sock.Dial("tcp://"+serverIP+":4010"); err != nil {
+		logger.Error("璇锋眰socket鎷ㄥ彿澶辫触: %s", err.Error())
+	}
+	logger.Info("搴忓垪鍖栨暟鎹�")
+
+	for {
+		select {
+		// case <-ctx.Done():
+		// 	return
+		case data := <- sender:
+			bytes,err1 := proto.Marshal(data)
+			logger.Info("鏁版嵁闀垮害涓猴細",len(bytes))
+			if err1 != nil {
+				logger.Info("搴忓垪鍖栧け璐ワ細",err1)
+			}
+			logger.Debug("鎺ㄩ�佹暟鎹�")
+			//bytes := []byte("ndfasojdfaidsos")
+			if err = sock.Send(bytes); err != nil {
+				logger.Error("鎺ㄩ�乻ocket鍙戦�佹暟鎹け璐�: %s", err.Error())
+				//os.Exit(1)
+			}
+			if msg, err = sock.Recv(); err != nil {
+				logger.Error("鎺ユ敹鍝嶅簲澶辫触: %s", err.Error())
+				//os.Exit(1)
+			}
+			logger.Debug("鏁版嵁鎺ㄩ�佹垚鍔燂紒鏀跺埌鍝嶅簲,鏁版嵁闀垮害涓猴細",len(msg))
+			receiver <- msg
+		default:
+
+		}
+	}
+}
+func getCompareMsg(data *protomsg.CompareArgs) []byte{
+	sender <- data
+	return <-receiver
+}
 // 鑾峰彇鏈満ip
 func GetLocalIP() (ipv4 string, err error) {
 	var (
@@ -372,4 +442,4 @@
 
 	err = errors.New("ipv4 not found")
 	return
-}
\ No newline at end of file
+}
diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index caa42bf..b07e33d 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -20,7 +20,7 @@
 		// 鎷垮埌鏈憚鍍忔満鐨勫尯鍩�
 		cameraPolygons := GetPolygons(args.CameraId)
 		// 鎶婃墍鏈夌殑sdk鎻愬彇鐨勬暟鎹兘鎸夋墍灞炴憚鍍忔満鐨勫尯鍩熷綊缃�
-		//logger.Debug("褰撳墠鎽勫儚鏈篿d涓猴細",message.Cid,"褰撳墠鎽勫儚鏈烘墽琛岀殑浠诲姟鏄細",message.Tasklab.Taskname)
+		logger.Debug("褰撳墠鎽勫儚鏈篿d涓猴細",message.Cid,"褰撳墠鎽勫儚鏈烘墽琛岀殑浠诲姟鏄細",message.Tasklab.Taskname,"--浠诲姟id涓猴細",message.Tasklab.Taskid)
 		for _, arg := range args.Sdkdata {
 			SdkDataFormat(args.CameraId, arg, cameraPolygons)
 		}
@@ -64,7 +64,7 @@
 	}
 }
 
-func RunRule1(args *structure.SdkDatas, groupRule *protomsg.GroupRule, taskId string, message *protomsg.SdkMessage, label structure.Others) bool {
+func RunRule(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string, message *protomsg.SdkMessage, label Others) (bool,[]int) {
 	defer func() {
 		if err := recover(); err != nil {
 			logger.Error("姣斿瑙勫垯鏈夎", err)
@@ -231,6 +231,7 @@
 						}
 					}
 				}
+				logger.Info("face鏍囩鐨勯暱搴︼細",len(faces))
 				//for _,face := range faces  {
 				//	//logger.Debug("鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�擾_______________鐪嬬湅浜鸿劯鐨勫潗鏍�:",face.Location)
 				//}
@@ -251,27 +252,30 @@
 				} else {
 					islink = false
 				}
+				var labelTypes []int // 0涓簓olo鏍囩锛�1涓篺ace鏍囩 2涓轰袱鑰呮爣绛�
 				if sdkNames != "" {
-					args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]structure.Result), structure.Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, locations, polygonId, islink, label,})
+					args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, locations, polygonId, islink,label,})
+					labelTypes = append(labelTypes,0)
 					//logger.Info("-------------------yolo缁撴灉鏍囩闀垮害", len(args.RuleResult["yolo"].([]Result)))
 				}
 				if faceFlag {
 					args.RuleResult["face"] = append(args.RuleResult["face"].([]structure.FaceResult), structure.FaceResult{structure.Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, []structure.Rect{}, polygonId, islink, label,}, faces})
 					//logger.Info("-------------------face缁撴灉鏍囩", len(args.RuleResult["face"].([]FaceResult)))
+					labelTypes = append(labelTypes,1)
 				}
-				return true
+				return true,labelTypes
 			} else {
-				return false
+				return false,[]int{}
 			}
 
 		} else {
-			// 缁撴灉涓哄亣鏃朵篃瑕佽蛋锛屾湁鏃跺�欎负鍋囩殑鐘舵�佸弽杞暟鎹篃闇�瑕佽褰曚笅鏉�
+			// 缁撴灉涓哄亣鏃朵篃瑕佽蛋锛屾湁鏉�姝诲畾鏃跺櫒鐨勬搷浣�
 			TimerAlarm(&label, groupRule.GroupId, result.(bool))
 			//fmt.Println(timeFlag)
-			return false
+			return false,[]int{}
 		}
 	} else {
-		return false
+		return false,[]int{}
 	}
 }
 
@@ -336,7 +340,7 @@
 		}
 	}
 	// 寰�鏁扮粍閲岃祴鍊�
-	isOk := RunRule(args, groupRule, taskId, message, label)
+	isOk,labelTypes := RunRule(args, groupRule, taskId, message, label)
 	if isOk {
 		logger.Info("杩欏抚鍥惧儚鍦ㄤ换鍔′笅鐨勪竴鏁存潯瑙勫垯涓嬶紙鑱斿姩浠诲姟涓嬪氨鏄窡鏈憚鍍忔満鍍忕浉鍏崇殑灏忚鍒欙級鐨勫垽鏂粨鏋滀负true")
 		// 鏍规嵁cameraId鍘绘洿鏂版垨鑰呮彃鍏ョ粨鏋�,鐒跺悗鍒ゆ柇鏄惁鏁扮粍鏄惁鍙互寰楀嚭鎶ヨ鐨勭粨璁�
@@ -409,8 +413,20 @@
 		} else {
 			logger.Warn("鏁扮粍涓嶅渾婊′笉鎵撴爣绛�")
 			// 鍊掓槸鎶婃墦鐨勭粍瑙勫垯鏍囩缁欏幓鎺変簡鍟�
-			lens := len(args.RuleResult["yolo"].([]structure.Result)) - 1
-			args.RuleResult["yolo"] = args.RuleResult["yolo"].([]structure.Result)[0:lens]
+			for _,val := range labelTypes {
+				if val == 0 {
+					if len(args.RuleResult["yolo"].([]Result)) >= 1 {
+						lens := len(args.RuleResult["yolo"].([]Result))-1
+						args.RuleResult["yolo"] = args.RuleResult["yolo"].([]Result)[0:lens]
+					}
+				}
+				if val == 1 {
+					if len(args.RuleResult["face"].([]FaceResult)) >= 1 {
+						lens := len(args.RuleResult["face"].([]FaceResult))-1
+						args.RuleResult["face"] = args.RuleResult["face"].([]FaceResult)[0:lens]
+					}
+				}
+			}
 		}
 	} else { // 娌℃湁鎶ヨ锛�
 		//logger.Info("杩欏抚鍥惧儚鍦ㄤ换鍔′笅鐨勪竴鏁存潯瑙勫垯涓嬶紙鑱斿姩浠诲姟涓嬪氨鏄窡鏈憚鍍忔満鍍忕浉鍏崇殑灏忚鍒欙級鐨勫垽鏂粨鏋滀负false")
@@ -430,7 +446,6 @@
 
 	}
 }
-
 // 濡傛灉鏈夋寔缁椂闂存潯浠剁淮鎶ゅ紑鍚竴涓畾鏃跺櫒
 func duration(rule *protomsg.Rule, groupId string, am *structure.AreaMap, args *structure.SdkDatas, message *protomsg.SdkMessage) {
 	if rule.PolygonId == am.AreaId { // 棣栧厛瑙勫垯鎵�瀵瑰簲鐨勫尯鍩焛d瑕佽窡鍖哄煙鏁版嵁鐨刬d瀵圭殑涓�  閰嶇疆鐨勭畻娉曡瀵圭殑涓�
diff --git a/ruleserver/timeTicker.go b/ruleserver/timeTicker.go
index abe6c4d..ac959e6 100644
--- a/ruleserver/timeTicker.go
+++ b/ruleserver/timeTicker.go
@@ -33,8 +33,6 @@
 }
 
 func TimeTicker() {
-	//logger.Info("瀹氭椂鍣ㄦ墽琛屼簡")
-	//fmt.Println("瀹氭椂鍣ㄦ墽琛屼簡")
 	ticker := time.NewTicker(1 * time.Second)
 	go func(ticker *time.Ticker) {
 		defer ticker.Stop()
@@ -116,10 +114,12 @@
 							delete(TimeEleList, k)
 						} else {
 							if timeEle.BufferFlag > 0 {
+								logger.Debug("缂撳啿鍖哄噺鍑�")
 								timeEle.BufferFlag--
 							}
 						}
 					} else {
+						logger.Debug("-----------缁撴灉涓哄亣涓斾笉鍒�0锛屾潃姝诲畾鏃跺櫒")
 						delete(TimeEleList, k)
 					}
 				}
diff --git a/util/common.go b/util/common.go
index 294883d..a5c4a17 100644
--- a/util/common.go
+++ b/util/common.go
@@ -1,13 +1,9 @@
 package util
 
 import (
-	"fmt"
-
 	"basic.com/valib/deliver.git"
 
 	"basic.com/pubsub/protomsg.git"
-
-	"github.com/pierrec/lz4"
 )
 
 const (
@@ -30,28 +26,30 @@
 
 // UnCompress uncompress
 func UnCompress(in []byte) ([]byte, error) {
-	out := make([]byte, 10*len(in))
-	n, err := lz4.UncompressBlock(in, out)
-	if err != nil {
-		fmt.Println(err)
-		return nil, err
-	}
-	out = out[:n] // uncompressed data
-	return out, nil
+	return in,nil
+	//out := make([]byte, 10*len(in))
+	//n, err := lz4.UncompressBlock(in, out)
+	//if err != nil {
+	//	fmt.Println(err)
+	//	return nil, err
+	//}
+	//out = out[:n] // uncompressed data
+	//return out, nil
 }
 
 // Compress compress
 func Compress(in []byte) ([]byte, error) {
-	out := make([]byte, len(in))
-	ht := make([]int, 64<<10) // buffer for the compression table
-	n, err := lz4.CompressBlock(in, out, ht)
-	if err != nil {
-		fmt.Println(err)
-		return nil, err
-	}
-	if n >= len(in) {
-		fmt.Println("image is not compressible")
-	}
-	out = out[:n] // compressed data
-	return out, nil
+	return in,nil
+	//out := make([]byte, len(in))
+	//ht := make([]int, 64<<10) // buffer for the compression table
+	//n, err := lz4.CompressBlock(in, out, ht)
+	//if err != nil {
+	//	fmt.Println(err)
+	//	return nil, err
+	//}
+	//if n >= len(in) {
+	//	fmt.Println("image is not compressible")
+	//}
+	//out = out[:n] // compressed data
+	//return out, nil
 }
diff --git a/util/upload.go b/util/upload.go
index 78cd5c1..0407f53 100644
--- a/util/upload.go
+++ b/util/upload.go
@@ -10,6 +10,7 @@
 	"log"
 	"mime/multipart"
 	"net/http"
+	"ruleprocess/logger"
 	"time"
 	"gocv.io/x/gocv"
 )
@@ -159,7 +160,7 @@
 	client := &http.Client{Timeout: timeout}
 	resp, err := client.Do(request)
 	if err != nil {
-		log.Fatal(err)
+		logger.Error(err)
 		return nil, err
 	}
 	defer func() {

--
Gitblit v1.8.0