From 71dda110d29c7f2150a2e0a75839bc262901bacb Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期四, 08 八月 2019 19:12:57 +0800 Subject: [PATCH] fix sort --- controllers/fileController.go | 51 +++++++++++++++++++-------------------------------- 1 files changed, 19 insertions(+), 32 deletions(-) diff --git a/controllers/fileController.go b/controllers/fileController.go index 8ebc80c..156ecb4 100644 --- a/controllers/fileController.go +++ b/controllers/fileController.go @@ -184,33 +184,31 @@ Enable int32 `json:"enable"` } -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 +type ScoreIndex struct { + CompareScore float32 + Index int } //濉厖鍚戝墠绔繑鍥炵殑鏁版嵁 -func FillDataToCompareResult(compResult *protomsg.SdkCompareResult) CompareSortResult { - //resultList :=make([]CompareResult,0) - var resultList = CompareSortResult{} +func FillDataToCompareResult(compResult *protomsg.SdkCompareResult) []CompareResult { - dbPersonM := make(map[string]*protomsg.SdkCompareEach, 0) - captureM := make(map[string]*protomsg.SdkCompareEach, 0) + var resultList = make([]CompareResult, len(compResult.CompareResult)) + dbPersonM := make(map[string]ScoreIndex, 0) + captureM := make(map[string]ScoreIndex, 0) personIds := make([]string,0) captureIds := make([]string,0) - for _,v :=range compResult.CompareResult{ + for idx,v :=range compResult.CompareResult{ if v.Tableid == service.CaptureTable { - captureM[v.Id] = v + captureM[v.Id] = ScoreIndex{ + Index: idx, + CompareScore: v.CompareScore, + } captureIds = append(captureIds,v.Id) } else { - dbPersonM[v.Id] = v + dbPersonM[v.Id] = ScoreIndex{ + Index: idx, + CompareScore: v.CompareScore, + } personIds = append(personIds,v.Id) } } @@ -243,10 +241,10 @@ dbP.BwType = dbTableInfos[0].BwType dbP.TableName = dbTableInfos[0].TableName } - var cr = CompareResult{ + + resultList[dbPersonM[p.Id].Index] = CompareResult{ BaseInfo:[]DbPersonVo{ dbP }, } - resultList = append(resultList,cr) } } if len(captureIds) >0 { @@ -288,20 +286,9 @@ BaseInfo: bi, SdkName: "浜鸿劯", } - resultList = append(resultList,vpE) + resultList[captureM[vp.Id].Index] = vpE } } - var scorePre []float32 - for _,f1 :=range resultList { - scorePre = append(scorePre, f1.CompareScore) - } - logger.Debug("comp 鎺掑簭鍓嶅垎鍊兼暟缁勶細",scorePre) - sort.Sort(resultList) - var scoreAf []float32 - for _,f2 :=range resultList { - scoreAf = append(scoreAf, f2.CompareScore) - } - logger.Debug("comp 鎺掑簭鍚庡垎鍊兼暟缁勶細",scoreAf) return resultList } -- Gitblit v1.8.0