Przeglądaj źródła

fix:优化代码

duxin 3 lat temu
rodzic
commit
681f63ecea

+ 26 - 24
src/jfw/modules/bigmember/src/entity/marketAnalysis/customizad_distribution.go

@@ -640,9 +640,31 @@ func (mae *MarketAnalysisEntity) BuyerWinnerAnalysis() map[string]interface{} {
 			}
 		}
 	}
+	var winnerKeys []string
+	winnerKeyMap := make(map[string]int)
+	for _, v := range thisBuyerWinnerRow.BuyerCountTop3.Buckets {
+		for _, v1 := range v.SWinnerTop.Buckets {
+			winnerKeyMap[v1.Key]++
+		}
+	}
+	for _, v := range thisBuyerWinnerRow.BuyerAmountTop3.Buckets {
+		for _, v1 := range v.SWinnerTop.Buckets {
+			winnerKeyMap[v1.Key]++
+		}
+	}
+	for _, v := range thisBuyerWinnerRow.WinnerCountTop3.SWinnerCount {
+		winnerKeyMap[v.Key]++
+	}
+	for _, v := range thisBuyerWinnerRow.WinnerAmountTop3.SWinnerAmount {
+		winnerKeyMap[v.Key]++
+	}
+	for k, _ := range winnerKeyMap {
+		winnerKeys = append(winnerKeys, k)
+	}
+	winnerName := GetEntNameByIds(winnerKeys)
 	rMap := make(map[string]interface{})
-	BuyerAnalysis(thisBuyerWinnerRow, rMap)
-	WinningAnalysis(thisBuyerWinnerRow, rMap)
+	BuyerAnalysis(thisBuyerWinnerRow, rMap, winnerName)
+	WinningAnalysis(thisBuyerWinnerRow, rMap, winnerName)
 	return rMap
 }
 
@@ -654,7 +676,7 @@ type distributionTrend struct {
 
 var Analysis = []string{"<10万", "10万-50万", "50万-100万", "100万-500万", "500万-1000万", "1000万-1亿", "≥1亿"}
 
-func BuyerAnalysis(thisBuyerRow BuyerWinnerRow, rMap map[string]interface{}) {
+func BuyerAnalysis(thisBuyerRow BuyerWinnerRow, rMap map[string]interface{}, winnerName map[string]string) {
 	type buyer struct {
 		Name        string      `json:"key"`
 		TotalAmount interface{} `json:"total_amount"`
@@ -697,19 +719,7 @@ func BuyerAnalysis(thisBuyerRow BuyerWinnerRow, rMap map[string]interface{}) {
 		Number int64       `json:"number"`
 		//Accounted interface{} `json:"accounted"`
 	}
-	var winnerKeys []string
-	for _, v := range thisBuyerRow.BuyerCountTop3.Buckets {
-		for _, v1 := range v.SWinnerTop.Buckets {
-			winnerKeys = append(winnerKeys, v1.Key)
-		}
-	}
-	for _, v := range thisBuyerRow.BuyerAmountTop3.Buckets {
-		for _, v1 := range v.SWinnerTop.Buckets {
-			winnerKeys = append(winnerKeys, v1.Key)
-		}
-	}
 
-	winnerName := GetEntNameByIds(winnerKeys)
 	//采购单位-项目数量TOP3
 	countMap := []interface{}{}
 	for _, v := range thisBuyerRow.BuyerCountTop3.Buckets {
@@ -784,7 +794,7 @@ func BuyerAnalysis(thisBuyerRow BuyerWinnerRow, rMap map[string]interface{}) {
 }
 
 //中标单位分析
-func WinningAnalysis(thisWinnerRow BuyerWinnerRow, rMap map[string]interface{}) {
+func WinningAnalysis(thisWinnerRow BuyerWinnerRow, rMap map[string]interface{}, winnerName map[string]string) {
 	type s_Winner struct {
 		Name        string      `json:"key"`
 		TotalAmount interface{} `json:"total_amount"`
@@ -824,15 +834,7 @@ func WinningAnalysis(thisWinnerRow BuyerWinnerRow, rMap map[string]interface{})
 		Number int64  `json:"number"`
 		//Accounted interface{} `json:"accounted"`
 	}
-	var winnerKeys []string
-	for _, v := range thisWinnerRow.WinnerCountTop3.SWinnerCount {
-		winnerKeys = append(winnerKeys, v.Key)
-	}
-	for _, v := range thisWinnerRow.WinnerAmountTop3.SWinnerAmount {
-		winnerKeys = append(winnerKeys, v.Key)
-	}
 
-	winnerName := GetEntNameByIds(winnerKeys)
 	//中标单位-项目数量TOP3
 	countMap := []interface{}{}
 	for _, v := range thisWinnerRow.WinnerCountTop3.SWinnerCount {