Browse Source

Merge branch 'master' into feature/v4.8.16

lianbingjie 2 years ago
parent
commit
9b04646c53

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

@@ -25,7 +25,7 @@ const (
 
 
 	//采购单位聚合查询
 	//采购单位聚合查询
 	//buyer_procurement_scale = `"project_count":{"filter":{"match_all":{}}},"project_amount":{"sum":{"field":"sortprice"}},"buyer_count":{"filter": {"range": {"sortprice": {"gt": 0}}},"aggs": {"cardinality_buyer_count": {"cardinality": {"field": "buyer"}}}},"buyer_time_distribution": {"range": { "field": "sortprice","ranges": [%s]},"aggs":{"buyer_count": {"cardinality": {"field": "buyer"}}}},"buyer_amount_distribution": {"terms": {"field": "buyer"},"aggs": {"amount": {"sum": {"field": "sortprice"}}}}`
 	//buyer_procurement_scale = `"project_count":{"filter":{"match_all":{}}},"project_amount":{"sum":{"field":"sortprice"}},"buyer_count":{"filter": {"range": {"sortprice": {"gt": 0}}},"aggs": {"cardinality_buyer_count": {"cardinality": {"field": "buyer"}}}},"buyer_time_distribution": {"range": { "field": "sortprice","ranges": [%s]},"aggs":{"buyer_count": {"cardinality": {"field": "buyer"}}}},"buyer_amount_distribution": {"terms": {"field": "buyer"},"aggs": {"amount": {"sum": {"field": "sortprice"}}}}`
-	buyer_procurement_scale = `"project_amount":{"sum":{"field":"sortprice"}},"buyer_amount_distribution": {"terms": {"field": "buyer"},"aggs": {"amount": {"sum": {"field": "sortprice"}}}}`
+	buyer_procurement_scale = `"project_amount":{"sum":{"field":"sortprice"}},"buyer_amount_distribution": {"terms": {"field": "buyer","order": [{"amount": "desc"}],"size":100000},"aggs": {"amount": {"sum": {"field": "sortprice"}}}}`
 
 
 	//采购单位top3(价格)buyer_sortprice
 	//采购单位top3(价格)buyer_sortprice
 	buyer_sortprice = `"buyer_amount_top3": {"terms": {"field": "buyer","order": [{"buyer_amount": "desc"}],"size": 3},"aggs": {"buyer_amount": {"sum": {"field": "sortprice"}},"s_winner_top": {"terms": {"field": "entidlist","exclude":["-"],"order": [{"buyer_winner_amount": "desc"}],"size": 3},"aggs": {"buyer_winner_amount": {"sum": {"field": "sortprice"}}}}}}`
 	buyer_sortprice = `"buyer_amount_top3": {"terms": {"field": "buyer","order": [{"buyer_amount": "desc"}],"size": 3},"aggs": {"buyer_amount": {"sum": {"field": "sortprice"}},"s_winner_top": {"terms": {"field": "entidlist","exclude":["-"],"order": [{"buyer_winner_amount": "desc"}],"size": 3},"aggs": {"buyer_winner_amount": {"sum": {"field": "sortprice"}}}}}}`
@@ -35,7 +35,7 @@ const (
 
 
 	//中标单位
 	//中标单位
 	//winner_procurement_scale = `"winner_count":{"filter": {"range": {"sortprice": {"gt": 0}}},"aggs": {"cardinality_winner_count": {"cardinality": {"field": "s_winner"}}}},"winner_time_distribution": {"range": { "field": "sortprice","ranges": [%s]},"aggs":{"s_winner_count": {"cardinality": {"field": "s_winner"}}}},"winner_amount_distribution": {"terms": {"field": "s_winner"},"aggs": {"amount": {"sum": {"field": "sortprice"}}}}`
 	//winner_procurement_scale = `"winner_count":{"filter": {"range": {"sortprice": {"gt": 0}}},"aggs": {"cardinality_winner_count": {"cardinality": {"field": "s_winner"}}}},"winner_time_distribution": {"range": { "field": "sortprice","ranges": [%s]},"aggs":{"s_winner_count": {"cardinality": {"field": "s_winner"}}}},"winner_amount_distribution": {"terms": {"field": "s_winner"},"aggs": {"amount": {"sum": {"field": "sortprice"}}}}`
-	winner_procurement_scale = `"winner_amount_distribution": {"terms": {"field": "entidlist"},"aggs": {"amount": {"sum": {"field": "sortprice"}}}}`
+	winner_procurement_scale = `"winner_amount_distribution": {"terms": {"field": "entidlist","order": [{"amount": "desc"}],"size":100000},"aggs": {"amount": {"sum": {"field": "sortprice"}}}}`
 
 
 	//中标单位top3(价格)
 	//中标单位top3(价格)
 	winner_sortprice = `"winner_amount_top3": {"terms": {"field": "entidlist","exclude":["-"],"order": [{"s_winner_amount": "desc"}],"size": 3},"aggs": {"s_winner_amount": {"sum": {"field": "sortprice"}},"buyer_top": {"terms": {"field": "buyer","order": [{"buyer_winner_amount": "desc"}],"size": 3},"aggs": {"buyer_winner_amount": {"sum": {"field": "sortprice"}}}}}}`
 	winner_sortprice = `"winner_amount_top3": {"terms": {"field": "entidlist","exclude":["-"],"order": [{"s_winner_amount": "desc"}],"size": 3},"aggs": {"s_winner_amount": {"sum": {"field": "sortprice"}},"buyer_top": {"terms": {"field": "buyer","order": [{"buyer_winner_amount": "desc"}],"size": 3},"aggs": {"buyer_winner_amount": {"sum": {"field": "sortprice"}}}}}}`

+ 10 - 10
src/jfw/modules/bigmember/src/entity/marketAnalysis/scaleRefineQuery.go

@@ -3,9 +3,9 @@ package marketAnalysis
 import (
 import (
 	"encoding/json"
 	"encoding/json"
 	"fmt"
 	"fmt"
+	"jy/src/jfw/modules/bigmember/src/util"
 	"sort"
 	"sort"
 	"strings"
 	"strings"
-	"jy/src/jfw/modules/bigmember/src/util"
 )
 )
 
 
 const (
 const (
@@ -78,7 +78,7 @@ type entValue struct {
 	Prop  interface{} `json:"prop"`
 	Prop  interface{} `json:"prop"`
 }
 }
 
 
-//marketScaleRefineQuery 细化聚合
+// marketScaleRefineQuery 细化聚合
 func (mae *MarketAnalysisEntity) marketScaleRefineQuery() (rMap map[string]interface{}, err error) {
 func (mae *MarketAnalysisEntity) marketScaleRefineQuery() (rMap map[string]interface{}, err error) {
 	//关键词分组聚合
 	//关键词分组聚合
 	var aggsGroup []string
 	var aggsGroup []string
@@ -94,7 +94,7 @@ func (mae *MarketAnalysisEntity) marketScaleRefineQuery() (rMap map[string]inter
 			}
 			}
 		}
 		}
 		if len(bools) > 0 {
 		if len(bools) > 0 {
-			aggsGroup = append(aggsGroup, fmt.Sprintf(`"%s":{"filter":{"query":{"bool":{"should":[%s],"minimum_should_match": 1}}},"aggs":{"project_count":{"filter":{"match_all":{}}},"project_amount":{"sum":{"field":"sortprice"}},"winner_total_top":{"terms":{"field":"entidlist","exclude":["-"],"order":[{"refine_winner_total":"desc"}],"size":%d},"aggs":{"refine_winner_total":{"filter":{"match_all":{}}}}},"winner_amount_top":{"terms":{"field":"entidlist","exclude":["-"],"order":[{"refine_winner_amount":"desc"}],"size":%d},"aggs":{"refine_winner_amount":{"sum":{"field":"sortprice"}}}}}}`, group.ItemName, strings.Join(bools, ","), topWinnerLimit, topWinnerLimit))
+			aggsGroup = append(aggsGroup, fmt.Sprintf(`"%s":{"filter":{"bool":{"should":[%s],"minimum_should_match": 1}},"aggs":{"project_count":{"filter":{"match_all":{}}},"project_amount":{"sum":{"field":"sortprice"}},"winner_total_top":{"terms":{"field":"entidlist","exclude":["-"],"order":[{"refine_winner_total":"desc"}],"size":%d},"aggs":{"refine_winner_total":{"filter":{"match_all":{}}}}},"winner_amount_top":{"terms":{"field":"entidlist","exclude":["-"],"order":[{"refine_winner_amount":"desc"}],"size":%d},"aggs":{"refine_winner_amount":{"sum":{"field":"sortprice"}}}}}}`, group.ItemName, strings.Join(bools, ","), topWinnerLimit, topWinnerLimit))
 		}
 		}
 		itemDataMap[group.ItemName] = group.UpdateTime
 		itemDataMap[group.ItemName] = group.UpdateTime
 	}
 	}
@@ -141,7 +141,7 @@ func (mae *MarketAnalysisEntity) marketScaleRefineQuery() (rMap map[string]inter
 	}, nil
 	}, nil
 }
 }
 
 
-//doIdSwitch 补充企业名称
+// doIdSwitch 补充企业名称
 func (srd *scaleRefineData) doIdSwitch() {
 func (srd *scaleRefineData) doIdSwitch() {
 	if len(srd.IdSwitch) == 0 {
 	if len(srd.IdSwitch) == 0 {
 		return
 		return
@@ -165,7 +165,7 @@ func (srd *scaleRefineData) doIdSwitch() {
 	}
 	}
 }
 }
 
 
-//formatData 计算百分比&获取企业对应名称
+// formatData 计算百分比&获取企业对应名称
 func (srd *scaleRefineData) formatData() {
 func (srd *scaleRefineData) formatData() {
 	for _, v := range srd.Data {
 	for _, v := range srd.Data {
 		v.TotalProp = float64(v.Total) / float64(srd.Total.Total)
 		v.TotalProp = float64(v.Total) / float64(srd.Total.Total)
@@ -183,7 +183,7 @@ func (srd *scaleRefineData) formatData() {
 	srd.ReturnData.TotalTop = srd.sortBy(onlyTotal).getFormatTop(topItemLimit, onlyTotal)
 	srd.ReturnData.TotalTop = srd.sortBy(onlyTotal).getFormatTop(topItemLimit, onlyTotal)
 }
 }
 
 
-//getOverallData 获取分类总览数据
+// getOverallData 获取分类总览数据
 func (srd *scaleRefineData) getOverallData() (rData []map[string]interface{}) {
 func (srd *scaleRefineData) getOverallData() (rData []map[string]interface{}) {
 	for _, Value := range srd.Data {
 	for _, Value := range srd.Data {
 		rData = append(rData, map[string]interface{}{
 		rData = append(rData, map[string]interface{}{
@@ -195,9 +195,9 @@ func (srd *scaleRefineData) getOverallData() (rData []map[string]interface{}) {
 	return
 	return
 }
 }
 
 
-//getArrayFormatTop 获取前n个数据,并格式化
-//limit 获取前x条
-//flag 1仅返回数量统计 2仅返回金额统计
+// getArrayFormatTop 获取前n个数据,并格式化
+// limit 获取前x条
+// flag 1仅返回数量统计 2仅返回金额统计
 func (srd *scaleRefineData) getFormatTop(limit, flag int) (rData []*returnItem) {
 func (srd *scaleRefineData) getFormatTop(limit, flag int) (rData []*returnItem) {
 	for index, Value := range srd.Data {
 	for index, Value := range srd.Data {
 		if index >= limit && limit > -1 {
 		if index >= limit && limit > -1 {
@@ -241,7 +241,7 @@ func (srd *scaleRefineData) getFormatTop(limit, flag int) (rData []*returnItem)
 	return
 	return
 }
 }
 
 
-//getScaleRefineAll 根据订阅词组创建时间排序
+// getScaleRefineAll 根据订阅词组创建时间排序
 func (srd *scaleRefineData) sortBy(flag int) *scaleRefineData {
 func (srd *scaleRefineData) sortBy(flag int) *scaleRefineData {
 	sort.Slice(srd.Data, func(i, j int) bool {
 	sort.Slice(srd.Data, func(i, j int) bool {
 		switch flag {
 		switch flag {