liuxiaolong
2019-08-01 abc05dcd6f9ab2ec826c1109afc135e4722d5c28
controllers/taglist.go
@@ -1,6 +1,8 @@
package controllers
import (
   "basic.com/dbapi.git"
   "encoding/json"
   "fmt"
   "github.com/gin-gonic/gin"
@@ -24,19 +26,57 @@
   url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
      "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/_search"
   prama := "{\"query\":{\"bool\":{\"filter\":[]}},\"_source\":[\"tableName\",\"id\",\"isDelete\"]}"
   var setApi dbapi.SysSetApi
   _, sysconf := setApi.GetServerInfo()
   prama := "{\"query\":{\"bool\":{\"filter\":[{\"terms\":{\"analyServerId\":[\"\",\"" + sysconf.ServerId + "\"]}}]}},\"size\":1000}"
   tokenRes := esutil.GetEsDataReq(url, prama, true)
   sources := make([]map[string]interface{}, 0)
   fmt.Println(tokenRes["datalist"].([]interface{}))
   for _, value := range tokenRes["datalist"].([]interface{}) {
      tokenRes := make(map[string]interface{})
      tokenRes["key"] = value.(map[string]interface{})["id"].(string)
      tokenRes["title"] = value.(map[string]interface{})["tableName"].(string)
      tokenRes["value"] = value.(map[string]interface{})["id"].(string)
      tokenRes["status"] = value.(map[string]interface{})["isDelete"]
      tr := value.(map[string]interface{})
      key := tr["id"].(string)
      tokenRes["key"] = key
      tokenRes["title"] = tr["tableName"].(string)
      tokenRes["value"] = tr["id"].(string)
      status := int(tr["isDelete"].(float64))
      tokenRes["status"] = status
      if status == 1 {
         if GetTotalFromDb(key) == false {
            continue
         }
      }
      sources = append(sources, tokenRes)
   }
   util.ResponseFormat(c, code.Success, sources)
}
}
//判断底库是否有数据
func GetTotalFromDb(id string) (flag bool) {
   flag = false
   url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
      "/" + config.EsInfo.EsIndex.VideoPersons.IndexName + "/_search"
   prama := "{\"query\":{\"bool\":{\"filter\":[{\"term\":{\"baseInfo.tableId\":\"" + id + "\"}}]}},\"size\":0}"
   buf, err := esutil.EsReq("POST", url, []byte(prama))
   if err != nil {
      fmt.Println("http request info is err!")
      return
   }
   var info interface{}
   json.Unmarshal(buf, &info)
   out, ok := info.(map[string]interface{})
   if !ok {
      fmt.Println("http response interface can not change map[string]interface{}")
      return
   }
   middle, ok := out["hits"].(map[string]interface{})
   if !ok {
      fmt.Println("first hits change error!")
      return
   }
   total := int(middle["total"].(float64))
   if total > 0 {
      flag = true
   }
   return flag
}