From 684a1f1638b235e26cb6d0ed4e8152d4f4546d3e Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期四, 01 八月 2019 11:22:41 +0800 Subject: [PATCH] fix sort --- service/FaceCompareService.go | 29 ++++++++++------------------- 1 files changed, 10 insertions(+), 19 deletions(-) diff --git a/service/FaceCompareService.go b/service/FaceCompareService.go index 3882a86..0ff7969 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 *CompareResultSort `json:"compareData"` } -type CompareResultWrapper struct { - CompareData *[]*protomsg.SdkCompareEach - By func(p,q *protomsg.SdkCompareEach) bool -} +type CompareResultSort []*protomsg.SdkCompareEach -func (crw CompareResultWrapper) Len()int { - return len(*crw.CompareData) +func (crw CompareResultSort) Len()int { + return len(crw) } -func (crw CompareResultWrapper) Swap(i,j int) { - (*crw.CompareData)[i],(*crw.CompareData)[j] = (*crw.CompareData)[j],(*crw.CompareData)[i] +func (crw CompareResultSort) Swap(i,j int) { + crw[i],crw[j] = crw[j],crw[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 (crw CompareResultSort) Less(i,j int) bool{//闄嶅簭鎺掑簭 + return crw[i].CompareScore > crw[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 CompareResultSort + //resultList :=make([]*protomsg.SdkCompareEach,0) for _,str :=range compServerList{ reqUrl := "tcp://"+str resultB := doCompareRequest(reqUrl,b) -- Gitblit v1.8.0