From 2fb553ab4774ad2605f18dacb5bacb481bfe2f8c Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期五, 12 七月 2019 11:23:07 +0800
Subject: [PATCH] add querybyId controllers

---
 esutil/EsApi.go    |  160 ++++++++++------
 esutil/EsClient.go |  321 ++++++++++++++++++++++-------------
 2 files changed, 298 insertions(+), 183 deletions(-)

diff --git a/esutil/EsApi.go b/esutil/EsApi.go
index 8be8c68..4de958e 100644
--- a/esutil/EsApi.go
+++ b/esutil/EsApi.go
@@ -1,24 +1,24 @@
 package esutil
 
 import (
-        "errors"
-        "strconv"
+	"errors"
+	"strconv"
 
-        "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,61 +26,97 @@
                        ]
                     }`
 
-    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 Dbpersoninfosbyid (id string) (protomsg.Baseinfo, error) {
-    var dbinfo protomsg.Baseinfo
-    
-        var dbinfoRequest = `
+func Dbtablefosbyid(id string) (protomsg.Dbtable, error) {
+	var dbinfo protomsg.Dbtable
+
+	var dbinfoRequest = `
             {
-                "query":{
-                    "terms":{
-                        "_id":[
-                            "`+ id +`"
-                        ]
-                    }
-                }
+            	"query": {
+            		"bool": {
+            			"filter": [{
+            				"terms": {
+            					"_id": [
+            						"` + id + `"
+            					]
+            				}
+            			}]
+            		}
+            	}
             }
         `
-    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/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
+	}
 
-    baseinfo := Dbpersonbyid(sources) 
-    return baseinfo, nil
+	dbtable := Dbtablebyid(sources)
+	return dbtable, nil
 }
 
+// 鏍规嵁搴曞簱浜哄憳id鏌ヨ搴曞簱浜哄憳淇℃伅
+func Dbpersoninfosbyid(id string) (protomsg.Dbperson, error) {
+	var dbinfo protomsg.Dbperson
+
+	var dbinfoRequest = `
+            {
+            	"query": {
+            		"bool": {
+            			"filter": [{
+            				"terms": {
+            					"_id": [
+            						"` + id + `"
+            					]
+            				}
+            			}]
+            		}
+            	}
+            }
+        `
+	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
+	}
+
+	dbperson := Dbpersonbyid(sources)
+	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 + `"
                     }
                 }
                 ]
@@ -91,20 +127,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
 }
diff --git a/esutil/EsClient.go b/esutil/EsClient.go
index 8761092..636e7ca 100644
--- a/esutil/EsClient.go
+++ b/esutil/EsClient.go
@@ -1,154 +1,233 @@
 package esutil
 
 import (
+	"bytes"
 	"encoding/json"
 	"errors"
 	"fmt"
 	"io/ioutil"
 	"net/http"
 	"time"
-    "bytes"
 
-    "basic.com/pubsub/protomsg.git"
+	"basic.com/pubsub/protomsg.git"
 )
 
-
 func Parsesources(sources []map[string]interface{}) (esinfos []*protomsg.Esinfo) {
-    var ok bool
-    for _, source := range sources {
-       var tmpinfo protomsg.Esinfo
-        tmpinfo.FaceFeature, ok =   source["faceFeature"].(string)
-        if !ok {
-            continue
-        }
+	var ok bool
+	for _, source := range sources {
+		var tmpinfo protomsg.Esinfo
+		tmpinfo.FaceFeature, ok = source["faceFeature"].(string)
+		if !ok {
+			continue
+		}
 
-        tmpinfo.Id, ok    =   source["id"].(string)  
-        if !ok {
-            continue 
-        }
-        tmpinfo.Tableid, ok     =   source["tableId"].(string)
-        if !ok {
-            continue
-        }
+		tmpinfo.Id, ok = source["id"].(string)
+		if !ok {
+			continue
+		}
+		tmpinfo.Tableid, ok = source["tableId"].(string)
+		if !ok {
+			continue
+		}
 
-        esinfos = append(esinfos, &tmpinfo)
+		esinfos = append(esinfos, &tmpinfo)
 
-//        tmpinfo.PersonName,ok  =   source["personName"].(string)
-//            Isnil("personName", ok)
-//        tmpinfo.PersonPicUrl,ok =  source["personPicUrl"].(string)
-//            Isnil("personPicUrl", ok)
-//        tmpinfo.PhoneNum,ok     =  source["phoneNum"].(string)
-//            Isnil("phoneNum", ok)
-//        tmpinfo.Sex,ok          =  source["sex"].(string)
-//            Isnil("sex", ok)
-//        tmpinfo.Idcard,ok       =  source["idCard"].(string)
-//            Isnil("idCard", ok)
-//        tmpinfo.MonitorLevel,ok =  source["monitorLevel"].(string)
+		//        tmpinfo.PersonName,ok  =   source["personName"].(string)
+		//            Isnil("personName", ok)
+		//        tmpinfo.PersonPicUrl,ok =  source["personPicUrl"].(string)
+		//            Isnil("personPicUrl", ok)
+		//        tmpinfo.PhoneNum,ok     =  source["phoneNum"].(string)
+		//            Isnil("phoneNum", ok)
+		//        tmpinfo.Sex,ok          =  source["sex"].(string)
+		//            Isnil("sex", ok)
+		//        tmpinfo.Idcard,ok       =  source["idCard"].(string)
+		//            Isnil("idCard", ok)
+		//        tmpinfo.MonitorLevel,ok =  source["monitorLevel"].(string)
 
-        // 鏍规嵁 tableid 鑾峰彇 tablename
-//        name, _:= Dbtablename(tmpinfo.TableId) 
-//        tmpinfo.TableName= name 
-//        binfos.Infos = append(binfos.Infos, &tmpinfo)
+		// 鏍规嵁 tableid 鑾峰彇 tablename
+		//        name, _:= Dbtablename(tmpinfo.TableId)
+		//        tmpinfo.TableName= name
+		//        binfos.Infos = append(binfos.Infos, &tmpinfo)
 
-    }
-    return 
+	}
+	return
 }
 
-func Dbpersonbyid(sources []map[string]interface{}) (protomsg.Baseinfo) {
-        var ok bool
-        
-        var tmpinfo protomsg.Baseinfo
-        for _, source := range  sources{
-            tmpinfo.FaceFeature, ok =   source["faceFeature"].(string)
-            if !ok {
-                continue
-            }
+//瑙f瀽搴曞簱浜哄憳缁撴瀯
+func Dbpersonbyid(sources []map[string]interface{}) protomsg.Dbperson {
+	var ok bool
 
-            tmpinfo.PersonId, ok    =   source["id"].(string)  
-            if !ok {
-                continue
-            }
+	var tmpinfo protomsg.Dbperson
+	for _, source := range sources {
+		tmpinfo.FaceFeature, ok = source["faceFeature"].(string)
+		if !ok {
+			continue
+		}
 
-            tmpinfo.TableId, ok     =   source["tableId"].(string)
-            if !ok {
-                continue
-            }
+		tmpinfo.Id, ok = source["id"].(string)
+		if !ok {
+			continue
+		}
 
-            tmpinfo.PersonName,ok  =   source["personName"].(string)
-                Isnil("personName", ok)
-            tmpinfo.PersonPicUrl,ok =  source["personPicUrl"].(string)
-                Isnil("personPicUrl", ok)
-            tmpinfo.PhoneNum,ok     =  source["phoneNum"].(string)
-                Isnil("phoneNum", ok)
-            tmpinfo.Sex,ok          =  source["sex"].(string)
-                Isnil("sex", ok)
-            tmpinfo.Idcard,ok       =  source["idCard"].(string)
-                Isnil("idCard", ok)
-            tmpinfo.MonitorLevel,ok =  source["monitorLevel"].(string)
+		tmpinfo.TableId, ok = source["tableId"].(string)
+		if !ok {
+			continue
+		}
 
-            //鏍规嵁 tableid 鑾峰彇 tablename
-            name, _:= Dbtablename(tmpinfo.TableId) 
-            tmpinfo.TableName= name 
-        }
+		tmpinfo.PersonName, ok = source["personName"].(string)
+		Isnil("personName", ok)
+		tmpinfo.PersonPicUrl, ok = source["personPicUrl"].(string)
+		Isnil("personPicUrl", ok)
+		tmpinfo.PhoneNum, ok = source["phoneNum"].(string)
+		Isnil("phoneNum", ok)
+		tmpinfo.Sex, ok = source["sex"].(string)
+		Isnil("sex", ok)
+		tmpinfo.IdCard, ok = source["idCard"].(string)
+		Isnil("idCard", ok)
+		tmpinfo.MonitorLevel, ok = source["monitorLevel"].(string)
+		Isnil("monitorLevel", ok)
+		tmpinfo.UpdateTime, ok = source["updateTime"].(string)
+		Isnil("updateTime", ok)
+		tmpinfo.Age, ok = source["age"].(string)
+		Isnil("age", ok)
 
-        return tmpinfo 
+		isDelete, ok := source["isDelete"].(float64)
+		if ok {
+			tmpinfo.IsDelete = int32(isDelete)
+		}
+		Isnil("isDelete", ok)
+
+		enable, ok := source["enable"].(float64)
+		if ok {
+			tmpinfo.Enable = int32(enable)
+		}
+		Isnil("endTime", ok)
+
+		tmpinfo.Reserved, ok = source["reserved"].(string)
+		Isnil("reserved", ok)
+		tmpinfo.PicDesc, ok = source["picDesc"].(string)
+		Isnil("picDesc", ok)
+		tmpinfo.CreateTime, ok = source["createTime"].(string)
+		Isnil("createTime", ok)
+		tmpinfo.CreateBy, ok = source["createBy"].(string)
+		Isnil("createBy", ok)
+
+		//鏍规嵁 tableid 鑾峰彇 tablename
+		//name, _:= Dbtablename(tmpinfo.TableId)
+		//tmpinfo.TableName= name
+	}
+
+	return tmpinfo
 }
 
-func Sourcelist(buf []byte)(sources []map[string]interface{}, err error){
-    var info interface{}
-    json.Unmarshal(buf, &info)
-    out, ok := info.(map[string]interface{})
-    if !ok {
-        return nil, errors.New("http response interface can not change map[string]interface{}")
-    }
+//瑙f瀽搴曞簱缁撴瀯
+func Dbtablebyid(sources []map[string]interface{}) protomsg.Dbtable {
+	var ok bool
 
-    middle, ok := out["hits"].(map[string]interface{})
-    if !ok {
-        return nil, errors.New("first hits change error!")
-    }
-    for _, in := range middle["hits"].([]interface{}){
-        tmpbuf, ok := in.(map[string]interface{})
-        if !ok {
-                fmt.Println("change to source error!") 
-                continue
-        }
-        source, ok := tmpbuf["_source"].(map[string]interface{})
-        if !ok {
-            fmt.Println("change _source error!") 
-            continue
-        }
-        sources  = append(sources, source )
-    }
-    return sources,nil
+	var tmpinfo protomsg.Dbtable
+	for _, source := range sources {
+
+		tmpinfo.Id, ok = source["id"].(string)
+		if !ok {
+			continue
+		}
+		tmpinfo.TableName, ok = source["tableName"].(string)
+		Isnil("tableName", ok)
+		tmpinfo.TableType, ok = source["tableType"].(string)
+		Isnil("tableType", ok)
+		tmpinfo.CreateBy, ok = source["createBy"].(string)
+		Isnil("createBy", ok)
+		tmpinfo.TableDesc, ok = source["tableDesc"].(string)
+		Isnil("tableDesc", ok)
+		tmpinfo.BwType, ok = source["bwType"].(string)
+		Isnil("bwType", ok)
+		tmpinfo.StartTime, ok = source["startTime"].(string)
+		Isnil("startTime", ok)
+		tmpinfo.EndTime, ok = source["endTime"].(string)
+		Isnil("endTime", ok)
+
+		isDelete, ok := source["isDelete"].(float64)
+		if ok {
+			tmpinfo.IsDelete = int32(isDelete)
+		}
+		Isnil("isDelete", ok)
+
+		enable, ok := source["enable"].(float64)
+		if ok {
+			tmpinfo.Enable = int32(enable)
+		}
+		Isnil("endTime", ok)
+
+		tmpinfo.CreateTime, ok = source["createTime"].(string)
+		Isnil("createTime", ok)
+		tmpinfo.UpdateTime, ok = source["updateTime"].(string)
+		Isnil("updateTime", ok)
+		tmpinfo.IsForever, ok = source["isForever"].(string)
+		Isnil("isForever", ok)
+		tmpinfo.IsSync, ok = source["isSync"].(string)
+		Isnil("isSync", ok)
+		tmpinfo.AnalyServerId, ok = source["analyServerId"].(string)
+		Isnil("analyServerId", ok)
+	}
+
+	return tmpinfo
+}
+
+func Sourcelist(buf []byte) (sources []map[string]interface{}, err error) {
+	var info interface{}
+	json.Unmarshal(buf, &info)
+	out, ok := info.(map[string]interface{})
+	if !ok {
+		return nil, errors.New("http response interface can not change map[string]interface{}")
+	}
+
+	middle, ok := out["hits"].(map[string]interface{})
+	if !ok {
+		return nil, errors.New("first hits change error!")
+	}
+	for _, in := range middle["hits"].([]interface{}) {
+		tmpbuf, ok := in.(map[string]interface{})
+		if !ok {
+			fmt.Println("change to source error!")
+			continue
+		}
+		source, ok := tmpbuf["_source"].(map[string]interface{})
+		if !ok {
+			fmt.Println("change _source error!")
+			continue
+		}
+		sources = append(sources, source)
+	}
+	return sources, nil
 }
 
 func EsReq(method string, url string, parama []byte) (buf []byte, err error) {
-    defer elapsed("page")()
-    timeout := time.Duration(10 * time.Second) 
-    client := http.Client{
-        Timeout: timeout,
-    }
-    request, err := http.NewRequest(method, url, bytes.NewBuffer(parama)) 
-    request.Header.Set("Content-type", "application/json")
+	defer elapsed("page")()
+	timeout := time.Duration(10 * time.Second)
+	client := http.Client{
+		Timeout: timeout,
+	}
+	request, err := http.NewRequest(method, url, bytes.NewBuffer(parama))
+	request.Header.Set("Content-type", "application/json")
 
-    if err != nil {
-        fmt.Println("build request fail !")
-        return nil, err 
-    }
+	if err != nil {
+		fmt.Println("build request fail !")
+		return nil, err
+	}
 
-    resp, err := client.Do(request)
-    if err != nil{
-        fmt.Println("request error: ", err)
-        return nil, err 
-    }
+	resp, err := client.Do(request)
+	if err != nil {
+		fmt.Println("request error: ", err)
+		return nil, err
+	}
 
-    defer resp.Body.Close()
-    body, err := ioutil.ReadAll(resp.Body)
-    if err != nil {
-        fmt.Println(err) 
-        return nil , err
-    }
-    return body, nil
+	defer resp.Body.Close()
+	body, err := ioutil.ReadAll(resp.Body)
+	if err != nil {
+		fmt.Println(err)
+		return nil, err
+	}
+	return body, nil
 }
 
 // 璁$畻鏃堕棿
@@ -160,8 +239,8 @@
 }
 
 // 璧嬪�兼椂妫�娴嬫槸鍚﹁兘澶熻祴鍊�
-func Isnil(key string, ok bool){
-    if !ok {
-            fmt.Println(key, "is nil can not asign") 
-    }
+func Isnil(key string, ok bool) {
+	if !ok {
+		fmt.Println(key, "is nil can not asign")
+	}
 }

--
Gitblit v1.8.0