liuxiaolong
2019-10-11 b0500fee9c01e17c81b9293b244c8ed88dc9ca29
controllers/es.go
@@ -1,12 +1,13 @@
package controllers
import (
   "basic.com/dbapi.git"
   "basic.com/valib/logger.git"
   "fmt"
   "github.com/gin-gonic/gin"
   "math/rand"
   "strconv"
   "strings"
   "webserver/cache"
   "webserver/extend/code"
   "webserver/extend/config"
   "webserver/extend/esutil"
@@ -33,40 +34,28 @@
      util.ResponseFormat(c, code.RequestParamError, "参数有误")
      return
   }
   databases := searchBody.DataBases
   from := 0
   to := 0
   data := make(map[string]interface{})
   searchBody.Page = 1
   searchBody.Size = 15000
   if len(databases) == 1 && databases[0] == "esData" {
      searchBody.IsAggs = false
   } else {
      data = service.QueryDbPersonsForCompare(*searchBody)
   if searchBody.CompareNum !="" {
      //二次搜索,不需要再比对了
      co := service.GetCompResultByNum(searchBody.CompareNum)
      if co != nil {
         //二次搜索和排序
         twiceM := GetCompareDataTwice(co,searchBody)
         util.ResponseFormat(c,code.Success,twiceM)
         return
      } else {
         m :=make(map[string]interface{},0)
         m["compareNum"] = searchBody.CompareNum
         m["total"] = 0
         m["totalList"] = []CompareResult{}
         util.ResponseFormat(c,code.CompareResultGone,m)
         return
      }
   }
   sources := data["datalist"].([]interface{})
   if len(sources) > 0 {
      //进行比对
   } else {
      fmt.Println("查询条件下无数据 source 数据为空:" + string(len(sources)))
   }
   dataLen := len(sources)
   if from > dataLen-1 {
      from = 0
      to = 0
   }
   if to > dataLen {
      to = dataLen
   }
   dmap := make(map[string]interface{}, 2)
   dmap["datalist"] = sources
   dmap["total"] = dataLen
   util.ResponseFormat(c, code.Success, dmap)
   m :=make(map[string]interface{},0)
   m["compareNum"] = searchBody.CompareNum
   m["total"] = 0
   m["totalList"] = []CompareResult{}
   util.ResponseFormat(c,code.CompareResultGone,m)
}
func searchEsData(searchBody models.EsSearch) map[string]interface{} {
@@ -115,12 +104,15 @@
   esSize := strconv.Itoa(webSize)
   //使用es底层机制处理分页
   //请求头
   url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
   localConf, err2 := cache.GetServerInfo()
   if err2 !=nil || localConf.AlarmIp == "" || localConf.ServerId == "" {
      logger.Debug("localConfig is wrong!!!")
      return nil
   }
   url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
      "/" + index + "/_search?search_type=dfs_query_then_fetch"
   var setApi dbapi.SysSetApi
   _, sysconf := setApi.GetServerInfo()
   analyServerFilterStr := "{\"term\":{\"analyServerId\":\"" + sysconf.ServerId + "\"}},"
   analyServerFilterStr := "{\"term\":{\"analyServerId\":\"" + localConf.ServerId + "\"}},"
   //请求体
   prama := "{\"from\":\"" + esFrom + "\",\"size\":\"" + esSize + "\"," +