From 0222e79afe45d9fc55aed9a7e62ca239c228ab73 Mon Sep 17 00:00:00 2001 From: 554325746@qq.com <554325746@qq.com> Date: 星期一, 23 十二月 2019 10:24:12 +0800 Subject: [PATCH] add sys comeback sh --- service/FaceCompareService.go | 85 +++++++++++++++++++++++++----------------- 1 files changed, 50 insertions(+), 35 deletions(-) diff --git a/service/FaceCompareService.go b/service/FaceCompareService.go index 3882a86..24aabde 100644 --- a/service/FaceCompareService.go +++ b/service/FaceCompareService.go @@ -8,10 +8,10 @@ "nanomsg.org/go-mangos/protocol/req" "nanomsg.org/go-mangos/transport/ipc" "nanomsg.org/go-mangos/transport/tcp" - "sort" + "strconv" "sync" "webserver/extend/config" - "webserver/extend/logger" + "basic.com/valib/logger.git" ) type FaceCompareService struct { @@ -28,28 +28,19 @@ type CompareOnce struct { CompareNum string `json:"compareOnce"` - CompareData *[]*protomsg.SdkCompareEach `json:"compareData"` + CompareData *CompareList `json:"compareData"` } -type CompareResultWrapper struct { - CompareData *[]*protomsg.SdkCompareEach - By func(p,q *protomsg.SdkCompareEach) bool -} +type CompareList []*protomsg.SdkCompareEach -func (crw CompareResultWrapper) Len()int { - return len(*crw.CompareData) +func (s CompareList) Len()int { + return len(s) } -func (crw CompareResultWrapper) Swap(i,j int) { - (*crw.CompareData)[i],(*crw.CompareData)[j] = (*crw.CompareData)[j],(*crw.CompareData)[i] +func (s CompareList) Swap(i,j int) { + s[i],s[j] = s[j],s[i] } -func (crw CompareResultWrapper) Less(i,j int) bool{ - return crw.By((*crw.CompareData)[i],(*crw.CompareData)[j]) -} - -func SortByScore(list *[]*protomsg.SdkCompareEach) { - sort.Sort(CompareResultWrapper{list, func(p, q *protomsg.SdkCompareEach) bool { - return q.CompareScore < p.CompareScore //閫掑噺鎺掑簭 - }}) +func (s CompareList) Less(i,j int) bool{//闄嶅簭鎺掑簭 + return s[i].CompareScore > s[j].CompareScore } var compResultHisM = make(map[string]*CompareOnce,0) @@ -73,20 +64,22 @@ var CaptureTable = "capturetable" // 鎶撴媿搴� -func (sv *FaceCompareService) Compare() *CompareOnce{ +func (sv *FaceCompareService) CompareVideoPersons() *CompareList{ + sv.CompareArgs.TableIds = []string { CaptureTable } b, err := proto.Marshal(&sv.CompareArgs) - compServerList := config.CompServerInfo.Url - logger.Debug("compServerList:", compServerList) - //1.鍚戝悇涓猚ompare杩涚▼鍙戣捣璇锋眰鎷垮埌姣斿缁撴灉 - resultList :=make([]*protomsg.SdkCompareEach,0) - for _,str :=range compServerList{ - reqUrl := "tcp://"+str + esCompServerList := config.EsCompServerInfo.Ips + logger.Debug("compServerList:", esCompServerList) + //1.鍚戝悇涓狤s compare杩涚▼鍙戣捣璇锋眰鎷垮埌姣斿缁撴灉 + var resultList CompareList + + for _,str :=range esCompServerList{ + reqUrl := "tcp://"+str + ":"+strconv.Itoa(config.EsCompServerInfo.Port) resultB := doCompareRequest(reqUrl,b) if resultB == nil || len(*resultB) ==0 { continue } var sdkCompResult protomsg.SdkCompareResult - //rList :=make([]protomsg.Esinfo,0) + err = proto.Unmarshal(*resultB, &sdkCompResult) if err !=nil { logger.Debug("comp sdkCompareResult unmarshal err:", err) @@ -96,19 +89,41 @@ logger.Debug("comp len(rList):", len(sdkCompResult.CompareResult)) if len(sdkCompResult.CompareResult) >0 { resultList = append(resultList, sdkCompResult.CompareResult...) - //resultList = append(resultList, FillDataToCompareResult(&sdkCompResult)...) } } logger.Debug("comp totalList.len:", len(resultList)) - //2.缂撳瓨姣斿缁撴灉 - co := &CompareOnce{ - CompareNum: sv.CompareNum, - CompareData: &resultList, - } - SetCompResultByNum(co) + return &resultList +} - return co +//姣斿搴曞簱 +func (sv *FaceCompareService) CompareDbPersons() *CompareList{ + b, err := proto.Marshal(&sv.CompareArgs) + dbPersonCompServerUrl := config.DbPersonCompInfo.Ip + logger.Debug("comp Server url:", dbPersonCompServerUrl) + + var resultList CompareList + + reqUrl := "tcp://"+dbPersonCompServerUrl+":"+strconv.Itoa(config.DbPersonCompInfo.Port) + resultB := doCompareRequest(reqUrl,b) + if resultB == nil || len(*resultB) ==0 { + return nil + } + var sdkCompResult protomsg.SdkCompareResult + err = proto.Unmarshal(*resultB, &sdkCompResult) + if err !=nil { + logger.Debug("comp sdkCompareResult unmarshal err:", err) + return nil + } + + logger.Debug("comp len(rList):", len(sdkCompResult.CompareResult)) + if len(sdkCompResult.CompareResult) >0 { + resultList = append(resultList, sdkCompResult.CompareResult...) + } + + logger.Debug("comp totalList.len:", len(resultList)) + + return &resultList } func doCompareRequest(url string,args []byte) *[]byte{ -- Gitblit v1.8.0