liuxiaolong
2020-06-05 7c811247ecf143e08c576986a884bedadc57dd66
extend/esutil/EsClient.go
@@ -44,7 +44,7 @@
      sources := []interface{}{}
      for _, value := range dat["hits"].([]interface{}) {
         source := value.(map[string]interface{})["_source"].(map[string]interface{})
         source["id"] = value.(map[string]interface{})["_id"]
         //source["id"] = source["id"]
         /*sdkType := source["sdkType"]
         if sdkType != nil {
            sdk, _ := strconv.Atoi(sdkType.(string))
@@ -107,7 +107,7 @@
   }
   boundary := writer.Boundary()
   close_buf := bytes.NewBufferString(fmt.Sprintf("\r\n--%s--\r\n", boundary))
   fmt.Println("PostFormData.fileLen:",len(fileBytes))
   fmt.Println("PostFormData.fileLen:", len(fileBytes))
   file := bytes.NewBuffer(fileBytes)
   request_reader := io.MultiReader(body, file, close_buf)
@@ -245,3 +245,121 @@
      return dat
   }
}
//解析http
func EsReq(method string, url string, parama []byte) (buf []byte, err error) {
   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
   }
   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
}
//解析json
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 HttpGet(str string) []byte {
   resp, err := http.Get(str)
   if err != nil {
      // handle error
   }
   defer resp.Body.Close()
   body, err := ioutil.ReadAll(resp.Body)
   if err != nil {
      // handle error
   }
   return body
}
func ResponseData(tokenRes map[string]interface{}) map[string]interface{} {
   tmpAllDate := make(map[string]interface{})
   tmpDate := make(map[string][]interface{})
   tmpAllDate["total"] = tokenRes["total"]
   data := tokenRes["datalist"]
   for _, masterInfoValues := range data.([]interface{}) {
      masterInfo := masterInfoValues.(map[string]interface{})
      sources := make(map[string]interface{}, 0)
      activateInfo := make(map[string]interface{})
      if masterInfo["linkTagInfo"] != nil {
         linkTagInfo := masterInfo["linkTagInfo"].([]interface{})
         delete(masterInfo, "linkTagInfo")
         if len(linkTagInfo) > 0 {
            slaveList := make([]interface{}, 0)
            slaveList = append(slaveList, masterInfo)
            slaveList = append(slaveList, linkTagInfo...)
            for i, j := 0, len(slaveList)-1; i < j; i, j = i+1, j-1 {
               slaveList[i], slaveList[j] = slaveList[j], slaveList[i]
            }
            sources["list"] = slaveList
            activateInfo = slaveList[0].(map[string]interface{})
         } else {
            sources["list"] = []interface{}{
               masterInfo,
            }
            activateInfo = masterInfo
         }
      } else {
         if _, ok := masterInfo["linkTagInfo"]; ok {
            delete(masterInfo, "linkTagInfo")
         }
         sources["list"] = []interface{}{
            masterInfo,
         }
         activateInfo = masterInfo
      }
      sources["activeObject"] = activateInfo
      tmpDate["datalist"] = append(tmpDate["datalist"], sources)
   }
   tmpAllDate["datalist"] = tmpDate["datalist"]
   return tmpAllDate
}