fix
liuxiaolong
2019-11-13 263c7b18ce7f18f1222318f6e0e499e907895a52
controllers/initForData.go
@@ -1,9 +1,12 @@
package controllers
import (
   "basic.com/valib/logger.git"
   "fmt"
   "github.com/gin-gonic/gin"
   "strconv"
   "strings"
   "webserver/cache"
   "webserver/extend/code"
   "webserver/extend/config"
   "webserver/extend/esutil"
@@ -13,69 +16,96 @@
type InitForData struct {
}
// @Security ApiKeyAuth
// @Summary 抓拍实时图数据初始化
// @Description 实时获取数据
// @Accept  json
// @Produce json
// @Tags realTime
// @Success 200 {string} json "{"code":200, msg:"目录结构数据", success:true}"
// @Failure 500 {string} json "{"code":500,  msg:"返回错误信息", success:false}"
// @Param obj body controllers.RealTimeArg false "抓拍实时图初始化参数"
// @Success 200 {string} json "{"code":200, msg:"", success:true}"
// @Failure 500 {string} json "{"code":500,  msg:"", success:false}"
// @Router /data/api-v/realTime/initForCaptureData [POST]
//实时抓拍数据初始化
func (rc *RealTimeController) InitForCaptureData(c *gin.Context) {
   searchBody := make(map[string]interface{}, 0)
   //searchBody := make(map[string]interface{}, 0)
   var searchBody RealTimeArg
   c.BindJSON(&searchBody)
   index := config.EsInfo.EsIndex.VideoPersons.IndexName + "," + config.EsInfo.EsIndex.Personaction.IndexName
   url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
   localConf, err2 := cache.GetServerInfo()
   if err2 !=nil || localConf.AlarmIp == "" || localConf.ServerId == "" {
      logger.Debug("localConfig is wrong!!!")
      util.ResponseFormat(c,code.ComError,"localConf wrong")
      return
   }
   url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
      "/" + index + "/_search"
   var setApi dbapi.SysSetApi
   _, sysconf := setApi.GetServerInfo()
   analyServerFilterStr := "{\"term\":{\"analyServerId\":\"" + sysconf.ServerId + "\"}}"
   cameraIdStr := ""
   if searchBody.TreeNodes !=nil {
      cameraId := searchBody.TreeNodes
      if cameraId != nil && len(cameraId) > 0 {
         esCameraId := strings.Replace(strings.Trim(fmt.Sprint(cameraId), "[]"), " ", "\",\"", -1)
         cameraIdStr = "{\"terms\":{\"cameraId\":[\"" + esCameraId + "\"]}},"
      }
   }
   analyServerFilterStr := "{\"term\":{\"analyServerId\":\"" + localConf.ServerId + "\"}}"
   prama := "{\"query\":{\"bool\":{\"filter\":[{\"term\":{\"isAlarm\":\"1\"}}," +
      cameraIdStr +
      analyServerFilterStr +
      "]}},\"size\":\"20\",\"sort\":[{\"picDate\":{\"order\":\"desc\"}}]," +
      "\"_source\":[\"baseInfo\",\"alarmRules\",\"sex\",\"analyServerName\",\"sdkName\",\"ageDescription\",\"content\",\"id\",\"cameraAddr\",\"picMaxUrl\",\"picDate\",\"race\",\"videoUrl\",\"picSmUrl\",\"taskName\",\"isAlarm\",\"isAlarm\",\"analyServerIp\",\"cameraId\"]" +
      "}"
   fmt.Println(prama)
   //logger.Debug("InitForCaptureData:", prama)
   tokenRes := esutil.GetEsDataReq(url, prama, true)
   util.ResponseFormat(c, code.Success, tokenRes)
}
type InitForMonitorArg struct {
   TreeNodes []string `json:"treeNodes"`
   Tasks []string `json:"tasks"`
}
// @Security ApiKeyAuth
// @Summary 实时任务监控数据初始化
// @Description 实时监控比对数据
// @Accept  json
// @Produce json
// @Tags realTime
// @Param obj body map true "底库数据"
// @Param obj body controllers.InitForMonitorArg true "实时任务监控参数"
// @Success 200 {string} json "{"code":200, msg:"目录结构数据", success:true}"
// @Failure 500 {string} json "{"code":500,  msg:"返回错误信息", success:false}"
// @Router /data/api-v/realTime/initForMonitoringData [POST]
//实时监控数据初始化
func (rc *RealTimeController) InitForMonitoringData(c *gin.Context) {
   searchBody := make(map[string]interface{}, 0)
   //searchBody := make(map[string]interface{}, 0)
   var searchBody InitForMonitorArg
   c.BindJSON(&searchBody)
   index := config.EsInfo.EsIndex.VideoPersons.IndexName
   index := config.EsInfo.EsIndex.VideoPersons.IndexName + "," + config.EsInfo.EsIndex.Personaction.IndexName
   cameraIdStr := ""
   cameraId := searchBody["treeNodes"].([]interface{})
   cameraId := searchBody.TreeNodes
   if cameraId != nil && len(cameraId) > 0 {
      esCameraId := strings.Replace(strings.Trim(fmt.Sprint(cameraId), "[]"), " ", "\",\"", -1)
      cameraIdStr = "{\"terms\":{\"cameraId\":[\"" + esCameraId + "\"]}},"
   }
   //判断任务ID
   taskIdStr := "{\"terms\":{\"taskId\":[]}},"
   taskId := searchBody["tasks"].([]interface{})
   taskId := searchBody.Tasks
   if taskId != nil && len(taskId) > 0 {
      esTaskId := strings.Replace(strings.Trim(fmt.Sprint(taskId), "[]"), " ", "\",\"", -1)
      taskIdStr = "{\"terms\":{\"taskId\":[\"" + esTaskId + "\"]}},"
   }
   //请求头
   url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
   localConf, err2 := cache.GetServerInfo()
   if err2 !=nil || localConf.AlarmIp == "" || localConf.ServerId == "" {
      logger.Debug("localConfig is wrong!!!")
      util.ResponseFormat(c,code.ComError,"localConf wrong")
      return
   }
   url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
      "/" + index + "/_search"
   var setApi dbapi.SysSetApi
   _, sysconf := setApi.GetServerInfo()
   analyServerFilterStr := "{\"term\":{\"analyServerId\":\"" + sysconf.ServerId + "\"}},"
   analyServerFilterStr := "{\"term\":{\"analyServerId\":\"" + localConf.ServerId + "\"}}"
   prama := "{\"query\":{\"bool\":{\"filter\":[" +
      cameraIdStr +
@@ -85,7 +115,8 @@
      "\"sort\":[{\"picDate\":{\"order\":\"desc\"}}]," +
      "\"size\":\"20\"," +
      "\"_source\":[\"baseInfo\",\"alarmRules\",\"sex\",\"analyServerName\",\"sdkName\",\"ageDescription\",\"content\",\"id\",\"cameraAddr\",\"picMaxUrl\",\"picDate\",\"race\",\"videoUrl\",\"picSmUrl\",\"taskName\",\"personIsHub\",\"isAlarm\",\"analyServerIp\",\"cameraId\"]}"
   fmt.Println(prama)
   //logger.Debug("url:", url)
   //logger.Debug("InitForMonitoringData:", prama)
   tokenRes := esutil.GetEsDataReq(url, prama, true)
   util.ResponseFormat(c, code.Success, tokenRes)
}
}