|
@@ -16,7 +16,7 @@ import (
|
|
|
|
|
|
const (
|
|
|
buyer_query_address = `{"query":{"bool":{"must":[{"term":{"buyer_name":"%s"}}]}},"size":1,"_source":["city","province","buyerclass"]}`
|
|
|
- buyerPortraitSearchSql = `{"query":{"bool":{"must":[%s]}},"aggs":{"year_bidamount":{"range":{"field":"jgtime","ranges":[%s]},"aggs":{"count":{"sum":{"field":"bidamount"}}}},"fail_count":{"filter":{"bool":{"must":[{"term":{"bidstatus":"流标"}}]}}},"winner_count":{"cardinality":{"field":"entidlist"}},"bidamount_count":{"sum":{"field":"bidamount"}},"moneyRange":{"filter":{"bool":{"must":{"range":{"project_rate":{"gte":0,"lte":0.6}}}}},"aggs":{"moneyRangeValue":{"range":{"field":"bidamount","ranges":[%s]},"aggs":{"bidamount_count":{"sum":{"field":"bidamount"}},"budget_count":{"sum":{"field":"budget"}}}}}},"bidtypeData":{"filter":{"bool":{"must":{"terms":{"bidtype":["招标","邀标","询价","单一","竞价","竞谈"]}}}},"aggs":{"bidtype_group":{"terms":{"field":"bidtype"},"aggs":{"bidamount_count":{"sum":{"field":"bidamount"}}}},"bidamount_count":{"sum":{"field":"bidamount"}}}},"topScopeclassData":{"terms":{"field":"topscopeclass","size":12,"order":[{"bidamount_count":"desc"}]},"aggs":{"bidamount_count":{"sum":{"field":"bidamount"}},"top_scopeclass_rate_time_avg":` + YearRate + `}},"allScopeclassData":` + YearRate + `,"topAgencyData":{"terms":{"field":"agency","size":10,"order":[{"_count":"desc"},{"last_with_time":"desc"}]},"aggs":{"last_with_time":{"max":{"field":"jgtime"}}}},"topWinner":{"terms":{"field":"entidlist","size":50,"order":[{"count_bidamount":"desc"},{"_count":"desc"},{"last_with_time":"desc"}]},"aggs":{"last_with_time":{"max":{"field":"jgtime"}},"count_bidamount":{"sum":{"field":"bidamount"}},"avg_data":{"filter":{"bool":{"must":{"range":{"project_rate":{"gte":0,"lte":0.6}}}}},"aggs":{"bidamount_count":{"sum":{"field":"bidamount"}},"budget_count":{"sum":{"field":"budget"}}}}}},"firstWinner":{"terms":{"field":"first_cooperation","size":50}},"allWinnerList":{"terms":{"field":"entidlist","size":10000},"aggs":{"count_bidamount":{"sum":{"field":"bidamount"}},"avg_data":` + BaseRate + `}}},"size":0}`
|
|
|
+ buyerPortraitSearchSql = `{"query":{"bool":{"must":[%s]}},"aggs":{"year_bidamount":{"range":{"field":"jgtime","ranges":[%s]},"aggs":{"count":{"sum":{"field":"bidamount"}}}},"fail_count":{"filter":{"bool":{"must":[{"term":{"bidstatus":"流标"}}]}}},"winner_count":{"cardinality":{"field":"entidlist"}},"bidamount_count":{"sum":{"field":"bidamount"}},"moneyRange":{"filter":{"bool":{"must":{"range":{"project_rate":{"gte":0,"lte":0.6}}}}},"aggs":{"moneyRangeValue":{"range":{"field":"bidamount","ranges":[%s]},"aggs":{"bidamount_count":{"sum":{"field":"bidamount"}},"budget_count":{"sum":{"field":"budget"}}}}}},"bidtypeData":{"filter":{"bool":{"must":{"terms":{"bidtype":["招标","邀标","询价","单一","竞价","竞谈"]}}}},"aggs":{"bidtype_group":{"terms":{"field":"bidtype"},"aggs":{"bidamount_count":{"sum":{"field":"bidamount"}}}},"bidamount_count":{"sum":{"field":"bidamount"}}}},"topScopeclassData":{"terms":{"field":"topscopeclass","size":12,"order":[{"bidamount_count":"desc"}]},"aggs":{"bidamount_count":{"sum":{"field":"bidamount"}},"top_scopeclass_rate_time_avg":` + YearRate + `}},"allScopeclassData":` + YearRate + `,"topAgencyData":{"terms":{"field":"agency","size":10,"order":[{"_count":"desc"},{"last_with_time":"desc"}]},"aggs":{"last_with_time":{"max":{"field":"jgtime"}}}},"topWinner":{"terms":{"field":"entidlist","size":200,"order":[{"count_bidamount":"desc"},{"_count":"desc"},{"last_with_time":"desc"}]},"aggs":{"last_with_time":{"max":{"field":"jgtime"}},"count_bidamount":{"sum":{"field":"bidamount"}},"avg_data":{"filter":{"bool":{"must":{"range":{"project_rate":{"gte":0,"lte":0.6}}}}},"aggs":{"bidamount_count":{"sum":{"field":"bidamount"}},"budget_count":{"sum":{"field":"budget"}}}}}},"firstWinner":{"terms":{"field":"first_cooperation","size":200}},"allWinnerList":{"terms":{"field":"entidlist","size":10000},"aggs":{"count_bidamount":{"sum":{"field":"bidamount"}},"avg_data":` + BaseRate + `}}},"size":0}`
|
|
|
queryTermByIdSql = `{"terms":{"_id":[%s]}}`
|
|
|
|
|
|
queryMustSql = `{"query":{"bool":{"must":[%s]}}}`
|
|
@@ -38,8 +38,12 @@ func GetBuyerMsg(entName string) (city, province, buyerclass string) {
|
|
|
}
|
|
|
|
|
|
// GetBuyerPortraitData 采购单位画像
|
|
|
-func GetBuyerPortraitData(screen *PortraitScreen) (map[string]interface{}, error) {
|
|
|
- buyerPortraitData, err := BuyerPortraitSearch(screen) //查询采购单位画像
|
|
|
+func GetBuyerPortraitData(screen *PortraitScreen, isPdf ...string) (map[string]interface{}, error) {
|
|
|
+ var pdfStr string
|
|
|
+ if len(isPdf) > 0 {
|
|
|
+ pdfStr = isPdf[0]
|
|
|
+ }
|
|
|
+ buyerPortraitData, err := BuyerPortraitSearch(screen, pdfStr) //查询采购单位画像
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
@@ -64,7 +68,7 @@ func GetBuyerPortraitData(screen *PortraitScreen) (map[string]interface{}, error
|
|
|
}
|
|
|
|
|
|
// BuyerPortraitSearch 采购单位画像查询
|
|
|
-func BuyerPortraitSearch(screen *PortraitScreen) (map[string]interface{}, error) {
|
|
|
+func BuyerPortraitSearch(screen *PortraitScreen, isPdf ...string) (map[string]interface{}, error) {
|
|
|
defer qutil.Catch()
|
|
|
|
|
|
startTime, endTime := screen.PareTimeSelect(false)
|
|
@@ -390,6 +394,9 @@ func BuyerPortraitSearch(screen *PortraitScreen) (map[string]interface{}, error)
|
|
|
//allWinnerIdsMap 需要返回的企业id,需要根据词id查询企业名称
|
|
|
//showLimit 重点合作企业及首次合作企业展示数量限制
|
|
|
allWinnerIdsMap, showLimit := map[string]bool{}, 20
|
|
|
+ if len(isPdf) > 0 && isPdf[0] == "pdf" { //pdf分析报告
|
|
|
+ showLimit = 100
|
|
|
+ }
|
|
|
//topWinnerListData 重点合作企业数据
|
|
|
//firstWinnerListData 首次合作企业数据
|
|
|
topWinnerListData, firstWinnerListData := &customWinnerList{}, &customWinnerList{}
|