| | |
| | | "net/http" |
| | | "strconv" |
| | | "strings" |
| | | "sync" |
| | | "time" |
| | | "github.com/long/config" |
| | | |
| | | log "github.com/long/test/log" |
| | | ) |
| | |
| | | return baseInfoArr |
| | | } |
| | | |
| | | var videoCacheMap = make(map[string]string,0) |
| | | var lock sync.RWMutex |
| | | |
| | | func setVideoCache(imgKey string, url string) { |
| | | lock.Lock() |
| | | defer lock.Unlock() |
| | | videoCacheMap[imgKey] = url |
| | | } |
| | | |
| | | func getVideoFromCache(imgKey string) string { |
| | | lock.Lock() |
| | | defer lock.Unlock() |
| | | if v,ok := videoCacheMap[imgKey];ok { |
| | | return v |
| | | } |
| | | return "" |
| | | } |
| | | |
| | | func getVideoUrl(source map[string]interface{}) (videoUrl string){ |
| | | imgKey := source["imgKey"].(string) |
| | | |
| | | //先从缓存里面取 |
| | | cacheUrl := getVideoFromCache(imgKey) |
| | | if cacheUrl !="" { |
| | | return cacheUrl |
| | | } |
| | | |
| | | picDate := source["picDate"].(string)//抓拍日期 |
| | | cameraId := source["videoReqNum"].(string)//摄像机id |
| | | indeviceId := source["indeviceid"].(string)//分析设备id |
| | | deviceMap := make(map[string]string,0) |
| | | deviceMap["DSVAD010120181119"] = "http://172.17.50.241:11111/getRecordVideoPath" |
| | | deviceMap["DSVAD010220181119"] = "http://172.17.50.242:11111/getRecordVideoPath" |
| | | deviceMap["DSVAD010320181119"] = "http://172.17.50.243:11111/getRecordVideoPath" |
| | | deviceMap["DSVAD010420181119"] = "http://172.17.50.244:11111/getRecordVideoPath" |
| | | |
| | | ngxMap := make(map[string]string,0) |
| | | ngxMap["DSVAD010120181119"] = "http://58.118.225.79:44180/videosource" |
| | | ngxMap["DSVAD010220181119"] = "http://58.118.225.79:44280/videosource" |
| | | ngxMap["DSVAD010320181119"] = "http://58.118.225.79:44380/videosource" |
| | | ngxMap["DSVAD010420181119"] = "http://58.118.225.79:44480/videosource" |
| | | reqUrl := "" |
| | | if url,ok := config.ServerMap[indeviceId];!ok { |
| | | return "" |
| | | } else { |
| | | reqUrl = url |
| | | } |
| | | |
| | | |
| | | reqUrl := deviceMap[indeviceId] |
| | | paramMap := make(map[string]interface{},0) |
| | | paramMap["imgKey"] = imgKey |
| | | paramMap["picDate"] = picDate |
| | |
| | | fmt.Printf("videoReqUrl:%s ,imgKey:%s ,picDate:%s ,cameraId:%s ,filePath:%s \n ",reqUrl,imgKey,picDate,cameraId,filePath) |
| | | } else { |
| | | strArr := strings.Split(filePath, "/cut") |
| | | ngxUrl := ngxMap[indeviceId] |
| | | ngxUrl := config.NgxMap[indeviceId] |
| | | if ngxUrl !="" && len(strArr) >0 { |
| | | videoUrl = ngxUrl + strArr[1] |
| | | } |
| | |
| | | } |
| | | fmt.Println("resp: ",respMap) |
| | | } |
| | | setVideoCache(imgKey, videoUrl) |
| | | return videoUrl |
| | | } |
| | | |
| | |
| | | return value[i-1] |
| | | } |
| | | |
| | | func PostAction(sec int, Eurl string, picurl string, ishub string) []byte { |
| | | func PostAction(sec int, Eurl string, picurl string, ishub string, size int) []byte { |
| | | index := "videopersons,personaction" |
| | | url := fmt.Sprintf("%s%s%s", Eurl, index, "/_search") |
| | | |
| | | startTime := time.Now() |
| | | seccond := strconv.Itoa(sec) |
| | | preSec := "" |
| | | if sec > 60 { |
| | | preSec = "-60s" |
| | | } |
| | | var ishubReq ="" |
| | | if ishub == "hub" { |
| | | ishubReq = "{\"term\":{\"personIsHub\":\"1\"}}," |
| | | sizeStr :="" |
| | | if size <=0 { |
| | | sizeStr = "100" |
| | | } else { |
| | | sizeStr = strconv.Itoa(size) |
| | | } |
| | | prama := "{\"query\":{\"bool\":{\"filter\":["+ishubReq+"{\"range\":{\"picDate\":{\"gte\":\"now+8h-" + seccond + "s\",\"lt\":\"now+8h"+preSec+"\"}}}]}},\"size\":\"1000\",\"sort\":[{\"picDate\":{\"order\":\"desc\"}}]," + |
| | | |
| | | var filterArr []string |
| | | if ishub == "hub" { |
| | | filterArr = append(filterArr,"{\"term\":{\"personIsHub\":\"1\"}}") |
| | | } |
| | | if sec > 60 { |
| | | filterArr = append(filterArr, "{\"range\":{\"picDate\":{\"gte\":\"now+8h-" + seccond + "s\",\"lt\":\"now+8h"+preSec+"\"}}}") |
| | | } |
| | | filterStr := "" |
| | | if len(filterArr) >0 { |
| | | filterStr = strings.Join(filterArr, ",") |
| | | } |
| | | prama := "{\"query\":{\"bool\":{\"filter\":["+filterStr+"]}},\"size\":\""+sizeStr+"\",\"sort\":[{\"picDate\":{\"order\":\"desc\"}}]," + |
| | | "\"_source\":[\"baseInfo\",\"Gender\",\"BaseName\",\"Age\",\"personId\",\"personPicUrl\",\"indeviceName\",\"imgKey\",\"sdkType\",\"ageDescription\",\"indeviceid\",\"content\",\"Id\",\"picAddress\",\"picMaxUrl\",\"picDate\",\"Race\",\"videoNum\",\"picSmUrl\",\"taskName\",\"personIsHub\",\"idcard\",\"videoIp\",\"videoReqNum\"]" + |
| | | "}" |
| | | err, tokenRes := GetEsDataReq(url, prama, picurl, true) |
| | | |
| | | log.Log.InfoInfoln("条数:",size,"耗时:",time.Since(startTime)) |
| | | if err != nil { |
| | | log.Log.Errorln(err) |
| | | return nil |