From f79f18bf3e65ad0eaf8fd1feb788bf792e362520 Mon Sep 17 00:00:00 2001
From: sunty <suntianyu0923@163.com>
Date: 星期四, 01 八月 2019 15:05:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 controllers/fileController.go |   36 +++++++++++++++--
 service/FaceCompareService.go |   29 +++++---------
 2 files changed, 41 insertions(+), 24 deletions(-)

diff --git a/controllers/fileController.go b/controllers/fileController.go
index d801abd..4ca73fa 100644
--- a/controllers/fileController.go
+++ b/controllers/fileController.go
@@ -17,6 +17,7 @@
 	"mime/multipart"
 	"net/http"
 	"path"
+	"sort"
 	"strconv"
 	"strings"
 	"time"
@@ -181,9 +182,22 @@
 	TableName string `json:"tableName"`
 }
 
+type CompareSortResult []CompareResult
+
+func (s CompareSortResult) Len() int{
+	return len(s)
+}
+func (s CompareSortResult) Swap(i,j int){
+	s[i],s[j] = s[j],s[i]
+}
+func (s CompareSortResult) Less(i,j int) bool{
+	return s[i].CompareScore > s[j].CompareScore
+}
+
 //濉厖鍚戝墠绔繑鍥炵殑鏁版嵁
-func FillDataToCompareResult(compResult *protomsg.SdkCompareResult) []CompareResult {
-	resultList :=make([]CompareResult,0)
+func FillDataToCompareResult(compResult *protomsg.SdkCompareResult) CompareSortResult {
+	//resultList :=make([]CompareResult,0)
+	var resultList = CompareSortResult{}
 
 	dbPersonM := make(map[string]*protomsg.SdkCompareEach, 0)
 	captureM := make(map[string]*protomsg.SdkCompareEach, 0)
@@ -273,6 +287,7 @@
 			resultList = append(resultList,vpE)
 		}
 	}
+	sort.Sort(resultList)
 	return  resultList
 }
 
@@ -365,12 +380,23 @@
 		compareService := service.NewFaceCompareService(arg)
 		compareOnce := compareService.Compare()
 		totalData := compareOnce.CompareData
+
 		logger.Debug("comp 姣斿缁撴潫锛岀敤鏃讹細",time.Since(timeStart))
 		m := make(map[string]interface{},3)
-		if totalData!=nil && len(*totalData)>0{
+		if totalData != nil && totalData.Len() > 0{
 			//鎸夊垎鍊兼帓搴�
-			service.SortByScore(totalData)
-			total := len(*totalData)
+			var scorePre []float32
+			for _,f1 :=range *totalData {
+				scorePre = append(scorePre, f1.CompareScore)
+			}
+			//logger.Debug("comp 鎺掑簭鍓嶅垎鍊兼暟缁勶細",scorePre)
+			sort.Sort(totalData)
+			var scoreAf []float32
+			for _,f2 :=range *totalData {
+				scoreAf = append(scoreAf, f2.CompareScore)
+			}
+			//logger.Debug("comp 鎺掑簭鍚庡垎鍊兼暟缁勶細",scoreAf)
+			total := totalData.Len()
 
 			m["compareNum"] = compareOnce.CompareNum
 			m["total"] = total
diff --git a/service/FaceCompareService.go b/service/FaceCompareService.go
index 3882a86..bc94ee3 100644
--- a/service/FaceCompareService.go
+++ b/service/FaceCompareService.go
@@ -8,7 +8,6 @@
 	"nanomsg.org/go-mangos/protocol/req"
 	"nanomsg.org/go-mangos/transport/ipc"
 	"nanomsg.org/go-mangos/transport/tcp"
-	"sort"
 	"sync"
 	"webserver/extend/config"
 	"webserver/extend/logger"
@@ -28,28 +27,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)
@@ -78,7 +68,8 @@
 	compServerList := config.CompServerInfo.Url
 	logger.Debug("compServerList:", compServerList)
 	//1.鍚戝悇涓猚ompare杩涚▼鍙戣捣璇锋眰鎷垮埌姣斿缁撴灉
-	resultList :=make([]*protomsg.SdkCompareEach,0)
+	var resultList CompareList
+	//resultList :=make([]*protomsg.SdkCompareEach,0)
 	for _,str :=range compServerList{
 		reqUrl := "tcp://"+str
 		resultB := doCompareRequest(reqUrl,b)

--
Gitblit v1.8.0