From f6d71fa2c9e24c337d34b2c6d1b481ce3a3c622e Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期二, 08 十月 2019 11:20:10 +0800
Subject: [PATCH] 查找此人不走提取,通过id获取特征

---
 controllers/fileController.go |   89 +++++++++++++++++++++-----------------------
 1 files changed, 43 insertions(+), 46 deletions(-)

diff --git a/controllers/fileController.go b/controllers/fileController.go
index 89438a4..d6d18ad 100644
--- a/controllers/fileController.go
+++ b/controllers/fileController.go
@@ -390,56 +390,55 @@
 		return
 	}
 	var faceB []byte
-	var uploadImage string
-	var smImages []string
-	//if searchBody.CaptureId != "" {//鍋氭煡鎵炬浜�,鎼滄墍鏈夋姄鎷嶅拰搴曞簱
-	//	searchBase64Fea, err := esApi.GetVideoPersonFaceFeatureById(searchBody.CaptureId, config.EsInfo.EsIndex.VideoPersons.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort)))
-	//	if err !=nil {
-	//		util.ResponseFormat(c, code.ComError, "鎶撴媿鏁版嵁涓嶅瓨鍦紝璇锋鏌�")
-	//		return
-	//	}
-	//	if searchBase64Fea !=""{
-	//		decodeF, err := base64.StdEncoding.DecodeString(searchBase64Fea)
-	//		if err !=nil {
-	//			util.ResponseFormat(c, code.ComError, "鏈潯鎶撴�曠壒寰佷笉鏄痓ase64锛岃妫�鏌�")
-	//			return
-	//		}
-	//		faceB = decodeF
-	//	}
-	//} else {//鍋氫互鍥炬悳鍥�
-	//
-	//}
 
-	if searchBody.PicUrl == "" || len(searchBody.DataBases) == 0 {
-		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟鏈夎")
-		return
-	}
-	if face,ok := faceExtractedMap[searchBody.PicUrl];!ok{
-		httpPicUrl := ""
-		idx := strings.LastIndex(searchBody.PicUrl, ":")
-		if idx>-1 {
-			httpPicUrl = "http://"+localConf.WebPicIp+searchBody.PicUrl[idx:]
+	if searchBody.CompTargetId != "" {//鍋氭煡鎵炬浜�,鎸夋姄鎷嶇殑浜鸿劯鎴栬�呭簳搴撶殑浜鸿劯浠ュ浘鎼滃浘
+		if searchBody.CompTargetType == 0 {//鏈紶浜鸿劯鏄簳搴撲汉鑴�
+			var dbpApi dbapi.DbPersonApi
+			dbPersons, e := dbpApi.Dbpersoninfosbyid([]string{searchBody.CompTargetId})
+			if e ==nil && dbPersons !=nil && len(dbPersons) ==1 {
+				searchBase64Fea := dbPersons[0].FaceFeature
+				if searchBase64Fea != "" {
+					decodeF, err := base64.StdEncoding.DecodeString(dbPersons[0].FaceFeature)
+					if err !=nil {
+						util.ResponseFormat(c, code.ComError, "鏈潯搴曞簱浜哄憳鐗瑰緛涓嶆槸base64锛岃妫�鏌�")
+						return
+					}
+					faceB = decodeF
+				} else {
+					util.ResponseFormat(c, code.ComError, "鏈潯搴曞簱浜哄憳鐗瑰緛涓虹┖锛岃妫�鏌�")
+					return
+				}
+			} else {
+				util.ResponseFormat(c, code.ComError, "搴曞簱浜哄憳鏌ヨ澶辫触锛岃妫�鏌�")
+				return
+			}
 		} else {
-			util.ResponseFormat(c, code.RequestParamError, "鍥剧墖璺緞鏈夎锛岃閲嶆柊涓婁紶鍥剧墖")
+			searchBase64Fea, err := esApi.GetVideoPersonFaceFeatureById(searchBody.CompTargetId, config.EsInfo.EsIndex.VideoPersons.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort)))
+			if err !=nil {
+				util.ResponseFormat(c, code.ComError, "鎶撴媿鏁版嵁涓嶅瓨鍦紝璇锋鏌�")
+				return
+			}
+			if searchBase64Fea !=""{
+				decodeF, err := base64.StdEncoding.DecodeString(searchBase64Fea)
+				if err !=nil {
+					util.ResponseFormat(c, code.ComError, "鏈潯鎶撴�曠壒寰佷笉鏄痓ase64锛岃妫�鏌�")
+					return
+				}
+				faceB = decodeF
+			}
+		}
+
+	} else {//鍋氫互鍥炬悳鍥�
+		if searchBody.PicUrl == "" || len(searchBody.DataBases) == 0 {
+			util.ResponseFormat(c, code.RequestParamError, "浠ュ浘鎼滃浘PicUrl涓嶈兘涓虹┖")
 			return
 		}
-		logger.Debug("httpPicUrl:",httpPicUrl)
-		rb,err := util.ReadImgData(httpPicUrl)
-		if err !=nil {
-			util.ResponseFormat(c, code.RequestParamError, "璇诲彇鍥剧墖澶辫触锛岃閲嶆柊涓婁紶鍥剧墖")
-			return
-		}
-		feaB, oriImg, smImgs, e := GetFeaFromOneFaceImg(rb)
-		if e !=nil {
-			util.ResponseFormat(c, code.RequestParamError, "鏈彁鍙栧埌鐗瑰緛锛岃閲嶆柊涓婁紶鍥剧墖")
+		if face,ok := faceExtractedMap[searchBody.PicUrl];!ok{
+			util.ResponseFormat(c, code.RequestParamError, "浜鸿劯鐗瑰緛鏈娴嬶紝璇烽噸鏂颁笂浼犲浘鐗�")
 			return
 		} else {
-			uploadImage = oriImg
-			smImages = smImgs
-			faceB = feaB
+			faceB = face.FaceBytes
 		}
-	} else {
-		faceB = face.FaceBytes
 	}
 
 	if faceB == nil {
@@ -499,9 +498,7 @@
 		CompareData: &totalData,
 	})
 
-	m := make(map[string]interface{},5)
-	m["uploadImage"] = uploadImage
-	m["smImage"] = smImages
+	m := make(map[string]interface{},3)
 	if totalData != nil && totalData.Len() > 0{
 		sort.Sort(totalData)
 		total := totalData.Len()

--
Gitblit v1.8.0