package controllers
|
|
import (
|
"fmt"
|
"github.com/gin-gonic/gin"
|
"webserver/extend/code"
|
"webserver/extend/config"
|
"webserver/extend/esutil"
|
"webserver/extend/util"
|
"strings"
|
)
|
|
type RealTimeController struct{}
|
|
// @Summary 实时抓拍
|
// @Description 实时抓拍数据
|
// @Accept json
|
// @Produce json
|
// @Tags es
|
// @Param obj body map true "底库数据"
|
// @Success 200 {string} json "{"code":200, msg:"目录结构数据", success:true}"
|
// @Failure 500 {string} json "{"code":500, msg:"返回错误信息", success:false}"
|
// @Router /data/api-v/realTime/capture [POST]
|
//实时抓拍
|
func (rc *RealTimeController) PostCapture(c *gin.Context) {
|
searchBody := make(map[string]interface{}, 0)
|
|
c.BindJSON(&searchBody)
|
index := config.EsInfo.EsIndex.VideoPersons.IndexName + "," + config.EsInfo.EsIndex.Personaction.IndexName
|
videoReqNumStr := ""
|
videoReqNum := searchBody["treeNodes"].([]interface{})
|
if videoReqNum != nil && len(videoReqNum) > 0 {
|
esVideoReqNum := strings.Replace(strings.Trim(fmt.Sprint(videoReqNum), "[]"), " ", "\",\"", -1)
|
videoReqNumStr = "{\"terms\":{\"videoReqNum\":[\"" + esVideoReqNum + "\"]}},"
|
}
|
//请求头
|
url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
|
"/" + index + "/_search"
|
|
prama := "{\"query\":{\"bool\":{\"filter\":[" +
|
videoReqNumStr +
|
"{\"range\":{\"picDate\":{\"gte\":\"now+8h-5s\",\"lt\":\"now+8h\"}}}]}}," +
|
"\"sort\":[{\"picDate\":{\"order\":\"desc\"}}]," +
|
"\"size\":\"1000\"," +
|
"\"_source\":[\"baseInfo\",\"gender\",\"indeviceName\",\"sdkType\",\"ageDescription\",\"content\",\"ID\",\"picAddress\",\"picMaxUrl\",\"picDate\",\"race\",\"videoNum\",\"picSmUrl\",\"taskName\",\"personIsHub\",\"IDCard\",\"videoIp\",\"videoReqNum\"]}"
|
fmt.Println(prama)
|
tokenRes := esutil.GetEsDataReq(url, prama, true)
|
/*for _, value := range tokenRes["datalist"].([]interface{}) {
|
if value.(map[string]interface{})["personId"] != nil {
|
info := getDBPersonInfo(value.(map[string]interface{})["personId"].(string))
|
for key, val := range info {
|
//fmt.Println(value.(map[string]interface{})[key],val)
|
value.(map[string]interface{})[key] = val
|
|
}
|
}
|
}*/
|
|
util.ResponseFormat(c, code.Success, tokenRes)
|
}
|