liuxiaolong
2019-11-13 6a5bb24c9881081a3da01fafa636b880c9cc717b
controllers/esSearch.go
@@ -177,7 +177,7 @@
      analyServerFilterStr +
      "{\"range\":{\"picDate\":{\"from\":\"" + gteDate + "\",\"to\":\"" + lteDate + "\",\"include_lower\":true,\"include_upper\":true,\"boost\":1}}}]}}," +
      "\"sort\":[{\"_score\":{\"order\":\"desc\"}},{\"picDate\":{\"order\":\"desc\"}}]," +
      "\"_source\":[\"baseInfo\",\"alarmRules\",\"sex\",\"analyServerName\",\"sdkName\",\"ageDescription\",\"content\",\"id\",\"cameraAddr\",\"picMaxUrl\",\"picDate\",\"race\",\"videoUrl\",\"picSmUrl\",\"taskName\",\"personIsHub\",\"isAlarm\",\"analyServerIp\",\"cameraId\",\"linkId\"]" +
      "\"_source\":[\"baseInfo\",\"alarmRules\",\"sex\",\"analyServerName\",\"sdkName\",\"ageDescription\",\"content\",\"id\",\"cameraAddr\",\"picMaxUrl\",\"picDate\",\"race\",\"videoUrl\",\"picSmUrl\",\"taskName\",\"isAlarm\",\"analyServerIp\",\"cameraId\",\"linkTag\",\"linkTagInfo\"]" +
      "}"
   //logger.Debug("findEsData.param:",prama)
   //数据解析
@@ -190,53 +190,30 @@
   for _, masterInfoValues := range data.([]interface{}) {
      masterInfo := masterInfoValues.(map[string]interface{})
      sources := make(map[string]interface{}, 0)
      sources["activeObject"] = masterInfo
      linkId := ""
      if masterInfo["linkId"] != nil {
         linkId = masterInfo["linkId"].(string)
      }
      id := masterInfo["id"].(string)
      if linkId != "" {
         slaveList := make([]map[string]interface{}, 0)
         slaveList = append(slaveList, masterInfo)
         linkInfo := GetLinkInfo(linkId, id)
         for _, slaveInfoValues := range linkInfo {
            slaveInfo := slaveInfoValues
            slaveList = append(slaveList, slaveInfo)
      if masterInfo["linkTagInfo"] != nil {
         linkTagInfo := masterInfo["linkTagInfo"].([]map[string]interface{})
         if len(linkTagInfo) >0 {
            slaveList := make([]map[string]interface{}, 0)
            slaveList = append(slaveList, masterInfo)
            slaveList = append(slaveList, linkTagInfo...)
            sources["list"] = slaveList
         } else {
            sources["list"] = []interface{}{}
         }
         sources["list"] = slaveList
      } else {
         sources["list"] = []interface{}{}
      }
      if _,ok := masterInfo["linkTagInfo"];ok {
         delete(masterInfo, "linkTagInfo")
      }
      sources["activeObject"] = masterInfo
      tmpDate["datalist"] = append(tmpDate["datalist"], sources)
   }
   tmpAllDate["datalist"] = tmpDate["datalist"]
   return tmpAllDate
}
func GetLinkInfo(linkId string, id string) []map[string]interface{} {
   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)) +
      "/" + config.EsInfo.EsIndex.VideoPersons.IndexName + "," + config.EsInfo.EsIndex.Personaction.IndexName + "/_search?search_type=dfs_query_then_fetch"
   jsonDSL := "{\"query\":{\"bool\":{\"filter\":[{\"term\":{\"linkId\":\"" + linkId + "\"}}],\"must_not\":[{\"term\":{\"id\":\"" + id + "\"}}]}},\"size\":100}"
   buf, err := esutil.EsReq("POST", url, []byte(jsonDSL))
   if err != nil {
      logger.Debug(err)
   }
   sources, err := esutil.Sourcelist(buf)
   if err != nil {
      logger.Debug(err)
   }
   return sources
}
//sdkTYype字典"\"_source\":[\"BaseName\",\"Gender\",\"Race\",\"content\",\"idcard\",\"picAddress\",\"picDate\",\"sdkType\",\"Age\",\"personId\",\"personIsHub\",\"personPicUrl\",\"picLocalUrl\",\"picSmUrl\",\"videoIp\",\"videoNum\",\"cameraId\",\"ageDescription\",\"likePer\"]" +