| | |
| | | "fmt" |
| | | "io/ioutil" |
| | | "net" |
| | | "os" |
| | | "ruleprocess/cache" |
| | | "ruleprocess/logger" |
| | | "strings" |
| | |
| | | AnalyServerName string `json:"analyServerName"` |
| | | AnalyServerIp string `json:"analyServerIp"` |
| | | ClusterId string `json:"clusterId"` |
| | | LinkId string `json:"linkId"` |
| | | DetectScore float64 `json:"detectScore"` |
| | | IsAlarm int `json:"isAlarm"` |
| | | IsAckAlarm int `json:"isAckAlarm"` |
| | |
| | | ClusterId string `json:"clusterId"` |
| | | PicSmUrl []string `json:"picSmUrl"` |
| | | PicDate string `json:"picDate"` |
| | | LinkId string `json:"linkId"` |
| | | VideoUrl string `json:"videoUrl"` |
| | | IsAlarm int `json:"isAlarm"` |
| | | IsAckAlarm int `json:"isAckAlarm"` |
| | |
| | | // //} |
| | | //} |
| | | func InsertToEs(msg ruleserver.ResultMsg) { |
| | | InsertFace(msg) |
| | | //flag := ruleserver.BodyIsSame(msg.SdkMessage) |
| | | //if !flag { |
| | | InsertYolo(msg) |
| | | //} |
| | | InsertFace(msg,"") |
| | | flag := ruleserver.BodyIsSame(msg.SdkMessage) |
| | | if !flag { |
| | | InsertYolo(msg,"") |
| | | } |
| | | } |
| | | |
| | | // 往es中插入人脸数据 |
| | | func InsertFace(msg ruleserver.ResultMsg) { |
| | | func InsertFace(msg ruleserver.ResultMsg,linkId string) { |
| | | if msg.RuleResult["face"] != nil && len(msg.RuleResult["face"].([]ruleserver.FaceResult)) > 0 { |
| | | logger.Info("往ES插人脸数据") |
| | | for _, faceResult := range msg.RuleResult["face"].([]ruleserver.FaceResult) { |
| | |
| | | race := getRaceString(face.ThftRes.Race) |
| | | ageDescription := getDescription(face.ThftRes.Age) |
| | | esDataId := uuid.NewV4().String() |
| | | linksId := "" |
| | | if linkId != "" { |
| | | linksId = linkId |
| | | } |
| | | pervideo := PerVideoPicture{ |
| | | esDataId, |
| | | msg.Cid, |
| | |
| | | localConfig.ServerName, |
| | | serverIp, |
| | | "", |
| | | linksId, |
| | | face.Score, |
| | | 1, |
| | | 0, |
| | |
| | | localConfig.ServerName, |
| | | serverIp, |
| | | "", |
| | | "", |
| | | 0, |
| | | 1, |
| | | 0, |
| | |
| | | } |
| | | |
| | | // 往es中插入yolo数据 |
| | | func InsertYolo(msg ruleserver.ResultMsg) { |
| | | func InsertYolo(msg ruleserver.ResultMsg,linkId string) { |
| | | if msg.RuleResult["yolo"] != nil && len(msg.RuleResult["yolo"].([]ruleserver.Result)) > 0 { |
| | | // 先判断一下数据带的规则标签是否有可以插入的 |
| | | flag := false |
| | | for _, res := range msg.RuleResult["yolo"].([]ruleserver.Result) { |
| | | logger.Info("定时器打的数字标签:",res.Others.TimeLabel) |
| | | //logger.Info("定时器打的数字标签:",res.Others.TimeLabel) |
| | | if res.Others.TimeLabel == "01" || res.Others.TimeLabel == "10" { |
| | | flag = true |
| | | } |
| | |
| | | for _, yoloResult := range msg.RuleResult["yolo"].([]ruleserver.Result) { |
| | | if yoloResult.Others.TimeLabel == "01" || yoloResult.Others.TimeLabel == "10" { |
| | | // 拼出sdkname |
| | | logger.Info("应该进来才对的") |
| | | //logger.Info("应该进来才对的") |
| | | sdkNames = sdkNames + yoloResult.SdkName |
| | | alarm := ChangeToString(yoloResult.DefenceState, yoloResult.AlarmLevel) |
| | | alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText, yoloResult.DefenceState}) |
| | |
| | | linkFlag := false |
| | | for _, yoloResult := range msg.RuleResult["yolo"].([]ruleserver.Result) { |
| | | if (yoloResult.Others.TimeLabel == "01" || yoloResult.Others.TimeLabel == "10") && yoloResult.Others.LinkCache != nil && len(yoloResult.Others.LinkCache) > 1{ |
| | | linkId := uuid.NewV4().String() |
| | | for _, msg2 := range yoloResult.Others.LinkCache { |
| | | logger.Warn("插入联动数据","此帧数据的id为",msg2.Cid) |
| | | InsertYolo(msg2) |
| | | InsertYolo(msg2,linkId) |
| | | linkFlag = true |
| | | } |
| | | } |
| | |
| | | if linkFlag { |
| | | // 联动数据中包含本帧数据,插入联动数据后就不需要插入本帧数据了 |
| | | logger.Warn("成功插入两个联动图片") |
| | | os.Exit(1) |
| | | //os.Exit(1) |
| | | return |
| | | } |
| | | //logger.Info("--------走到这儿就不一样") |
| | |
| | | |
| | | url = append(url, strings.Split(resp["fileUrl"].(string), "/")[1]) |
| | | esDataId := uuid.NewV4().String() |
| | | linksId := "" |
| | | if linkId != "" { |
| | | linksId = linkId |
| | | } |
| | | peraction := Personaction{ |
| | | esDataId, |
| | | msg.Cid, |
| | |
| | | "", |
| | | url, |
| | | i.Timestamp, |
| | | linksId, |
| | | "", |
| | | isAlarm, |
| | | 0, |
| | |
| | | []string{strings.Split(resp["fileUrl"].(string), "/")[1]}, |
| | | i.Timestamp, |
| | | "", |
| | | "", |
| | | 0, |
| | | 0, |
| | | 0, |