| | |
| | | package esutil |
| | | |
| | | import ( |
| | | "bytes" |
| | | "encoding/json" |
| | | "errors" |
| | | "fmt" |
| | |
| | | |
| | | log "andriodServer/log" |
| | | ) |
| | | |
| | | func EsReq(method string, url string, parama []byte) (buf []byte, err error) { |
| | | //defer elapsed("page")() |
| | | timeout := time.Duration(100 * time.Second) |
| | | client := http.Client{ |
| | | Timeout: timeout, |
| | | } |
| | | request, err := http.NewRequest(method, url, bytes.NewBuffer(parama)) |
| | | request.Header.Set("Content-type", "application/json") |
| | | |
| | | if err != nil { |
| | | fmt.Println("build request fail !") |
| | | return nil, err |
| | | } |
| | | |
| | | resp, err := client.Do(request) |
| | | if err != nil { |
| | | fmt.Println("request error: ", err) |
| | | return nil, err |
| | | } |
| | | |
| | | defer resp.Body.Close() |
| | | body, err := ioutil.ReadAll(resp.Body) |
| | | if err != nil { |
| | | fmt.Println(err) |
| | | return nil, err |
| | | } |
| | | return body, nil |
| | | } |
| | | |
| | | func GetEsDataReq(url string, param string, isSource bool) (error, map[string]interface{}) { |
| | | req, err := http.NewRequest("POST", url, strings.NewReader(param)) |
| | |
| | | if !exist { |
| | | continue |
| | | } |
| | | alarmRules, exist := source["alarmRules"] |
| | | if exist { |
| | | if alarmB,ae := json.Marshal(alarmRules);ae ==nil { |
| | | var alarmRArr []AlarmRule |
| | | if ae = json.Unmarshal(alarmB, &alarmRArr);ae ==nil && len(alarmRArr) >0 { |
| | | d["alarmLevel"] = alarmRArr[0].AlarmLevel |
| | | } |
| | | } |
| | | } else { |
| | | d["alarmLevel"] = "" |
| | | } |
| | | pmArr := pmax.([]interface{}) |
| | | if len(pmArr) > 0 { |
| | | d["picMaxUrl"] = pmArr[0] |
| | | } else { |
| | | d["picMaxUrl"] = "" |
| | | } |
| | | d["picAddress"] = source["cameraAddr"] |
| | | |
| | | tB, err := json.Marshal(source["targetInfo"]) |
| | | if err != nil { |
| | |
| | | if len(tiArr) > 0 { |
| | | ti := tiArr[0] |
| | | d["picSmUrl"] = ti.PicSmUrl |
| | | if ti.TargetType == "face" { |
| | | d["targetType"] = ti.TargetType |
| | | if ti.TargetType == "FaceDetect" { |
| | | sLabelStr, ok := source["showLabels"] |
| | | if ok { |
| | | labelArr := strings.Split(sLabelStr.(string), "/") |
| | | if len(labelArr) == 3 { |
| | | d["gender"] = labelArr[0] |
| | | d["ageDescription"] = labelArr[1] |
| | | d["race"] = labelArr[2] |
| | | } |
| | | //labelArr := strings.Split(sLabelStr.(string), "/") |
| | | //if len(labelArr) == 3 { |
| | | // d["gender"] = labelArr[0] |
| | | // d["ageDescription"] = labelArr[1] |
| | | // d["race"] = labelArr[2] |
| | | //} |
| | | d["showLabels"] = sLabelStr |
| | | } else { |
| | | d["showLabels"] = "" |
| | | } |
| | | |
| | | |
| | | if bInfos,ok := source["baseInfo"]; ok && bInfos != nil { |
| | | d["baseInfo"] = getSourceBaseInfo(bInfos) |
| | | bd := getSourceBaseInfo(bInfos) |
| | | d["baseInfo"] = bd //比对到的底库的人 |
| | | } else { |
| | | d["baseInfo"] = []interface{}{} |
| | | } |
| | | d["sdkType"] = "人脸" |
| | | d["sdkType"] = source["taskName"] |
| | | } else { |
| | | d["sdkType"] = source["sdkName"] |
| | | d["sdkType"] = source["taskName"] |
| | | d["picSmUrl"] = d["picMaxUrl"] |
| | | } |
| | | } else { |
| | | d["picSmUrl"] = d["picMaxUrl"] |
| | | } |
| | | |
| | | |
| | | d["videoNum"] = source["videoUrl"] |
| | | vUri := source["videoUrl"] |
| | | if vUri != nil && vUri.(string) != "" { |
| | | d["videoNum"] = "http://"+vUri.(string) |
| | | } else { |
| | | d["videoNum"] = "" |
| | | } |
| | | |
| | | sources = append(sources, d) |
| | | } |
| | |
| | | } else { |
| | | return nil, dat |
| | | } |
| | | } |
| | | |
| | | type AlarmRule struct { |
| | | GroupId string `json:"groupId"` |
| | | AlarmLevel string `json:"alarmLevel"` |
| | | } |
| | | |
| | | type TargetInfo struct { |
| | |
| | | type BaseInfo struct { |
| | | TaskId string `json:"taskId"` |
| | | TaskName string `json:"taskName"` |
| | | LikePer string `json:"likePer"` |
| | | LikePer float32 `json:"likePer"` |
| | | TableId string `json:"tableId"` |
| | | TableName string `json:"tableName"` |
| | | PersonId string `json:"personId"` |
| | |
| | | TargetName string `json:"targetName"` |
| | | TargetId string `json:"targetId"` |
| | | TableId string `json:"tableId"` |
| | | CompareScore string `json:"compareScore"` |
| | | CompareScore float32 `json:"compareScore"` |
| | | MonitorLevel string `json:"monitorLevel"` |
| | | Content string `json:"content"` |
| | | TableName string `json:"tableName"` |
| | |
| | | Content: t.Content, |
| | | }) |
| | | } |
| | | } else { |
| | | fmt.Println("unmarshal bInfos err:", err) |
| | | } |
| | | } else { |
| | | fmt.Println("marshal bInfos err:", err) |
| | | } |
| | | |
| | | return baseInfoArr |
| | |
| | | preSec = strconv.Itoa(sec) |
| | | } |
| | | var filterArr []string |
| | | var mustNotArr []string |
| | | //是否查报警数据 |
| | | if ishub == "hub" { |
| | | filterArr = append(filterArr,"{\"term\":{\"alarmRules.alarmLevel.raw\":\"二级\"}}") |
| | | mustNotArr = append(mustNotArr,"{\"term\":{\"alarmRules.alarmLevel.raw\":\"五级\"}}") |
| | | } |
| | | |
| | | filterArr = append(filterArr, "{\"range\":{\"picDate\":{\"gte\":\"now+8h-"+preSec+"s\",\"lt\":\"now+8h\"}}}") |
| | | |
| | | filterStr := "" |
| | | mustNotStr := "" |
| | | if len(filterArr) >0 { |
| | | filterStr = strings.Join(filterArr, ",") |
| | | } |
| | | param := "{\"query\":{\"bool\":{\"filter\":["+filterStr+"]}},\"size\":\""+sizeStr+"\",\"sort\":[{\"picDate\":{\"order\":\"desc\"}}]," + |
| | | "\"_source\":{\"includes\":[\"baseInfo\",\"targetInfo\",\"content\",\"id\",\"picMaxUrl\",\"picDate\",\"showLabels\",\"taskName\",\"sdkName\"],\"excludes\":[\"*.feature\",\"*.attachTarget\",\"*.targetLocation\",\"alarmRules\"]}" + |
| | | if len(mustNotArr) > 0 { |
| | | mustNotStr = strings.Join(mustNotArr, ",") |
| | | } |
| | | param := "{\"query\":{\"bool\":{\"filter\":["+filterStr+"],\"must_not\":["+mustNotStr+"]}},\"size\":\""+sizeStr+"\",\"sort\":[{\"picDate\":{\"order\":\"desc\"}}]," + |
| | | "\"_source\":{\"includes\":[\"cameraAddr\",\"baseInfo\",\"targetInfo\",\"content\",\"id\",\"picMaxUrl\",\"picDate\",\"showLabels\",\"taskName\",\"sdkName\",\"videoUrl\",\"alarmRules\"],\"excludes\":[\"*.feature\",\"*.attachTarget\",\"*.targetLocation\"]}" + |
| | | "}" |
| | | err, tokenRes := GetEsDataReq(url, param, true) |
| | | |
| | |
| | | log.Log.Errorln("GetEsDataReq err:", err) |
| | | return nil |
| | | } |
| | | log.Log.Infoln("tokenRes:", tokenRes) |
| | | jsonstring, _ := json.Marshal(tokenRes) |
| | | log.Log.Infoln("len(result):", len(jsonstring)) |
| | | if len(jsonstring) <= 26 { |
| | | return nil |
| | | } |