|
@@ -1,12 +1,13 @@
|
|
|
package marketAnalysis
|
|
|
|
|
|
import (
|
|
|
- "encoding/json"
|
|
|
- "fmt"
|
|
|
util "app.yhyue.com/moapp/jybase/common"
|
|
|
elastic "app.yhyue.com/moapp/jybase/es"
|
|
|
- "strings"
|
|
|
+ "encoding/json"
|
|
|
+ "fmt"
|
|
|
util2 "jy/src/jfw/modules/bigmember/src/util"
|
|
|
+ "log"
|
|
|
+ "strings"
|
|
|
)
|
|
|
|
|
|
const (
|
|
@@ -15,14 +16,14 @@ const (
|
|
|
query_top10 = `,"sort": [{"sortprice": "desc"}],"from": 0,"size": 10`
|
|
|
aggs_area_amounttop3 = `"area_amount_top3":{"terms":{"field":"area","exclude":["全国"],"order":[{"area_amount":"desc"}],"size":3},"aggs":{"area_amount":{"sum":{"field":"sortprice"}},"winner_top":{"terms":{"field":"entidlist","exclude": ["-"],"order":[{"area_winner_amount":"desc"}],"size":3},"aggs":{"area_winner_amount":{"sum":{"field":"sortprice"}}}}}}`
|
|
|
aggs_area_counttop3 = `"area_count_top3":{"terms":{"field":"area","exclude":["全国"],"order":[{"area_count":"desc"}],"size":3},"aggs":{"area_count":{"filter":{"match_all":{}}},"winner_top":{"terms":{"field":"entidlist","exclude": ["-"],"order":[{"area_winner_count":"desc"}],"size":3},"aggs":{"area_winner_count":{"filter":{"match_all":{}}}}}}}`
|
|
|
- aggs_buyerclass = `"buyerclass_scale":{"terms":{"field":"buyerclass","exclude":["其它",""]},"aggs":{"buyerclass_amount":{"sum":{"field":"sortprice"}},"buyerclass_total":{"filter":{"match_all":{}}}}}`
|
|
|
+ aggs_buyerclass = `"buyerclass_scale":{"terms":{"field":"buyerclass","size":2000,"exclude":["其它",""]},"aggs":{"buyerclass_amount":{"sum":{"field":"sortprice"}},"buyerclass_total":{"filter":{"match_all":{}}}}}`
|
|
|
aggs_buyerclass_other = `"buyerclass_scale_other":{"terms":{"field":"buyerclass","include":["其它",""]},"aggs":{"buyerclass_amount":{"sum":{"field":"sortprice"}},"buyerclass_total":{"filter":{"match_all":{}}}}}`
|
|
|
aggs_buyerclass_counttop3 = `"buyerclass_count_top3":{"terms":{"field":"buyerclass","exclude":["其它",""],"order":[{"buyerclass_count":"desc"}],"size":3},"aggs":{"buyerclass_count":{"filter":{"match_all":{}}},"bidcount_top":{"terms":{"field":"entidlist","exclude": ["-"],"order":[{"buyer_winner_count":"desc"}],"size":3},"aggs":{"buyer_winner_count":{"filter":{"match_all":{}}}}}}}`
|
|
|
aggs_buyerclass_amounttop3 = `"buyerclass_amount_top3":{"terms":{"field":"buyerclass","exclude":["其它",""],"order":[{"buyerclass_amount":"desc"}],"size":3},"aggs":{"buyerclass_amount":{"sum":{"field":"sortprice"}},"winner_top":{"terms":{"field":"entidlist","exclude": ["-"],"order":[{"buyer_winner_amount":"desc"}],"size":3},"aggs":{"buyer_winner_amount":{"sum":{"field":"sortprice"}}}}}}`
|
|
|
sortprice_str = `{"key":"<10万","from":0.0000000000001,"to":100000},{"key":"10万-50万","from":100000,"to":500000},{"key":"50万-100万","from":500000,"to":1000000},{"key":"100万-500万","from":1000000,"to":5000000},{"key":"500万-1000万","from":5000000,"to":10000000},{"key":"1000万-1亿","from":10000000,"to":100000000},{"key":"≥1亿","from":100000000}`
|
|
|
aggs_all_c_m = `"project_count": {"filter": {"match_all":{}}},"project_count_not0": {"filter": {"range": {"sortprice": {"gt": 0}}}},"project_amount": {"sum": {"field": "sortprice"}}`
|
|
|
query_id = `{"query": {"bool": {"must": [{"term": {"entidlist": "%s"}}]}},"size": 1}`
|
|
|
- query_idto = `{"query": {"bool": {"must": [{"terms": {"qyxy.id": ["%s"]}}]}},"_source":["_id","company_name"],"size": %d}`
|
|
|
+ query_idto = `{"query": {"bool": {"must": [{"terms": {"id": ["%s"]}}]}},"_source":["_id","company_name"],"size": %d}`
|
|
|
)
|
|
|
|
|
|
type AreaCTop struct {
|
|
@@ -185,6 +186,7 @@ func IDToName(ids []string) (iMap map[string]string) {
|
|
|
iMap = map[string]string{}
|
|
|
d := strings.Join(ids, `","`)
|
|
|
finalSql := fmt.Sprintf(query_idto, d, len(ids))
|
|
|
+ log.Println("IDToName sql:", finalSql)
|
|
|
hits := elastic.Get("qyxy", "qyxy", finalSql)
|
|
|
if hits == nil || len(*hits) == 0 {
|
|
|
return
|
|
@@ -213,6 +215,7 @@ func (mae *MarketAnalysisEntity) AllData() (rMap map[string]interface{}, err err
|
|
|
aggs = append(aggs, aggs_buyerclass, aggs_buyerclass_other, aggs_buyerclass_amounttop3, aggs_buyerclass_counttop3)
|
|
|
}
|
|
|
finalSql := fmt.Sprintf(mae.GetCommonQuerySqlWithAggs(), strings.Join(aggs, ","))
|
|
|
+ log.Println("allData sql:", finalSql)
|
|
|
res, _ := util2.GetAggs("projectset", "projectset", finalSql)
|
|
|
if res == nil || len(res) == 0 {
|
|
|
return
|