From 1ea27965df17bf8326455e207cf73a5094357282 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期三, 11 九月 2019 09:47:53 +0800 Subject: [PATCH] merge labelFilter --- algorithm/middleware/middleware.go | 65 ++++++++++++++++++++++++++------ 1 files changed, 53 insertions(+), 12 deletions(-) diff --git a/algorithm/middleware/middleware.go b/algorithm/middleware/middleware.go index 3a1cd36..5316a62 100644 --- a/algorithm/middleware/middleware.go +++ b/algorithm/middleware/middleware.go @@ -12,13 +12,13 @@ "time" ) -func Entrance (args *structure.SdkDatas,groupRule protomsg.GroupRule) { +func Entrance (args *structure.SdkDatas,groupRule protomsg.GroupRule) ([]*structure.LittleRuleResult,string,string){ resultSplice := []*structure.LittleRuleResult{} sdkNames := "" polygonId := "" // 鍏堣繃瀹屾潯浠惰鍒� for j := 0; j < len(groupRule.Rules); j++ { - if groupRule.Rules[j].SdkArgAlias == "score" || groupRule.Rules[j].SdkArgAlias == "proportion" || groupRule.Rules[j].SdkArgAlias == "size" { + if groupRule.Rules[j].SdkArgAlias == "score" || groupRule.Rules[j].SdkArgAlias == "proportion" || groupRule.Rules[j].SdkArgAlias == "size" || (groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && groupRule.Rules[j].SdkArgAlias != "time_rule"){ for _, sdkData := range args.Sdkdata { // 鏍规嵁瑙勫垯鐨剆dkId鏌ュ嚭鍏跺搴旂殑ipcId锛岀敤ipcId鍘绘壘璇ユ瘮瀵圭殑鏁版嵁 sdk, err := cache.GetSdkById(groupRule.Rules[j].SdkId) @@ -53,7 +53,42 @@ } } } - + for j := 0; j < len(groupRule.Rules); j++ { + if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && groupRule.Rules[j].SdkArgAlias != "time_rule"{ + for _, sdkData := range args.Sdkdata { + // 鏍规嵁瑙勫垯鐨剆dkId鏌ュ嚭鍏跺搴旂殑ipcId锛岀敤ipcId鍘绘壘璇ユ瘮瀵圭殑鏁版嵁 + sdk, err := cache.GetSdkById(groupRule.Rules[j].SdkId) + if err != nil { + logger.Error("娌℃煡鍒皊dk鐨勪俊鎭�---", err) + } + ipcId := sdk.IpcId + sdkName := sdk.SdkName + //logger.Info("瑙勫垯鐨刬pcId涓巗dkData鐨処pcId:", 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 + } + // 濡傛灉姝ょ粨鏋滀负鐪熶笖褰撳墠杩囩殑鏄痽olo绠楁硶锛屽簲璁颁笅姝よ鍒欐墍瀵瑰簲鐨剆dkName,鍙﹀锛岃繕瑕佸幓閲� (鍚庡姞锛氭妸姝ゆ潯瑙︾鐨勫尯鍩焛d涔熻褰曚笅鏉�) + 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) + } + } + } + } + } + } // 鍐嶈繃鍏朵粬鏁版嵁 杩欐鐩存帴寰楀埌缁撴灉锛堢湡鎴栧亣锛� 杩囩洰鏍囨暟閲� for j := 0; j < len(groupRule.Rules); j++ { if groupRule.Rules[j].SdkArgAlias == "objCount" { @@ -115,6 +150,7 @@ } } } + return resultSplice,sdkNames,polygonId } func timeRuleResult(rule *protomsg.Rule, am *structure.AreaMap) structure.LittleRuleResult { @@ -176,16 +212,21 @@ func CallSo(sdkId string,rule *protomsg.Rule, am *structure.AreaMap) structure.LittleRuleResult{ // 鏍规嵁sdkId鏌ュ嚭鍏跺搴旂殑sdk鐨剆oName锛岃皟鐢ㄧ浉搴攕o鐨凟ntrance鏂规硶 - var soName = "" - if sdkId == "812b674b-2375-4589-919a-5c1c3278a97e" { - soName = "face.so" - } else if sdkId == "812b674b-2375-4589-919a-5c1c3278a975"{ - soName = "intrusion.so" - } else if sdkId == "812b674b-2375-4589-919a-5c1c3278a976" { - soName = "personUnsual.so" - } else if sdkId == "812b674b-2375-4589-919a-5c1c3278a972" { - soName = "faceCompare.so" + //var soName = "" + //if sdkId == "812b674b-2375-4589-919a-5c1c3278a97e" { + // soName = "face.so" + //} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a975"{ + // soName = "intrusion.so" + //} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a976" { + // soName = "personUnsual.so" + //} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a972" { + // soName = "faceCompare.so" + //} + soInfo,errr := cache.GetSoInfoById(sdkId) + if errr != nil { + panic("娌¤鍒版敞鍐岃〃") } + soName := soInfo.SoName p,err := plugin.Open("./algorithm/"+soName) if err != nil { panic(err) -- Gitblit v1.8.0