xuemingyang 3 anni fa
parent
commit
453df33b84

+ 28 - 26
src/jfw/modules/bigmember/src/entity/marketAnalysis/customized_analysis.go

@@ -278,13 +278,35 @@ func (mae *MarketAnalysisEntity) AllData() (rMap map[string]interface{}, err err
 	data := ProjectScale(thisRow)
 	area_data := AreaDistribute(thisRow)
 	customer_data := CustomerDistribute(thisRow)
+	var ids []string
+	for _, v := range thisRow.AreaAmountTop3.Buckets {
+		for _, va := range v.WinnerTop.Buckets {
+			ids = append(ids, va.Winner)
+		}
+	}
+	for _, v := range thisRow.BuyclassAmountTop3.Buckets {
+		for _, va := range v.WinnerTop.Buckets {
+			ids = append(ids, va.Winner)
+		}
+	}
+	for _, v := range thisRow.AreaCountTop3.Buckets {
+		for _, va := range v.WinnerTop.Buckets {
+			ids = append(ids, va.Winner)
+		}
+	}
+	for _, v := range thisRow.BuyclassCountTop3.Buckets {
+		for _, va := range v.BidcountTop.Buckets {
+			ids = append(ids, va.Winner)
+		}
+	}
+	eid := IDToName(ids)
 	rMap["projectScale"] = data
 	rMap["area_infos"] = area_data
 	rMap["customer_scale"] = customer_data
-	rMap["scaleAreaAmountTop"] = AmountCompute(thisRow, "area")
-	rMap["scaleBuyclassAmountTop"] = AmountCompute(thisRow, "buyclass")
-	rMap["scaleAreaCountTop"] = CountCompute(thisRow, "area")
-	rMap["scaleBuyclassCountTop"] = CountCompute(thisRow, "buyclass")
+	rMap["scaleAreaAmountTop"] = AmountCompute(thisRow, "area", eid)
+	rMap["scaleBuyclassAmountTop"] = AmountCompute(thisRow, "buyclass", eid)
+	rMap["scaleAreaCountTop"] = CountCompute(thisRow, "area", eid)
+	rMap["scaleBuyclassCountTop"] = CountCompute(thisRow, "buyclass", eid)
 	return
 }
 
@@ -406,7 +428,7 @@ func CustomerDistribute(thisRow AreaCTop) (data []map[string]interface{}) {
 }
 
 //top3金额计算
-func AmountCompute(thisRow AreaCTop, types string) (rData []map[string]interface{}) {
+func AmountCompute(thisRow AreaCTop, types string, eid map[string]string) (rData []map[string]interface{}) {
 	if types == "area" {
 		area_infos := thisRow.AreaAmountTop3
 		for _, v := range area_infos.Buckets {
@@ -417,11 +439,6 @@ func AmountCompute(thisRow AreaCTop, types string) (rData []map[string]interface
 			rWinner := []map[string]interface{}{}
 			rM["name"] = v.Key
 			rM["area_amount"] = v.AreaAmount.Amount
-			var ids []string
-			for _, va := range v.WinnerTop.Buckets {
-				ids = append(ids, va.Winner)
-			}
-			eid := IDToName(ids)
 			for _, va := range v.WinnerTop.Buckets {
 				if va.WinnerAmount.Amount == 0 {
 					break
@@ -450,11 +467,6 @@ func AmountCompute(thisRow AreaCTop, types string) (rData []map[string]interface
 			rWinner := []map[string]interface{}{}
 			rM["name"] = v.Key
 			rM["buyclass_amount"] = v.AreaAmount.Amount
-			var ids []string
-			for _, va := range v.WinnerTop.Buckets {
-				ids = append(ids, va.Winner)
-			}
-			eid := IDToName(ids)
 			for _, va := range v.WinnerTop.Buckets {
 				if va.WinnerAmount.Amount == 0 {
 					break
@@ -478,7 +490,7 @@ func AmountCompute(thisRow AreaCTop, types string) (rData []map[string]interface
 }
 
 //top3数量计算
-func CountCompute(thisRow AreaCTop, types string) (rData []map[string]interface{}) {
+func CountCompute(thisRow AreaCTop, types string, eid map[string]string) (rData []map[string]interface{}) {
 	if types == "area" {
 		area_infos := thisRow.AreaCountTop3
 		for _, v := range area_infos.Buckets {
@@ -489,11 +501,6 @@ func CountCompute(thisRow AreaCTop, types string) (rData []map[string]interface{
 			rWinner := []map[string]interface{}{}
 			rM["name"] = v.Area
 			rM["area_count"] = v.Total
-			var ids []string
-			for _, va := range v.WinnerTop.Buckets {
-				ids = append(ids, va.Winner)
-			}
-			eid := IDToName(ids)
 			for _, va := range v.WinnerTop.Buckets {
 				if va.WinnerTotal == 0 {
 					break
@@ -524,11 +531,6 @@ func CountCompute(thisRow AreaCTop, types string) (rData []map[string]interface{
 			rWinner := []map[string]interface{}{}
 			rM["name"] = v.Buyclass
 			rM["buyclass_count"] = v.Total
-			var ids []string
-			for _, va := range v.BidcountTop.Buckets {
-				ids = append(ids, va.Winner)
-			}
-			eid := IDToName(ids)
 			for _, va := range v.BidcountTop.Buckets {
 				if va.WinnerTotal == 0 {
 					break