Browse Source

feat:采购单位数量计算

wangshan 2 years ago
parent
commit
6ffc9ff1de
1 changed files with 22 additions and 11 deletions
  1. 22 11
      jyBXBuyer/rpc/service/service.go

+ 22 - 11
jyBXBuyer/rpc/service/service.go

@@ -19,6 +19,7 @@ func GetRelatesInfo(in *bxbuyer.RelatesInformationReq) *bxbuyer.RelatesInformati
 		relatesInfo.ErrMsg = err.Error()
 		relatesInfo.ErrMsg = err.Error()
 		return relatesInfo
 		return relatesInfo
 	}
 	}
+	query := `{"query": {"bool": {"must": [{"exists": {"field": "name"}}%s%s}]}}%s%s}`
 	//获取随机数
 	//获取随机数
 	// 使用当前时间作为随机数生成器的种子
 	// 使用当前时间作为随机数生成器的种子
 	randGen := rand.New(rand.NewSource(time.Now().UnixNano()))
 	randGen := rand.New(rand.NewSource(time.Now().UnixNano()))
@@ -32,18 +33,28 @@ func GetRelatesInfo(in *bxbuyer.RelatesInformationReq) *bxbuyer.RelatesInformati
 	if in.City != "" {
 	if in.City != "" {
 		in.City = fmt.Sprintf(`,{"term": {"city": "%s"}}`, in.City)
 		in.City = fmt.Sprintf(`,{"term": {"city": "%s"}}`, in.City)
 	}
 	}
-	buyerQuery := fmt.Sprintf(`{"query": {"bool": {"must": [{"exists": {"field": "name"}}%s%s}]}},"from": %d,"size": %d}`, in.Area, in.City, start, in.BuyerCount)
-	log.Println("buyerQuery:", buyerQuery)
-	buyerList := elastic.Get("buyer", "buyer", buyerQuery)
-	if len(*buyerList) > 0 {
-		var buyers []*bxbuyer.InfoList
-		for _, b := range *buyerList {
-			buyers = append(buyers, &bxbuyer.InfoList{
-				Name: common.ObjToString(b["name"]),
-				Id:   encrypt.EncodeArticleId2ByCheck(common.ObjToString(b["_id"])),
-			})
+	countQuery := fmt.Sprintf(query, in.Area, in.City, "", "")
+	if c := elastic.Count("buyer", "buyer", countQuery); c > 0 {
+		//数据量不够30
+		if c-in.BuyerCount < int64(start) {
+			start = common.If(c-in.BuyerCount > 0, int(c-in.BuyerCount), 0).(int)
+		}
+		fromQuery := fmt.Sprintf(`,"from": %d`, start)
+		sizeQuery := fmt.Sprintf(`,"size": %d`, in.BuyerCount)
+		buyerQuery := fmt.Sprintf(query, in.Area, in.City, fromQuery, sizeQuery)
+		log.Println("buyerQuery:", buyerQuery)
+		buyerList := elastic.Get("buyer", "buyer", buyerQuery)
+		if len(*buyerList) > 0 {
+			log.Println("--------:", len(*buyerList))
+			var buyers []*bxbuyer.InfoList
+			for _, b := range *buyerList {
+				buyers = append(buyers, &bxbuyer.InfoList{
+					Name: common.ObjToString(b["name"]),
+					Id:   encrypt.EncodeArticleId2ByCheck(common.ObjToString(b["_id"])),
+				})
+			}
+			relatesInfo.Data.BuyerList = buyers
 		}
 		}
-		relatesInfo.Data.BuyerList = buyers
 	}
 	}
 	//关联动态:采购单位标讯动态
 	//关联动态:采购单位标讯动态
 	if in.Buyer != "" {
 	if in.Buyer != "" {