liuxiaolong
2019-11-13 f26a0cab5bca17b7eab57f6330e576271e17a17f
controllers/taglist.go
@@ -2,25 +2,32 @@
import (
   "basic.com/dbapi.git"
   "basic.com/valib/logger.git"
   "encoding/json"
   "fmt"
   "strconv"
   "webserver/cache"
   "webserver/extend/code"
   "webserver/extend/config"
   "webserver/extend/esutil"
   "webserver/extend/util"
   "github.com/gin-gonic/gin"
)
// @Summary 底库标签列表
// @Security ApiKeyAuth
// @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}"
// @Router /data/api-v/es/taskList [POST]
// @Router /data/api-v/es/tagList [POST]
func (sc *EsSearchController) PostEsTagList(c *gin.Context) {
   var dtApi dbapi.DbTableApi
   var dbpApi dbapi.DbPersonApi
   dts, err := dtApi.FindAllDbTablesByCurServer()
   dts, err := dtApi.FindAllDbTablesByCurServer("-1")
   if err == nil {
      if dts !=nil {
         sources := make([]map[string]interface{}, 0)
@@ -30,9 +37,10 @@
            tokenRes["title"] = dt.TableName
            tokenRes["value"] = dt.Id
            tokenRes["status"] = dt.IsDelete
            tokenRes["bwType"] = dt.BwType //0:白名单,1:黑名单
            tokenRes["analyServerId"] = dt.AnalyServerId //为空是同步库,不为空是本地库
            if dt.IsDelete == 1 {
               personTotal,_ := dbpApi.GetPersonTotal(dt.Id)
               if personTotal == 0 {
               if GetTotalFromDb(dt.Id) == false {
                  continue
               }
            }
@@ -44,3 +52,39 @@
   }
   util.ResponseFormat(c,code.ComError,"查询底库标签失败")
}
//判断底库是否有数据
func GetTotalFromDb(id string) (flag bool) {
   flag = false
   localConf, err2 := cache.GetServerInfo()
   if err2 !=nil || localConf.AlarmIp == "" || localConf.ServerId == "" {
      logger.Debug("localConfig is wrong!!!")
      return false
   }
   url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
      "/" + 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
}