sunty
2019-11-21 6225f722fd54187b18f6b1a97d044e6918c8ce3b
EsApi.go
@@ -294,34 +294,48 @@
}
//初始化实时抓拍
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":{
   isAlarmStr := ""
   if isAlarm != "all" {
      isAlarmStr = `            {
               "term":{
                  "isAlarm":"` + isAlarm + `"
               }
            }`
   }
   categoryStr := ""
   if category != "all" {
      categoryStr = `            {
               "term":{
                  "targetInfo.targetType":"` + category + `"
               }
            }`
   }
   if categoryStr != "" && isAlarmStr != "" {
      isAlarmStr = isAlarmStr+","
   }
    queryStr := `"query":{
      "bool":{
         "filter":[
            {
               "term":{
                  "isAlarm":true
               }
            }
            ` + isAlarmStr + `
            ` + categoryStr + `
         ]
      }
   },`
   }
   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 +356,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 +369,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 +396,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 +463,9 @@
      }
   },
   "aggs":{
      "sdkId_status":{
      "sdkName_status":{
         "terms":{
            "field":"taskId"
            "field":"sdkName.raw"
         }
      }
   }
@@ -472,7 +484,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 +496,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)
   }