From 78265dd08a17210ac67c1f82e2514b572c4734c8 Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期五, 12 七月 2019 15:42:01 +0800
Subject: [PATCH] fix query by id Multiple Id ([]id)

---
 esutil/EsApi.go |  145 ++++++++++++++++++++++++-----------------------
 1 files changed, 74 insertions(+), 71 deletions(-)

diff --git a/esutil/EsApi.go b/esutil/EsApi.go
index 4de958e..7e7cbf1 100644
--- a/esutil/EsApi.go
+++ b/esutil/EsApi.go
@@ -1,24 +1,26 @@
 package esutil
 
 import (
-	"errors"
-	"strconv"
+        "errors"
+    "fmt"
+    "strconv"
+    "strings"
 
-	"basic.com/pubsub/protomsg.git"
-)
+    "basic.com/pubsub/protomsg.git"
+        )
 
 // 鏌ヨ搴曞簱浜哄憳淇℃伅
-func DbPersoninfos(queryindex int, querynums int) ([]*protomsg.Esinfo, error) {
-	var dbinfos []*protomsg.Esinfo
-	point := strconv.Itoa(queryindex)
-	number := strconv.Itoa(querynums)
+func DbPersoninfos( queryindex int, querynums int ) ([]*protomsg.Esinfo, error){
+            var dbinfos []*protomsg.Esinfo
+            point   := strconv.Itoa(queryindex)
+            number   := strconv.Itoa(querynums)
 
-	var dbinfoRequest = `  {
-                    "from": ` + point + `,        
+            var dbinfoRequest =  `  {
+                    "from": ` + point +  `,        
                     "query": {
                         "match_all": {}
                     },
-                     "size":` + number + `,
+                     "size":`+ number +`,
                      "_source": [
                        "id",
                        "tableId",
@@ -26,34 +28,34 @@
                        ]
                     }`
 
-	buf, err := EsReq("POST", "http://192.168.1.182:9200/dbtablepersons/dbpersons/_search", []byte(dbinfoRequest))
-	if err != nil {
-		return dbinfos, errors.New("http request dbtablename info is err!")
-	}
+    buf, err := EsReq("POST", "http://192.168.1.182:9200/dbtablepersons/dbpersons/_search",[]byte(dbinfoRequest))
+    if err != nil {
+        return dbinfos ,errors.New("http request dbtablename info is err!")
+    }
 
-	// 杩斿洖 _source 鏁扮粍
-	sources, err := Sourcelist(buf)
-	if err != nil {
-		return dbinfos, err
-	}
+      // 杩斿洖 _source 鏁扮粍
+      sources, err := Sourcelist(buf)
+      if err != nil {
+            return dbinfos,err 
+      }
 
-	// 杩斿洖鎵�鏈夋煡璇㈢殑鏁版嵁
-	dbpersoninfos := Parsesources(sources)
-	return dbpersoninfos, nil
+      // 杩斿洖鎵�鏈夋煡璇㈢殑鏁版嵁
+     dbpersoninfos :=  Parsesources(sources)
+      return dbpersoninfos, nil
 }
 
 // 鏍规嵁搴曞簱id鏌ヨ搴曞簱淇℃伅
-func Dbtablefosbyid(id string) (protomsg.Dbtable, error) {
-	var dbinfo protomsg.Dbtable
-
-	var dbinfoRequest = `
+func Dbtablefosbyid (id []string) ([]protomsg.Dbtable, error) {
+    var dbinfo []protomsg.Dbtable
+    dbtableId := strings.Replace(strings.Trim(fmt.Sprint(id), "[]"), " ", "\",\"", -1)
+        var dbinfoRequest = `
             {
             	"query": {
             		"bool": {
             			"filter": [{
             				"terms": {
             					"_id": [
-            						"` + id + `"
+            						"`+ dbtableId +`"
             					]
             				}
             			}]
@@ -61,32 +63,32 @@
             	}
             }
         `
-	buf, err := EsReq("POST", "http://192.168.1.182:9200/dbtables/_search", []byte(dbinfoRequest))
-	if err != nil {
-		return dbinfo, err
-	}
+    buf, err := EsReq("POST", "http://192.168.1.182:9200/dbtables/_search",[]byte(dbinfoRequest))
+    if err != nil {
+        return dbinfo,  err
+    }
 
-	sources, err := Sourcelist(buf)
-	if err != nil {
-		return dbinfo, err
-	}
+    sources, err := Sourcelist(buf)
+    if err != nil {
+        return dbinfo , err
+    }
 
-	dbtable := Dbtablebyid(sources)
-	return dbtable, nil
+    dbtable := Dbtablebyid(sources)
+    return dbtable, nil
 }
 
 // 鏍规嵁搴曞簱浜哄憳id鏌ヨ搴曞簱浜哄憳淇℃伅
-func Dbpersoninfosbyid(id string) (protomsg.Dbperson, error) {
-	var dbinfo protomsg.Dbperson
-
-	var dbinfoRequest = `
+func Dbpersoninfosbyid (id []string) ([]protomsg.Dbperson, error) {
+    var dbinfo []protomsg.Dbperson
+    dbtablePersonId := strings.Replace(strings.Trim(fmt.Sprint(id), "[]"), " ", "\",\"", -1)
+    var dbinfoRequest = `
             {
             	"query": {
             		"bool": {
             			"filter": [{
             				"terms": {
             					"_id": [
-            						"` + id + `"
+            						"`+ dbtablePersonId +`"
             					]
             				}
             			}]
@@ -94,29 +96,30 @@
             	}
             }
         `
-	buf, err := EsReq("POST", "http://192.168.1.182:9200/dbtablepersons/_search", []byte(dbinfoRequest))
-	if err != nil {
-		return dbinfo, err
-	}
+    buf, err := EsReq("POST", "http://192.168.1.182:9200/dbtablepersons/_search",[]byte(dbinfoRequest))
+    if err != nil {
+        return dbinfo,  err
+    }
 
-	sources, err := Sourcelist(buf)
-	if err != nil {
-		return dbinfo, err
-	}
+    sources, err := Sourcelist(buf)
+    if err != nil {
+        return dbinfo , err
+    }
 
-	dbperson := Dbpersonbyid(sources)
-	return dbperson, nil
+    dbperson := Dbpersonbyid(sources)
+    println(dbperson)
+    return dbperson,nil
 }
 
 // 鏍规嵁tableid 鏌ヨtablename
-func Dbtablename(tableid string) (tablename string, err error) {
-	var dbinfotable = ` {
+func Dbtablename(tableid string ) (tablename string, err error) {
+    var dbinfotable =` {
         "query": {
             "bool": {
                 "filter": [
                 {
                     "term": {
-                        "id":"` + tableid + `"
+                        "id":"`+tableid+`"
                     }
                 }
                 ]
@@ -127,20 +130,20 @@
         ]
     }
     `
-	buf, err := EsReq("POST", "http://192.168.1.182:9200/dbtables/_search", []byte(dbinfotable))
-	if err != nil {
-		return "", errors.New("http request dbtablename info is err!")
-	}
-	sources, err := Sourcelist(buf)
-	if err != nil {
-		return "", err
-	}
+    buf, err := EsReq("POST", "http://192.168.1.182:9200/dbtables/_search",[]byte(dbinfotable))
+    if err != nil {
+        return "" ,errors.New("http request dbtablename info is err!")
+    }
+    sources, err := Sourcelist(buf)
+    if err != nil {
+          return "",err 
+    }
 
-	for _, source := range sources {
-		if name, ok := source["tableName"].(string); ok {
-			tablename = name
-			break
-		}
-	}
-	return tablename, nil
+    for _, source := range sources {
+        if name, ok := source["tableName"].(string); ok {
+            tablename = name
+            break
+        }
+    }
+    return tablename, nil 
 }

--
Gitblit v1.8.0