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