panlei
2019-07-31 81c415b1cfccc2db3dfd437d2da24f11b255fabe
联动任务缓存数据(结构重整)
1个文件已修改
65 ■■■■■ 已修改文件
insertdata/insertDataToEs.go 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
insertdata/insertDataToEs.go
@@ -7,6 +7,7 @@
    "fmt"
    "io/ioutil"
    "net"
    "os"
    "ruleprocess/cache"
    "ruleprocess/logger"
    "strings"
@@ -111,27 +112,34 @@
}
// 往ES插数据
//func InsertToEs(msg ruleserver.ResultMsg) {
//    var timeLabel string
//    // 直接从规则的标签数据里拿符合规则的人脸结果
//    if msg.RuleResult["timeLabel"] != nil {
//        timeLabel = msg.RuleResult["timeLabel"].(string)
//    }
//    logger.Debug("插入数据前看看报警标志位:", timeLabel)
//    if timeLabel == "01" { // 无定时器状态要插入的报警数据
//        InsertFace(msg)
//        flag := ruleserver.BodyIsSame(msg.SdkMessage)
//        if !flag {
//            InsertYolo(msg)
//        }
//    }
//    if timeLabel == "10" { // 定时器状态要插入的首帧报警数据。连带着定时器开启时的那帧
//        InsertFace(msg)
//        InsertYolo(msg)
//    }
//    //if timeLabel == "12" { // 并非报警数据,只是状态改变的数据
//    //    //ChangeStatusFace(msg)
//    //    ChangeStatusYolo(msg)
//    //}
//}
func InsertToEs(msg ruleserver.ResultMsg) {
    var timeLabel string
    // 直接从规则的标签数据里拿符合规则的人脸结果
    if msg.RuleResult["timeLabel"] != nil {
        timeLabel = msg.RuleResult["timeLabel"].(string)
    }
    logger.Debug("插入数据前看看报警标志位:", timeLabel)
    if timeLabel == "01" { // 无定时器状态要插入的报警数据
        InsertFace(msg)
        flag := ruleserver.BodyIsSame(msg.SdkMessage)
        if !flag {
            InsertYolo(msg)
        }
    }
    if timeLabel == "10" { // 定时器状态要插入的首帧报警数据。连带着定时器开启时的那帧
        InsertFace(msg)
        InsertYolo(msg)
    }
    //if timeLabel == "12" { // 并非报警数据,只是状态改变的数据
    //    //ChangeStatusFace(msg)
    //    ChangeStatusYolo(msg)
    InsertFace(msg)
    //flag := ruleserver.BodyIsSame(msg.SdkMessage)
    //if !flag {
    InsertYolo(msg)
    //}
}
@@ -149,7 +157,7 @@
                }
                alarmRules := []AlarmRule{}
                alarm := ChangeToString(faceResult.DefenceState, faceResult.AlarmLevel)
                alarmRules = append(alarmRules, AlarmRule{faceResult.RuleGroupId, alarm, faceResult.RuleText,faceResult.DefenceState})
                alarmRules = append(alarmRules, AlarmRule{faceResult.RuleGroupId, alarm, faceResult.RuleText, faceResult.DefenceState})
                i := protomsg.Image{}
                err = proto.Unmarshal(bdata, &i)
                bigPhotoUrl := make(map[string]interface{})
@@ -314,7 +322,7 @@
    if msg.RuleResult["yolo"] != nil && len(msg.RuleResult["yolo"].([]ruleserver.Result)) > 0 {
        // 先判断一下数据带的规则标签是否有可以插入的
        flag := false
        for _,res := range msg.RuleResult["yolo"].([]ruleserver.Result) {
        for _, res := range msg.RuleResult["yolo"].([]ruleserver.Result) {
            if res.Others["timeLabel"].(string) == "01" || res.Others["timeLabel"].(string) == "10" {
                flag = true
            }
@@ -329,14 +337,14 @@
                    // 拼出sdkname
                    sdkNames = sdkNames + yoloResult.SdkName
                    alarm := ChangeToString(yoloResult.DefenceState, yoloResult.AlarmLevel)
                    alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText,yoloResult.DefenceState})
                    alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText, yoloResult.DefenceState})
                    // 上传缓存数据的图片拿到url
                    if yoloResult.Others["cacheData"] != nil {
                        //InsertYolo(msg.RuleResult["cacheData"].(ruleserver.ResultMsg))
                        // 把缓存的数据上传后得到地址存进去
                        // 解压缩并上传图片
                        msgs :=yoloResult.Others["cacheData"].([]ruleserver.ResultMsg)
                        for _,msg1 := range msgs {
                        msgs := yoloResult.Others["cacheData"].([]ruleserver.ResultMsg)
                        for _, msg1 := range msgs {
                            bdata, err := util.UnCompress(msg1.Data)
                            if err != nil {
                                panic("解压缩图片时出现错误")
@@ -356,8 +364,8 @@
            }
            linkFlag := false
            for _, yoloResult := range msg.RuleResult["yolo"].([]ruleserver.Result) {
                if yoloResult.Others["timeLabel"].(string) == "01" || yoloResult.Others["timeLabel"].(string) == "10" && yoloResult.Others["linkCache"] != nil{
                    for _,msg2 := range yoloResult.Others["linkCache"].([]*ruleserver.ResultMsg) {
                if yoloResult.Others["timeLabel"].(string) == "01" || yoloResult.Others["timeLabel"].(string) == "10" && yoloResult.Others["linkCache"] != nil {
                    for _, msg2 := range yoloResult.Others["linkCache"].([]*ruleserver.ResultMsg) {
                        logger.Warn("插入联动数据")
                        InsertYolo(*msg2)
                        linkFlag = true
@@ -366,6 +374,7 @@
            }
            if linkFlag {
                // 联动数据中包含本帧数据,插入联动数据后就不需要插入本帧数据了
                os.Exit(1)
                return
            }
            isAlarm := 0
@@ -446,7 +455,7 @@
                //os.Exit(1)
            }
        } else {
            logger.Debug("timeLabel条件都不符合!" )
            logger.Debug("timeLabel条件都不符合!")
        }
    }
}