package controllers import ( "basic.com/valib/bhomeclient.git" "basic.com/valib/bhomedbapi.git" "basic.com/valib/logger.git" "fmt" "strconv" "strings" "vamicro/config" "vamicro/realtime-service/esutil" ) type InitForData struct { } // @Security ApiKeyAuth // @Summary 抓拍实时图数据初始化 // @Description 实时获取数据 // @Accept json // @Produce json // @Tags realTime // @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(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { var sApi bhomedbapi.SysSetApi flag, localConf := sApi.GetServerInfo() if !flag || localConf.AlarmIp == "" ||localConf.AlarmPort ==0 { return &bhomeclient.Reply{Success:false, Msg: "localConf err"} } var searchBody RealTimeArg c.BindJSON(&searchBody) index := config.EsInfo.EsIndex.AiOcean.IndexName serverId := config.Server.AnalyServerId url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) + "/" + index + "/_search" cameraIdStr := "" linkTagInfoCameraIdStr := "" 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 + "\"]}}," linkTagInfoCameraIdStr = "{\"terms\":{\"linkTagInfo.cameraId\":[\"" + esCameraId + "\"]}}," } } analyServerFilterStr := "{\"term\":{\"analyServerId\":\"" + serverId + "\"}}" linkTagInfoAnalyServerFilterStr := "{\"term\":{\"linkTagInfo.analyServerId\":\"" + serverId + "\"}}" prama := "{\"query\":{\"bool\":{\"should\":[" + "{\"bool\":{\"filter\":[" + "{\"term\":{\"isAlarm\":true}}," + cameraIdStr + analyServerFilterStr + "]}}," + "{\"bool\":{\"filter\":[" + "{\"term\":{\"isAlarm\":true}}," + linkTagInfoCameraIdStr + linkTagInfoAnalyServerFilterStr + "]}}" + "],\"minimum_should_match\":1}}," + "\"size\":\"20\",\"sort\":[{\"picDate\":{\"order\":\"desc\"}}]," + "\"_source\":{\"includes\":[],\"excludes\":[\"*.feature\"]}" + "}" logger.Debug("InitForCaptureData:", prama) tokenRes := esutil.GetEsDataReq(url, prama, true) tmpAllDate := esutil.ResponseData(tokenRes) return &bhomeclient.Reply{Success:true, Data: tmpAllDate} } type InitForMonitorArg struct { TreeNodes []string `json:"treeNodes"` Tasks []string `json:"tasks"` } // @Security ApiKeyAuth // @Summary 实时任务监控数据初始化 // @Description 实时监控比对数据 // @Accept json // @Produce json // @Tags realTime // @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(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { var sApi bhomedbapi.SysSetApi flag, localConf := sApi.GetServerInfo() if !flag || localConf.AlarmIp == "" ||localConf.AlarmPort ==0 { return &bhomeclient.Reply{Success:false, Msg: "localConf err"} } var searchBody InitForMonitorArg c.BindJSON(&searchBody) index := config.EsInfo.EsIndex.AiOcean.IndexName cameraIdStr := "" linkTagInfoCameraIdStr := "" cameraId := searchBody.TreeNodes if cameraId != nil && len(cameraId) > 0 { esCameraId := strings.Replace(strings.Trim(fmt.Sprint(cameraId), "[]"), " ", "\",\"", -1) cameraIdStr = "{\"terms\":{\"cameraId\":[\"" + esCameraId + "\"]}}," linkTagInfoCameraIdStr = "{\"terms\":{\"linkTagInfo.cameraId\":[\"" + esCameraId + "\"]}}," } //判断任务ID taskIdStr := "" linkTagInfoTaskIdStr := "" taskId := searchBody.Tasks if taskId != nil && len(taskId) > 0 { esTaskId := strings.Replace(strings.Trim(fmt.Sprint(taskId), "[]"), " ", "\",\"", -1) taskIdStr = "{\"terms\":{\"taskId\":[\"" + esTaskId + "\"]}}," linkTagInfoTaskIdStr = "{\"terms\":{\"linkTagInfo.taskId\":[\"" + esTaskId + "\"]}}," } serverId := config.Server.AnalyServerId url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) + "/" + index + "/_search" analyServerFilterStr := "{\"term\":{\"analyServerId\":\"" + serverId + "\"}}" linkTagInfoAnalyServerFilterStr := "{\"term\":{\"linkTagInfo.analyServerId\":\"" + serverId + "\"}}" prama := "{\"query\":{\"bool\":{\"should\":[" + "{\"bool\":{\"filter\":[" + taskIdStr + cameraIdStr + analyServerFilterStr + "]}}," + "{\"bool\":{\"filter\":[" + linkTagInfoTaskIdStr + linkTagInfoCameraIdStr + linkTagInfoAnalyServerFilterStr + "]}}" + "],\"minimum_should_match\":1}}," + "\"sort\":[{\"picDate\":{\"order\":\"desc\"}}]," + "\"size\":\"20\"," + "\"_source\":{\"includes\":[],\"excludes\":[\"*.feature\"]}}" //logger.Debug("url:", url) //logger.Debug("InitForMonitoringData:", prama) tokenRes := esutil.GetEsDataReq(url, prama, true) tmpAllDate := esutil.ResponseData(tokenRes) return &bhomeclient.Reply{Success:true, Data:tmpAllDate} }