panlei
2019-08-19 72e41acfd7beda596b426af683024cdfb86c3ea7
so外加控制
4个文件已修改
108 ■■■■ 已修改文件
algorithm/face/face.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
algorithm/intrusion/intrusion.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
algorithm/personUnsual/personUnsual.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruleserver/ruleToformula.go 102 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
algorithm/face/face.go
@@ -9,7 +9,7 @@
)
// 人脸算法
func Entrance(rule *protomsg.Rule, am *structure.AreaMap) structure.LittleRuleResult {
    logger.Debug("---------走了人脸算法")
    logger.Debug("---------走了人脸算法",rule.Id,rule.SdkArgAlias,rule.Operator,rule.SdkArgValue,am.AreaId)
    return filterRule(rule,am)
}
algorithm/intrusion/intrusion.go
@@ -12,7 +12,7 @@
func Entrance(rule *protomsg.Rule, am *structure.AreaMap) structure.LittleRuleResult {
    if rule.PolygonId == am.AreaId { // 首先这条规则得是这个算法的规则,其次规则所对应的区域id要跟区域数据的id对的上
        if rule.SdkArgAlias == "score" || rule.SdkArgAlias == "proportion" || rule.SdkArgAlias == "size" { // 判断的是相似值,占比,尺寸等过滤条件,如果再有,还可以再加
            logger.Debug("---------走了入侵算法")
            logger.Debug("---------走了入侵算法",rule.Id,rule.SdkArgAlias,rule.Operator,rule.SdkArgValue,am.AreaId)
            return filterRule(rule, am)
        } else {
            return structure.LittleRuleResult{}
algorithm/personUnsual/personUnsual.go
@@ -11,7 +11,7 @@
// 人员异常算法
func Entrance(rule *protomsg.Rule, am *structure.AreaMap) structure.LittleRuleResult {
    if rule.PolygonId == am.AreaId { // 首先这条规则得是这个算法的规则,其次规则所对应的区域id要跟区域数据的id对的上
        logger.Debug("---------走了人员异常算法")
        logger.Debug("---------走了人员异常算法",rule.Id,rule.SdkArgAlias,rule.Operator,rule.SdkArgValue,am.AreaId)
        if rule.SdkArgAlias == "score" || rule.SdkArgAlias == "proportion" || rule.SdkArgAlias == "size" { // 判断的是相似值,占比,尺寸等过滤条件,如果再有,还可以再加
            return filterRule(rule, am)
        } else if rule.SdkArgAlias == "objCount" {
ruleserver/ruleToformula.go
@@ -151,34 +151,36 @@
    polygonId := ""
    // 先过完条件规则
    for j := 0; j < len(groupRule.Rules); j++ {
        for _, sdkData := range args.Sdkdata {
            // 根据规则的sdkId查出其对应的ipcId,用ipcId去找该比对的数据
            sdk, err := cache.GetSdkById(groupRule.Rules[j].SdkId)
            if err != nil {
                logger.Error("没查到sdk的信息---", err)
            }
            ipcId := sdk.IpcId
            sdkName := sdk.SdkName
            //logger.Info("规则的ipcId与sdkData的IpcId:", ipcId, "===", sdkData.IpcId)
            if ipcId == sdkData.IpcId {
                //logger.Info("当前走的规则是--:", sdkName, "---","")
                for _, areaMap := range sdkData.AreaMapList {
                    ruleResult := CallSo(sdk.Id,groupRule.Rules[j],areaMap)
                    if ruleResult.Result != "" {
                        logger.Info("条件规则结果:", ruleResult.Result)
                        // 如果结果为真,把这条规则中的区域置为有效
                        if strings.Contains(ruleResult.Result, "true") {
                            areaMap.IsEffective = true
        if groupRule.Rules[j].SdkArgAlias == "score" || groupRule.Rules[j].SdkArgAlias == "proportion" || groupRule.Rules[j].SdkArgAlias == "size" {
            for _, sdkData := range args.Sdkdata {
                // 根据规则的sdkId查出其对应的ipcId,用ipcId去找该比对的数据
                sdk, err := cache.GetSdkById(groupRule.Rules[j].SdkId)
                if err != nil {
                    logger.Error("没查到sdk的信息---", err)
                }
                ipcId := sdk.IpcId
                sdkName := sdk.SdkName
                //logger.Info("规则的ipcId与sdkData的IpcId:", ipcId, "===", sdkData.IpcId)
                if ipcId == sdkData.IpcId {
                    //logger.Info("当前走的规则是--:", sdkName, "---","")
                    for _, areaMap := range sdkData.AreaMapList {
                        ruleResult := CallSo(sdk.Id,groupRule.Rules[j],areaMap)
                        if ruleResult.Result != "" {
                            logger.Info("条件规则结果:", ruleResult.Result)
                            // 如果结果为真,把这条规则中的区域置为有效
                            if strings.Contains(ruleResult.Result, "true") {
                                areaMap.IsEffective = true
                            }
                            // 如果此结果为真且当前过的是yolo算法,应记下此规则所对应的sdkName,另外,还要去重 (后加:把此条触碰的区域id也记录下来)
                            if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) {
                                sdkNames = sdkName + ","
                                polygonId = groupRule.Rules[j].PolygonId + ","
                            }
                            if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(polygonId, groupRule.Rules[j].PolygonId) {
                                polygonId = groupRule.Rules[j].PolygonId + ","
                            }
                            resultSplice = append(resultSplice, &ruleResult)
                        }
                        // 如果此结果为真且当前过的是yolo算法,应记下此规则所对应的sdkName,另外,还要去重 (后加:把此条触碰的区域id也记录下来)
                        if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) {
                            sdkNames = sdkName + ","
                            polygonId = groupRule.Rules[j].PolygonId + ","
                        }
                        if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(polygonId, groupRule.Rules[j].PolygonId) {
                            polygonId = groupRule.Rules[j].PolygonId + ","
                        }
                        resultSplice = append(resultSplice, &ruleResult)
                    }
                }
            }
@@ -187,29 +189,31 @@
    // 再过其他数据 这步直接得到结果(真或假) 过目标数量
    for j := 0; j < len(groupRule.Rules); j++ {
        for _, sdkData := range args.Sdkdata {
            // 根据规则的sdkId查出其对应的ipcId,用ipcId去找该比对的数据
            sdk, err := cache.GetSdkById(groupRule.Rules[j].SdkId)
            if err != nil {
                logger.Error("没查到sdk的信息---", err)
            }
            ipcId := sdk.IpcId
            sdkName := sdk.SdkName
            if ipcId == sdkData.IpcId {
                for _, areaMap := range sdkData.AreaMapList {
                    ruleResult := CallSo(sdk.Id,groupRule.Rules[j],areaMap)
                    if ruleResult.Result != "" {
                        if strings.Contains(ruleResult.Result, "true") {
                            areaMap.IsEffective = true
        if groupRule.Rules[j].SdkArgAlias == "objCount" {
            for _, sdkData := range args.Sdkdata {
                // 根据规则的sdkId查出其对应的ipcId,用ipcId去找该比对的数据
                sdk, err := cache.GetSdkById(groupRule.Rules[j].SdkId)
                if err != nil {
                    logger.Error("没查到sdk的信息---", err)
                }
                ipcId := sdk.IpcId
                sdkName := sdk.SdkName
                if ipcId == sdkData.IpcId {
                    for _, areaMap := range sdkData.AreaMapList {
                        ruleResult := CallSo(sdk.Id,groupRule.Rules[j],areaMap)
                        if ruleResult.Result != "" {
                            if strings.Contains(ruleResult.Result, "true") {
                                areaMap.IsEffective = true
                            }
                            logger.Info("数量规则结果:", ruleResult.Result)
                            if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) {
                                sdkNames = sdkName + ","
                            }
                            if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(polygonId, groupRule.Rules[j].PolygonId) {
                                polygonId = groupRule.Rules[j].PolygonId + ","
                            }
                            resultSplice = append(resultSplice, &ruleResult)
                        }
                        logger.Info("数量规则结果:", ruleResult.Result)
                        if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) {
                            sdkNames = sdkName + ","
                        }
                        if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(polygonId, groupRule.Rules[j].PolygonId) {
                            polygonId = groupRule.Rules[j].PolygonId + ","
                        }
                        resultSplice = append(resultSplice, &ruleResult)
                    }
                }
            }