fix
liuxiaolong
2019-11-21 efbf83e4778cb61e7da23c8a4a62b352929b40ea
EsApi.go
@@ -294,34 +294,43 @@
}
//初始化实时抓拍
func InitRealTimeCapture(serverIp string, serverPort string, indexName string, isAlarm bool, quantity int) ([]protomsg.AIOcean, error) {
func InitRealTimeCapture(serverIp string, serverPort string, indexName string, isAlarm string, category string, quantity int) ([]protomsg.AIOcean, error) {
   var aIOceanInfo []protomsg.AIOcean
   url := "http://" + serverIp + ":" + serverPort +
      "/" + indexName + "/_search"
   queryStr := ""
   if isAlarm == true {
      queryStr = `"query":{
      "match_all":{}
   },`
   } else {
      queryStr = `"query":{
   var filterArr []string
   if isAlarm != "all" {
      filterArr = append(filterArr,`            {
               "term":{
                  "isAlarm":"` + isAlarm + `"
               }
            }`)
   }
   if category != "all" {
      filterArr = append(filterArr,`            {
               "term":{
                  "targetInfo.targetType":"` + category + `"
               }
            }`)
   }
    queryStr := `"query":{
      "bool":{
         "filter":[
            {
               "term":{
                  "isAlarm":true
               }
            }
            `+strings.Join(filterArr,",")+`
         ]
      }
   },`
   }
   DSLJson := `{
   "size":` + strconv.Itoa(quantity) + `,
   ` + queryStr + `
   "sort":[{"picDate":{"order":"desc"}}],
   "_source": {"includes":[],"excludes":["*.feature"]}
   }`
   fmt.Println(DSLJson)
   buf, err := EsReq("POST", url, []byte(DSLJson))
   if err != nil {
      return aIOceanInfo, err
@@ -342,18 +351,6 @@
   var aIOceanInfo []protomsg.AIOcean
   url := "http://" + serverIp + ":" + serverPort +
      "/" + indexName + "/_search"
   queryStr := ""
   if isAlarm == true {
      fmt.Println("continue")
   } else {
      queryStr = `
            {
               "term":{
                  "isAlarm":1
               }
            }
               `
   }
   DSLJson := `{
   "size":20,
   "query":{
@@ -367,11 +364,15 @@
                  }      
               }
            },
         ` + queryStr + `
            {
               "term":{
                  "isAlarm":` + strconv.FormatBool(isAlarm) + `
               }
            }
         ]
      }
   },
   "_source": ["baseInfo", "alarmRules", "sex", "analyServerName", "sdkName", "ageDescription", "content", "id", "cameraAddr", "picMaxUrl", "picDate", "race", "videoUrl", "picSmUrl", "taskName", "personIsHub", "isAlarm", "analyServerIp", "cameraId", "isAckAlarm"]
   "_source": {"includes":[],"excludes":["*.feature"]}
   }`
   buf, err := EsReq("POST", url, []byte(DSLJson))
@@ -390,25 +391,31 @@
}
//综合统计
func StatisticsComprehensive(serverIp string, serverPort string, indexName string, isAlarm bool) (total int, err error) {
   isAlarmStr := ""
   if isAlarm == true {
      isAlarmStr = `,{"term":{"isAlarm":true}}`
   }
func StatisticsComprehensive(serverIp string, serverPort string, indexName string, isAlarm string) (total int, err error) {
   url := "http://" + serverIp + ":" + serverPort +
      "/" + indexName + "/_search"
   isAlarmStr := ""
   if isAlarm != "all" {
      isAlarmStr = `            {
               "term":{
                  "isAlarm":"` + isAlarm + `"
               }
            },`
   }
   DSLJson := `{
   "size":0,
   "query":{
      "bool":{
         "filter":[{
         "filter":[
            ` + isAlarmStr + `
            {
            "range":{
               "picDate":{
                  "gte":"now+8h/d"
                  }
               }
            }
            ` + isAlarmStr + `
            ]
         }
      }
@@ -451,9 +458,9 @@
      }
   },
   "aggs":{
      "sdkId_status":{
      "sdkName_status":{
         "terms":{
            "field":"taskId"
            "field":"sdkName.raw"
         }
      }
   }
@@ -472,7 +479,7 @@
   if !ok {
      return nil, errors.New("first hits change error!")
   }
   sdkName_status, ok := middle["sdkId_status"].(map[string]interface{})
   sdkName_status, ok := middle["sdkName_status"].(map[string]interface{})
   if !ok {
      return nil, errors.New("first hits change error!")
   }
@@ -484,9 +491,9 @@
         fmt.Println("change to source error!")
         continue
      }
      sdkId := tmpbuf["key"].(string)
      sdkName := tmpbuf["key"].(string)
      count := int(tmpbuf["doc_count"].(float64))
      source["id"] = sdkId
      source["name"] = sdkName
      source["value"] = count
      sources = append(sources, source)
   }