From e70b62f740db3a723e768892284eb00a2e30f320 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期三, 31 七月 2019 19:41:33 +0800
Subject: [PATCH] fix comp

---
 service/FaceCompareService.go |  167 ++++---------------------------------------------------
 1 files changed, 12 insertions(+), 155 deletions(-)

diff --git a/service/FaceCompareService.go b/service/FaceCompareService.go
index addfce3..3882a86 100644
--- a/service/FaceCompareService.go
+++ b/service/FaceCompareService.go
@@ -1,7 +1,6 @@
 package service
 
 import (
-	esApi "basic.com/pubsub/esutil.git"
 	"basic.com/pubsub/protomsg.git"
 	"github.com/gogo/protobuf/proto"
 	"github.com/satori/go.uuid"
@@ -10,11 +9,9 @@
 	"nanomsg.org/go-mangos/transport/ipc"
 	"nanomsg.org/go-mangos/transport/tcp"
 	"sort"
-	"strconv"
 	"sync"
 	"webserver/extend/config"
 	"webserver/extend/logger"
-	"webserver/extend/util"
 )
 
 type FaceCompareService struct {
@@ -31,26 +28,26 @@
 
 type CompareOnce struct {
 	CompareNum string `json:"compareOnce"`
-	CompareData []CompareResult `json:"compareData"`
+	CompareData *[]*protomsg.SdkCompareEach `json:"compareData"`
 }
 
 type CompareResultWrapper struct {
-	CompareData []CompareResult
-	By func(p,q *CompareResult) bool
+	CompareData *[]*protomsg.SdkCompareEach
+	By func(p,q *protomsg.SdkCompareEach) bool
 }
 
 func (crw CompareResultWrapper) Len()int {
-	return len(crw.CompareData)
+	return len(*crw.CompareData)
 }
 func (crw CompareResultWrapper) Swap(i,j int) {
-	crw.CompareData[i],crw.CompareData[j] = crw.CompareData[j],crw.CompareData[i]
+	(*crw.CompareData)[i],(*crw.CompareData)[j] = (*crw.CompareData)[j],(*crw.CompareData)[i]
 }
 func (crw CompareResultWrapper) Less(i,j int) bool{
-	return crw.By(&crw.CompareData[i],&crw.CompareData[j])
+	return crw.By((*crw.CompareData)[i],(*crw.CompareData)[j])
 }
 
-func SortByScore(list []CompareResult) {
-	sort.Sort(CompareResultWrapper{list, func(p, q *CompareResult) bool {
+func SortByScore(list *[]*protomsg.SdkCompareEach) {
+	sort.Sort(CompareResultWrapper{list, func(p, q *protomsg.SdkCompareEach) bool {
 		return q.CompareScore < p.CompareScore //閫掑噺鎺掑簭
 	}})
 }
@@ -76,45 +73,12 @@
 
 var CaptureTable = "capturetable" // 鎶撴媿搴�
 
-type CompareResult struct {
-	Id string `json:"id"`
-	CompareScore float32 `json:"compareScore"`
-	CameraId string `json:"cameraId"`
-	CameraAddr string `json:"cameraAddr"`
-	PicDate string `json:"picDate"`
-	Content string `json:"content"`
-	IsAlarm int `json:"isAlarm"`
-	PicMaxUrl string `json:"picMaxUrl"`
-	PicSmUrl []string `json:"picSmUrl"`
-	Sex string `json:"sex"`
-	AgeDescription string `json:"ageDescription"`
-	Race string `json:"race"`
-	TaskId string `json:"taskId"`
-	TaskName string `json:"taskName"`
-	BaseInfo []DbPersonVo `json:"baseInfo"`
-	VideoUrl string `json:"videoUrl"`
-	SdkName string `json:"sdkName"`
-}
-type DbPersonVo struct {
-	BwType string `json:"bwType"`
-	CompareScore float32 `json:"compareScore"`
-	IdCard string `json:"idCard"`
-	MonitorLevel string `json:"monitorLevel"`
-	PersonId string `json:"personId"`
-	PersonName string `json:"personName"`
-	PersonPicUrl string `json:"personPicUrl"`
-	PhoneNum string `json:"phoneNum"`
-	Sex string `json:"sex"`
-	TableId string `json:"tableId"`
-	TableName string `json:"tableName"`
-}
-
 func (sv *FaceCompareService) Compare() *CompareOnce{
 	b, err := proto.Marshal(&sv.CompareArgs)
 	compServerList := config.CompServerInfo.Url
 	logger.Debug("compServerList:", compServerList)
 	//1.鍚戝悇涓猚ompare杩涚▼鍙戣捣璇锋眰鎷垮埌姣斿缁撴灉
-	resultList :=make([]CompareResult,0)
+	resultList :=make([]*protomsg.SdkCompareEach,0)
 	for _,str :=range compServerList{
 		reqUrl := "tcp://"+str
 		resultB := doCompareRequest(reqUrl,b)
@@ -131,7 +95,8 @@
 
 		logger.Debug("comp len(rList):", len(sdkCompResult.CompareResult))
 		if len(sdkCompResult.CompareResult) >0 {
-			resultList = append(resultList, FillDataToCompareResult(&sdkCompResult)...)
+			resultList = append(resultList, sdkCompResult.CompareResult...)
+			//resultList = append(resultList, FillDataToCompareResult(&sdkCompResult)...)
 		}
 	}
 	logger.Debug("comp totalList.len:", len(resultList))
@@ -139,7 +104,7 @@
 	//2.缂撳瓨姣斿缁撴灉
 	co := &CompareOnce{
 		CompareNum: sv.CompareNum,
-		CompareData: resultList,
+		CompareData: &resultList,
 	}
 	SetCompResultByNum(co)
 
@@ -174,112 +139,4 @@
 	}
 	sock.Close()
 	return &msg
-}
-
-//濉厖鍚戝墠绔繑鍥炵殑鏁版嵁
-func FillDataToCompareResult(compResult *protomsg.SdkCompareResult) []CompareResult {
-	resultList :=make([]CompareResult,0)
-
-	dbPersonM := make(map[string]*protomsg.SdkCompareEach, 0)
-	captureM := make(map[string]*protomsg.SdkCompareEach, 0)
-	personIds :=make([]string,0)
-	captureIds := make([]string,0)
-	for _,v :=range compResult.CompareResult{
-		if v.Tableid == CaptureTable {
-			captureM[v.Id] = v
-			captureIds = append(captureIds,v.Id)
-		} else {
-			dbPersonM[v.Id] = v
-			personIds = append(personIds,v.Id)
-		}
-	}
-	logger.Debug("comp len(personIds):", len(personIds))
-	logger.Debug("comp len(captureIds):", len(captureIds))
-	esServerIp := config.EsInfo.Masterip
-	esServerPort := config.EsInfo.Httpport
-	index := config.EsInfo.EsIndex.Dbtablepersons.IndexName
-	var dbpersons []protomsg.Dbperson
-	if len(personIds) >0 {
-		dbpersons, _ = esApi.Dbpersoninfosbyid(personIds, index, esServerIp, esServerPort)
-	}
-
-	logger.Debug("comp dbpersons.len:", len(dbpersons))
-	if dbpersons !=nil {
-		for _,p :=range dbpersons {
-			var dbP = DbPersonVo {
-				PersonId: p.Id,
-				IdCard: p.IdCard,
-				CompareScore: util.ParseScore(dbPersonM[p.Id].CompareScore),
-				MonitorLevel: p.MonitorLevel,
-				PersonName: p.PersonName,
-				PersonPicUrl: p.PersonPicUrl,
-				PhoneNum: p.PhoneNum,
-				Sex: p.Sex,
-				TableId: p.TableId,
-			}
-			dbTableInfos, _ := esApi.Dbtablefosbyid([]string{p.TableId}, config.EsInfo.EsIndex.DbTables.IndexName, esServerIp, esServerPort)
-			if dbTableInfos !=nil{
-				dbP.BwType = dbTableInfos[0].BwType
-				dbP.TableName = dbTableInfos[0].TableName
-			}
-			var cr = CompareResult{
-				BaseInfo:[]DbPersonVo{ dbP },
-			}
-			resultList = append(resultList,cr)
-		}
-	}
-	if len(captureIds) >0 {
-		videopersons, _ := esApi.Videopersonsinfosbyid(captureIds, config.EsInfo.EsIndex.VideoPersons.IndexName, config.EsInfo.Masterip, config.EsInfo.Httpport)
-		logger.Debug("comp videoPersons.len:",len(videopersons))
-		for _,vp :=range videopersons {
-			isAlarmInt, _ := strconv.Atoi(vp.IsAlarm)
-			bi := make([]DbPersonVo,0)
-			for _,p :=range vp.BaseInfo {
-				bi = append(bi, DbPersonVo{
-					PersonId: p.PersonId,
-					IdCard: p.IdCard,
-					CompareScore: util.ParseScore(p.CompareScore),
-					MonitorLevel: parseMonitorLevel(p.MonitorLevel),
-					PersonName: p.PersonName,
-					PersonPicUrl: p.PersonPicUrl,
-					PhoneNum: p.PhoneNum,
-					Sex: p.Sex,
-					TableId: p.TableId,
-				})
-			}
-			vpE := CompareResult{
-				Id: vp.Id,
-				CompareScore: util.ParseScore(captureM[vp.Id].CompareScore),
-				CameraId: vp.CameraId,
-				CameraAddr: vp.CameraAddr,
-				PicDate: vp.PicDate,
-				PicMaxUrl: vp.PicMaxUrl,
-				PicSmUrl: vp.PicSmUrl,
-				IsAlarm: isAlarmInt,
-				Sex: vp.Sex,
-				AgeDescription: vp.AgeDescription,
-				Race: vp.Race,
-				TaskName: vp.TaskName,
-				TaskId: vp.TaskId,
-				VideoUrl: vp.VideoUrl,
-				BaseInfo: bi,
-				SdkName: "浜鸿劯",
-			}
-			resultList = append(resultList,vpE)
-		}
-	}
-	return  resultList
-}
-
-func parseMonitorLevel(level string) string {
-	if level == "1" {
-		return "涓�绾�"
-	}
-	if level == "2" {
-		return "浜岀骇"
-	}
-	if level == "3" {
-		return "涓夌骇"
-	}
-	return level
 }
\ No newline at end of file

--
Gitblit v1.8.0