|
@@ -20,8 +20,8 @@ const (
|
|
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"}}}}}}`
|
|
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}`
|
|
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": {}},"project_count_not0": {"filter": {"range": {"sortprice": {"gt": 0}}}},"project_amount": {"sum": {"field": "sortprice"}}`
|
|
aggs_all_c_m = `"project_count": {"filter": {}},"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]}}],"should": []}},"from": 0,"size": 36}`
|
|
|
|
|
|
+ query_id = `{"query": {"bool": {"must": [{"term": {"entidlist": "%s"}}]}},"_source":["_id","company_name"],"size": 1}`
|
|
|
|
+ query_idto = `{"query": {"bool": {"must": [{"terms": {"qyxy.id": ["%s"]}}]}},"size": %d}`
|
|
)
|
|
)
|
|
|
|
|
|
type AreaCTop struct {
|
|
type AreaCTop struct {
|
|
@@ -191,23 +191,19 @@ func IdToWinner(id string) (entname string) {
|
|
}
|
|
}
|
|
|
|
|
|
//企业id查企业名 传入数组
|
|
//企业id查企业名 传入数组
|
|
-func IDToName(ids []string) (iMap map[string]interface{}) {
|
|
|
|
- var idss []string
|
|
|
|
- iMap = map[string]interface{}{}
|
|
|
|
- for _, v := range ids {
|
|
|
|
- vs := `"` + v + `"`
|
|
|
|
- idss = append(idss, vs)
|
|
|
|
- }
|
|
|
|
- d := strings.Join(idss, ",")
|
|
|
|
- finalSql := fmt.Sprintf(query_idto, d)
|
|
|
|
|
|
+func IDToName(ids []string) (iMap map[string]string) {
|
|
|
|
+ iMap = map[string]string{}
|
|
|
|
+ d := strings.Join(ids, `","`)
|
|
|
|
+ finalSql := fmt.Sprintf(query_idto, d, len(ids))
|
|
hits := elastic.Get("qyxy", "qyxy", finalSql)
|
|
hits := elastic.Get("qyxy", "qyxy", finalSql)
|
|
- source := *hits
|
|
|
|
- for _, vv := range source {
|
|
|
|
- for _, vi := range ids {
|
|
|
|
- if vv["_id"] != nil && vi == vv["_id"] {
|
|
|
|
- iMap[util.ObjToString(vv["_id"])] = vv["company_name"]
|
|
|
|
- break
|
|
|
|
- }
|
|
|
|
|
|
+ if hits == nil || len(*hits) == 0 {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ for _, item := range *hits {
|
|
|
|
+ id, _ := item["_id"].(string)
|
|
|
|
+ name, _ := item["company_name"].(string)
|
|
|
|
+ if id != "" && name != "" {
|
|
|
|
+ iMap[id] = name
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return
|
|
return
|
|
@@ -421,6 +417,11 @@ func AmountCompute(thisRow AreaCTop, types string) (rData []map[string]interface
|
|
rWinner := []map[string]interface{}{}
|
|
rWinner := []map[string]interface{}{}
|
|
rM["name"] = v.Key
|
|
rM["name"] = v.Key
|
|
rM["area_amount"] = v.AreaAmount.Amount
|
|
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 {
|
|
for _, va := range v.WinnerTop.Buckets {
|
|
if va.WinnerAmount.Amount == 0 {
|
|
if va.WinnerAmount.Amount == 0 {
|
|
break
|
|
break
|
|
@@ -428,7 +429,7 @@ func AmountCompute(thisRow AreaCTop, types string) (rData []map[string]interface
|
|
rW := map[string]interface{}{}
|
|
rW := map[string]interface{}{}
|
|
id := util2.EncodeId(va.Winner)
|
|
id := util2.EncodeId(va.Winner)
|
|
rW["id"] = id
|
|
rW["id"] = id
|
|
- rW["winner"] = IdToWinner(va.Winner)
|
|
|
|
|
|
+ rW["winner"] = eid[va.Winner]
|
|
rW["winner_amount"] = va.WinnerAmount.Amount
|
|
rW["winner_amount"] = va.WinnerAmount.Amount
|
|
//rW["amount_scale"] = va.WinnerAmount.Amount / v.AreaAmount.Amount
|
|
//rW["amount_scale"] = va.WinnerAmount.Amount / v.AreaAmount.Amount
|
|
rWinner = append(rWinner, rW)
|
|
rWinner = append(rWinner, rW)
|
|
@@ -449,6 +450,11 @@ func AmountCompute(thisRow AreaCTop, types string) (rData []map[string]interface
|
|
rWinner := []map[string]interface{}{}
|
|
rWinner := []map[string]interface{}{}
|
|
rM["name"] = v.Key
|
|
rM["name"] = v.Key
|
|
rM["buyclass_amount"] = v.AreaAmount.Amount
|
|
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 {
|
|
for _, va := range v.WinnerTop.Buckets {
|
|
if va.WinnerAmount.Amount == 0 {
|
|
if va.WinnerAmount.Amount == 0 {
|
|
break
|
|
break
|
|
@@ -456,7 +462,7 @@ func AmountCompute(thisRow AreaCTop, types string) (rData []map[string]interface
|
|
rW := map[string]interface{}{}
|
|
rW := map[string]interface{}{}
|
|
id := util2.EncodeId(va.Winner)
|
|
id := util2.EncodeId(va.Winner)
|
|
rW["id"] = id
|
|
rW["id"] = id
|
|
- rW["winner"] = IdToWinner(va.Winner)
|
|
|
|
|
|
+ rW["winner"] = eid[va.Winner]
|
|
rW["winner_amount"] = va.WinnerAmount.Amount
|
|
rW["winner_amount"] = va.WinnerAmount.Amount
|
|
//rW["amount_scale"] = va.WinnerAmount.Amount / v.AreaAmount.Amount
|
|
//rW["amount_scale"] = va.WinnerAmount.Amount / v.AreaAmount.Amount
|
|
rWinner = append(rWinner, rW)
|
|
rWinner = append(rWinner, rW)
|
|
@@ -483,6 +489,11 @@ func CountCompute(thisRow AreaCTop, types string) (rData []map[string]interface{
|
|
rWinner := []map[string]interface{}{}
|
|
rWinner := []map[string]interface{}{}
|
|
rM["name"] = v.Area
|
|
rM["name"] = v.Area
|
|
rM["area_count"] = v.Total
|
|
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 {
|
|
for _, va := range v.WinnerTop.Buckets {
|
|
if va.WinnerTotal == 0 {
|
|
if va.WinnerTotal == 0 {
|
|
break
|
|
break
|
|
@@ -490,7 +501,7 @@ func CountCompute(thisRow AreaCTop, types string) (rData []map[string]interface{
|
|
rW := map[string]interface{}{}
|
|
rW := map[string]interface{}{}
|
|
id := util2.EncodeId(va.Winner)
|
|
id := util2.EncodeId(va.Winner)
|
|
rW["id"] = id
|
|
rW["id"] = id
|
|
- rW["winner"] = IdToWinner(va.Winner)
|
|
|
|
|
|
+ rW["winner"] = eid[va.Winner]
|
|
rW["winner_total"] = va.WinnerTotal
|
|
rW["winner_total"] = va.WinnerTotal
|
|
rWinner = append(rWinner, rW)
|
|
rWinner = append(rWinner, rW)
|
|
}
|
|
}
|
|
@@ -513,6 +524,11 @@ func CountCompute(thisRow AreaCTop, types string) (rData []map[string]interface{
|
|
rWinner := []map[string]interface{}{}
|
|
rWinner := []map[string]interface{}{}
|
|
rM["name"] = v.Buyclass
|
|
rM["name"] = v.Buyclass
|
|
rM["buyclass_count"] = v.Total
|
|
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 {
|
|
for _, va := range v.BidcountTop.Buckets {
|
|
if va.WinnerTotal == 0 {
|
|
if va.WinnerTotal == 0 {
|
|
break
|
|
break
|
|
@@ -520,7 +536,7 @@ func CountCompute(thisRow AreaCTop, types string) (rData []map[string]interface{
|
|
rW := map[string]interface{}{}
|
|
rW := map[string]interface{}{}
|
|
id := util2.EncodeId(va.Winner)
|
|
id := util2.EncodeId(va.Winner)
|
|
rW["id"] = id
|
|
rW["id"] = id
|
|
- rW["winner"] = IdToWinner(va.Winner)
|
|
|
|
|
|
+ rW["winner"] = eid[va.Winner]
|
|
rW["winner_total"] = va.WinnerTotal
|
|
rW["winner_total"] = va.WinnerTotal
|
|
rWinner = append(rWinner, rW)
|
|
rWinner = append(rWinner, rW)
|
|
}
|
|
}
|