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" "webserver/extend/util" ) 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(c *gin.Context) { //searchBody := make(map[string]interface{}, 0) var searchBody RealTimeArg c.BindJSON(&searchBody) index := config.EsInfo.EsIndex.AiOcean.IndexName 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" 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\":\"" + localConf.ServerId + "\"}}" linkTagInfoAnalyServerFilterStr := "{\"term\":{\"linkTagInfo.analyServerId\":\"" + localConf.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) util.ResponseFormat(c, code.Success, 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(c *gin.Context) { //searchBody := make(map[string]interface{}, 0) 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 + "\"]}}," } //请求头 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" analyServerFilterStr := "{\"term\":{\"analyServerId\":\"" + localConf.ServerId + "\"}}" linkTagInfoAnalyServerFilterStr := "{\"term\":{\"linkTagInfo.analyServerId\":\"" + localConf.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) util.ResponseFormat(c, code.Success, tmpAllDate) }