From 0a5b61f222add7cc3970b021230442d8188e72f9 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期一, 01 七月 2019 18:46:34 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.14:10010/r/ruleprocess

---
 util/simpleCV.go             |  128 +++++++++++++++++++++---------------------
 insertdata/insertDataToEs.go |    6 +
 ruleserver/ruleToformula.go  |   18 +++--
 main.go                      |    1 
 ruleserver/timeTicker.go     |    2 
 util/simpleCV_test.go        |    4 
 6 files changed, 81 insertions(+), 78 deletions(-)

diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go
index b4c5553..b33cd80 100644
--- a/insertdata/insertDataToEs.go
+++ b/insertdata/insertDataToEs.go
@@ -204,7 +204,7 @@
 			// 涓嶆槸鎶ヨ鏁版嵁涓嶅瓨
 			return
 		}
-		log.Println("鍥剧墖涓婁紶杩斿洖鍊硷細", resp)
+		// log.Println("鍥剧墖涓婁紶杩斿洖鍊硷細", resp)
 		// 鏌ヨ鏈満淇℃伅
 		flag, localConfig := dbapi.SysSetApi{}.GetServerInfo()
 		if !flag {
@@ -247,7 +247,9 @@
 		}
 		err = EsReq("POST", "http://192.168.1.182:9200/personaction/perVideoAction", requstbody)
 		if err != nil {
-			log.Println("es can not execute right.")
+			log.Println("寰�ES鎻掑叆鏁版嵁澶辫触",err)
+		} else {
+			log.Println("__________________________________________寰�ES鎻掑叆鏁版嵁鎴愬姛")
 		}
 	}
 }
diff --git a/main.go b/main.go
index 26ca7f8..8f31a9c 100644
--- a/main.go
+++ b/main.go
@@ -130,7 +130,6 @@
 			arg.IsStatic = false
 			if len(sdkinfo.Sdkdata) > 1 {
 				// 澶т簬1鎵嶆湁鏁版嵁
-				fmt.Println("----------------------------------------------------",m.Cid)
 				yoloParam := protomsg.ParamYoloObj{}
 				err = proto.Unmarshal(sdkinfo.Sdkdata, &yoloParam)
 				if err != nil {
diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index ca648a2..4947858 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -295,11 +295,11 @@
 	if completeFormula != "" {
 		log.Println("鐪嬬湅鍏紡-----------锛�", completeFormula)
 		expression, _ := govaluate.NewEvaluableExpression(completeFormula)
-		result, err := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
-		if err != nil {
-			panic("寰楀埌鐨勬暟瀛﹀叕寮忎笉鍙В鏋�")
+		if strings.HasPrefix(completeFormula,"&&") || strings.HasPrefix(completeFormula,"||"){
+			panic("瑙勫垯鏈夎锛屽緱鍒扮殑鏁板鍏紡涓嶅彲瑙f瀽")
 		}
-		if result.(bool) {
+		result,_ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
+		if !result.(bool) {
 			// 缁欒繖甯ф暟鎹墦涓婅鍒欑粍鏍囩
 			//args.RuleResult = append(args.RuleResult, Result{TaskId: taskId, RuleGroupId: groupRule.GroupId})
 			for k, timeEle := range TimeEleList {
@@ -314,6 +314,7 @@
 			for k, timeEle := range TimeEleList {
 				if strings.Contains(k, taskId) {
 					if timeEle.N != 0 { // 璺熻繖涓换鍔℃湁鍏崇殑瀹氭椂鍣ㄨ鍏ㄩ儴绛変簬0
+						log.Println("鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��-------------涓嶅啢锛屼綘鏄瀹氭椂鍣ㄦ墦璐ョ殑锛�")
 						flag = false
 					}
 				}
@@ -511,7 +512,6 @@
 func filterRule(rule *protomsg.Rule, am *AreaMap) LittleRuleResult {
 	if rule.SdkId == "FaceDetect" || rule.SdkId == "FaceCompare" {
 		// 澶勭悊鐨勬槸浜鸿劯绠楁硶 濡傛灉杩欐潯瑙勫垯閰嶇疆鐨勬槸浜鸿劯绠楁硶锛岃繃婊ゅ畬鏉′欢涔嬪悗鐩存帴寰楀嚭缁撴灉锛屽洜涓鸿偗瀹氭病鏈夋暟閲忔潯浠讹紝鑷繁鎷兼帴
-		log.Println("------------------------------------------杩樿兘杩涜繖鍎夸簡涓嶆垚锛燂紵锛�")
 		if rule.SdkId == am.sdkId && rule.PolygonId == am.areaId { // 绠楁硶鍜屽尯鍩熼兘寰楀鐨勪笂
 
 			if rule.SdkId == "FaceCompare" {
@@ -608,10 +608,13 @@
 					var formula string
 					if rule.SdkArgAlias == "score" {
 						formula = strconv.FormatFloat(arg.Score, 'f', -1, 64) + " " + rule.Operator + " " + rule.SdkArgValue // 寰楀埌瀛楃涓插叕寮�
+						log.Println("褰撳墠鐩镐技搴﹀皬鍏紡锛�",formula)
 					} else if rule.SdkArgAlias == "proportion" {
 						formula = strconv.FormatFloat(arg.Proportion, 'f', -1, 64) + " " + rule.Operator + " " + rule.SdkArgValue // 寰楀埌瀛楃涓插叕寮�
+						log.Println("褰撳墠鍗犳瘮灏忓叕寮忥細",formula)
 					} else {
 						formula = strconv.FormatFloat(arg.Size, 'f', -1, 64) + " " + rule.Operator + " " + rule.SdkArgValue // 寰楀埌瀛楃涓插叕寮�
+						log.Println("褰撳墠灏哄灏忓叕寮忥細",formula)
 					}
 					expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡
 					result, _ := expression.Evaluate(nil)                      // 寰楀埌鏁板鍏紡鐨勭粨鏋�
@@ -720,11 +723,12 @@
 			now := time.Now()
 			index := getIndexOfWeek(now.Weekday().String())
 			timeList := GetTimeById(rule.SdkArgValue, index)
+			log.Println("褰撳ぉ鐨勬椂闂磋鍒欙細----------",timeList)
 			//fmt.Println("浠庢暟鎹簱涓煡鍑虹殑鏃堕棿瑙勫垯锛�", timeList)
 			// 鍒ゆ柇鍥剧墖鏁版嵁鐨勬椂闂存槸鍚︾鍚堝綋鍓嶈鍒� 鍦ㄤ竴涓嵆涓簍rue锛屽叏涓嶅湪涓篺alse
 			flag := "false"
 			for _, timeSlot := range timeList {
-				if rule.Operator == "satisfy" { // 婊¤冻鎵�閫夌殑鏃堕棿瑙勫垯
+				if rule.Operator == "satisfy" || rule.Operator == "=="{ // 婊¤冻鎵�閫夌殑鏃堕棿瑙勫垯
 					formula := "'" + timeSlot.Start + "'" + "<" + "'" + am.time + "'"
 					expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡
 					result, _ := expression.Evaluate(nil)                      // 寰楀埌鏁板鍏紡鐨勭粨鏋�
@@ -738,7 +742,7 @@
 						break
 					}
 				}
-				if rule.Operator == "unsatisfy" { // 涓嶆弧瓒虫墍閫夌殑鏃堕棿瑙勫垯
+				if rule.Operator == "unsatisfy" || rule.Operator == "!="{ // 涓嶆弧瓒虫墍閫夌殑鏃堕棿瑙勫垯
 					formula := timeSlot.Start + "<" + am.time
 					expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡
 					result, _ := expression.Evaluate(nil)                      // 寰楀埌鏁板鍏紡鐨勭粨鏋�
diff --git a/ruleserver/timeTicker.go b/ruleserver/timeTicker.go
index 1ac57a0..644a6a5 100644
--- a/ruleserver/timeTicker.go
+++ b/ruleserver/timeTicker.go
@@ -40,7 +40,7 @@
 				for _, timeEle := range TimeEleList {
 					if timeEle.N > 0 {
 						timeEle.N = timeEle.N - 1
-						log.Println("鎵撳嵃瀹氭椂鍣ㄥ厓绱犲綋鍓嶅�硷細",timeEle.N)
+						log.Println("-------------------------------------鎵撳嵃瀹氭椂鍣ㄥ厓绱犲綋鍓嶅��-----------------------------------------锛�",timeEle.N)
 					}
 				}
 			case stop := <-stopChan:
diff --git a/util/simpleCV.go b/util/simpleCV.go
index 3603a1f..1d617dd 100644
--- a/util/simpleCV.go
+++ b/util/simpleCV.go
@@ -3,19 +3,11 @@
 import (
 	"bufio"
 	"bytes"
-	"encoding/json"
-	"errors"
 	"fmt"
+	"gocv.io/x/gocv"
 	"image"
 	"image/color"
-	"io"
-	"log"
-	"mime/multipart"
-	"net/http"
 	"os"
-	"time"
-
-	"gocv.io/x/gocv"
 )
 
 func CvRTSP() {
@@ -163,11 +155,15 @@
 	// draw the rook
 	//rook := gocv.NewMatWithSize(w, w, gocv.MatTypeCV8UC3)
 	//imgs := gocv.NewMat()
-	ddd, err := RetrieveROM("/home/user/workspace/ruleprocess/util/l05.jpg")
+	ddd, err := RetrieveROM("/home/user/workspace/ruleprocess/util/105.jpg")
 	if err != nil {
 		fmt.Println("瑙g爜鏈夎",err)
 	}
 	bbb := bytes.NewBuffer(ddd)  // 蹇呴』鍔犱竴涓猙uffer 涓嶇劧娌℃湁read鏂规硶灏变細鎶ラ敊
+
+
+
+
 	rook, _ := gocv.NewMatFromBytes(500, 500, gocv.MatTypeCV8UC3, bbb.Bytes())
 	defer rook.Close()
 	green := color.RGBA{0, 255, 0, 0}
@@ -180,62 +176,64 @@
 		},
 	}
 	gocv.FillPoly(&rook, points, green)
+
+	return nil,nil
 	// 涓婁紶
-	fdata,_ := gocv.IMEncode(".jpg",rook)
-	body := &bytes.Buffer{}
-	writer := multipart.NewWriter(body)
-	_, err1 := writer.CreateFormFile("file", "fasjuierf")
-	if err1 != nil {
-		return nil, err1
-	}
-	boundary := writer.Boundary()
-	//close_string := fmt.Sprintf("\r\n--%s--\r\n", boundary)
-	close_buf := bytes.NewBufferString(fmt.Sprintf("\r\n--%s--\r\n", boundary))
-	file := bytes.NewBuffer(fdata)
-	request_reader := io.MultiReader(body, file, close_buf)
-	//_, err = io.Copy(part, file)
-	//writer.WriteField(key, val)
-	request, err := http.NewRequest("POST", "http://192.168.1.182:6333/submit", request_reader)
-	request.Header.Add("Content-Type", writer.FormDataContentType())
-	timeout := time.Duration(5 * time.Second) //瓒呮椂鏃堕棿50ms
-	client := &http.Client{Timeout: timeout}
-	resp, err := client.Do(request)
-	if err != nil {
-		log.Fatal(err)
-		return nil, err
-	}
-	defer func() {
-		if r := recover(); r != nil {
-			fmt.Printf("panic鐨勫唴瀹�%v\n", r)
-			msg := "涓婁紶鍥剧墖鏈嶅姟鍣ㄥ紓甯�"
-			if _, ok := r.(error); ok {
-				msg = r.(error).Error()
-				fmt.Println("panic--recover()寰楀埌鐨勬槸error绫诲瀷")
-			}
-			if _, ok := r.(string); ok {
-				msg = r.(string)
-				fmt.Println("panic--recover()寰楀埌鐨勬槸string绫诲瀷")
-			}
-			err0 = errors.New(msg)
-		}
-	}()
-	defer resp.Body.Close()
-	{
-		body := &bytes.Buffer{}
-		_, err := body.ReadFrom(resp.Body)
-		if err != nil {
-			log.Fatal(err)
-		}
-		fmt.Println(resp.StatusCode)
-		//fmt.Println(resp.Header)
-		fmt.Println(body)
-		//decoder := json.NewDecoder(strings.NewReader(body.String()))
-		decoder := make(map[string]interface{})
-		if err := json.Unmarshal([]byte(body.String()), &decoder); err != nil {
-			return nil, err
-		}
-		return decoder, nil
-	}
+	//fdata,_ := gocv.IMEncode(".jpg",rook)
+	//body := &bytes.Buffer{}
+	//writer := multipart.NewWriter(body)
+	//_, err1 := writer.CreateFormFile("file", "fasjuierf")
+	//if err1 != nil {
+	//	return nil, err1
+	//}
+	//boundary := writer.Boundary()
+	////close_string := fmt.Sprintf("\r\n--%s--\r\n", boundary)
+	//close_buf := bytes.NewBufferString(fmt.Sprintf("\r\n--%s--\r\n", boundary))
+	//file := bytes.NewBuffer(fdata)
+	//request_reader := io.MultiReader(body, file, close_buf)
+	////_, err = io.Copy(part, file)
+	////writer.WriteField(key, val)
+	//request, err := http.NewRequest("POST", "http://192.168.1.182:6333/submit", request_reader)
+	//request.Header.Add("Content-Type", writer.FormDataContentType())
+	//timeout := time.Duration(5 * time.Second) //瓒呮椂鏃堕棿50ms
+	//client := &http.Client{Timeout: timeout}
+	//resp, err := client.Do(request)
+	//if err != nil {
+	//	log.Fatal(err)
+	//	return nil, err
+	//}
+	//defer func() {
+	//	if r := recover(); r != nil {
+	//		fmt.Printf("panic鐨勫唴瀹�%v\n", r)
+	//		msg := "涓婁紶鍥剧墖鏈嶅姟鍣ㄥ紓甯�"
+	//		if _, ok := r.(error); ok {
+	//			msg = r.(error).Error()
+	//			fmt.Println("panic--recover()寰楀埌鐨勬槸error绫诲瀷")
+	//		}
+	//		if _, ok := r.(string); ok {
+	//			msg = r.(string)
+	//			fmt.Println("panic--recover()寰楀埌鐨勬槸string绫诲瀷")
+	//		}
+	//		err0 = errors.New(msg)
+	//	}
+	//}()
+	//defer resp.Body.Close()
+	//{
+	//	body := &bytes.Buffer{}
+	//	_, err := body.ReadFrom(resp.Body)
+	//	if err != nil {
+	//		log.Fatal(err)
+	//	}
+	//	fmt.Println(resp.StatusCode)
+	//	//fmt.Println(resp.Header)
+	//	fmt.Println(body)
+	//	//decoder := json.NewDecoder(strings.NewReader(body.String()))
+	//	decoder := make(map[string]interface{})
+	//	if err := json.Unmarshal([]byte(body.String()), &decoder); err != nil {
+	//		return nil, err
+	//	}
+	//	return decoder, nil
+	//}
 }
 
 // 鎶婂浘鐗囪浆鎴愪簩杩涘埗娴�
diff --git a/util/simpleCV_test.go b/util/simpleCV_test.go
index 4b13129..4f8f7c8 100644
--- a/util/simpleCV_test.go
+++ b/util/simpleCV_test.go
@@ -4,10 +4,10 @@
 	"testing"
 )
 
-func TestDrawPolygon(t *testing.T)  {
+func TestDrawPolygonOnImage(t *testing.T)  {
 	resp,err := DrawPolygonOnImage()
 	if err != nil {
 		t.Error("鐢绘鎴栬�呬笂浼犳湁闂")
 	}
-	t.Log(resp["fileUrl"].(string))
+	t.Log("------=============",resp)
 }
\ No newline at end of file

--
Gitblit v1.8.0