liuxiaolong
2019-08-21 ea5df990ee13cf2ca03b0ee757f2f67c789cb93c
controllers/taglist.go
@@ -2,81 +2,45 @@
import (
   "basic.com/dbapi.git"
   "encoding/json"
   "fmt"
   "webserver/extend/code"
   "webserver/extend/util"
   "github.com/gin-gonic/gin"
   "webserver/extend/code"
   "webserver/extend/config"
   "webserver/extend/esutil"
   "webserver/extend/util"
)
//标签列表
//任务列表
// @Summary 标签列表
// @Description 返回底库标签
// @Accept  json
// @Produce json
// @Tags es
// @Success 200 {string} json "{"code":200, msg:"目录结构数据", success:true}"
// @Failure 500 {string} json "{"code":500,  msg:"返回错误信息", success:false}"
// @Success 200 {string} json "{"code":200, msg:"", success:true}"
// @Failure 500 {string} json "{"code":500, msg:"", success:false}"
// @Router /data/api-v/es/taskList [POST]
func (sc *EsSearchController) PostEsTagList(c *gin.Context) {
   url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
      "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/_search"
   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)
   for _, value := range tokenRes["datalist"].([]interface{}) {
      tokenRes := make(map[string]interface{})
      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
   var dtApi dbapi.DbTableApi
   var dbpApi dbapi.DbPersonApi
   dts, err := dtApi.FindAllDbTablesByCurServer()
   if err == nil {
      if dts !=nil {
         sources := make([]map[string]interface{}, 0)
         for _, dt := range dts {
            tokenRes := make(map[string]interface{})
            tokenRes["key"] = dt.Id
            tokenRes["title"] = dt.TableName
            tokenRes["value"] = dt.Id
            tokenRes["status"] = dt.IsDelete
            if dt.IsDelete == 1 {
               personTotal,_ := dbpApi.GetPersonTotal(dt.Id)
               if personTotal == 0 {
                  continue
               }
            }
            sources = append(sources, tokenRes)
         }
         util.ResponseFormat(c, code.Success, sources)
         return
      }
      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
   util.ResponseFormat(c,code.ComError,"查询底库标签失败")
}