sunty
2019-07-12 2fb553ab4774ad2605f18dacb5bacb481bfe2f8c
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
            }
//解析底库人员结构
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{}")
    }
//解析底库结构
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")
   }
}