From b9d95191e0326a1a75f3809d75b94638c47c3d43 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期一, 16 十二月 2019 16:58:51 +0800 Subject: [PATCH] --- --- algorithm/middleware/middleware.go | 65 +++++++++++++------------------- 1 files changed, 26 insertions(+), 39 deletions(-) diff --git a/algorithm/middleware/middleware.go b/algorithm/middleware/middleware.go index bd8537d..52973c2 100644 --- a/algorithm/middleware/middleware.go +++ b/algorithm/middleware/middleware.go @@ -73,8 +73,9 @@ //logger.Info("褰撳墠璧扮殑瑙勫垯鏄�--锛�", groupRule.Rules[j],sdkName,groupRule.Rules[j].SdkArgAlias, "---","") for _, areaMap := range sdkData.AreaMapList { ruleResult := CallSo(sdk.Id, groupRule.Rules[j], areaMap,lable,args,message) - if groupRule.Rules[j].RuleWithPre == "contain" { - assembleDta(args,groupRule.Rules[j-1],groupRule.Rules[j]) + logger.Info("鍓嶇疆杩炴帴绗︼細",groupRule.Rules[j]) + if groupRule.Rules[j].RuleWithPre == "鈯�" && len(ruleResult.Target) > 0 { + assembleDta(resultSplice[len(resultSplice)-1].Target,ruleResult.Target,) // 鎶婂綋鍓嶅皬瑙勫垯缁撴灉缃┖ ruleResult = structure.LittleRuleResult{} } @@ -329,7 +330,7 @@ break } } - return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + flag, rule.Sort} + return structure.LittleRuleResult{SdkName:am.SdkName, Result:rule.RuleWithPre + "" + flag, Sort:rule.Sort} } if rule.Operator == "unsatisfy" || rule.Operator == "!=" { // 涓嶆弧瓒虫墍閫夌殑鏃堕棿瑙勫垯 @@ -349,7 +350,7 @@ break } } - return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + flag, rule.Sort} + return structure.LittleRuleResult{SdkName:am.SdkName, Result:rule.RuleWithPre + "" + flag, Sort:rule.Sort} } } @@ -376,7 +377,7 @@ soName = "static.so" case "812b674b-2375-4589-919a-5c1c3278a978": soName = "plate.so" - case "浜轰綋璺熻釜": + case "520af340-f257-4fe2-ac3c-695c390e53dc": soName = "personTrack.so" } //soInfo,err := cache.GetSoInfoById(sdkId) @@ -461,44 +462,30 @@ // } //} -func assembleData(args *structure.SdkDatas,resultSplice []*structure.LittleRuleResult,groupRule protomsg.GroupRule) { - for index,result := range resultSplice { - if strings.Contains(result.Result,"contain") { - assembleDta(args,groupRule.Rules[index-1],groupRule.Rules[index]) - // 鍒犻櫎甯︽湁contain鐨勮鍒欑粨鏋� - resultSplice = append(resultSplice[:index],resultSplice[index+1:]...) +//func assembleData(args *structure.SdkDatas,resultSplice []*structure.LittleRuleResult,groupRule protomsg.GroupRule) { +// for index,result := range resultSplice { +// if strings.Contains(result.Result,"contain") { +// assembleDta(args,groupRule.Rules[index-1],groupRule.Rules[index]) +// // 鍒犻櫎甯︽湁contain鐨勮鍒欑粨鏋� +// resultSplice = append(resultSplice[:index],resultSplice[index+1:]...) +// } +// } +//} +// 濡傛灉瑙勫垯缁勪腑鏈夊寘鍚鍙凤紝鎶婅鍒欑粍涔嬪悗鐨勮鍒欏搴旂殑绠楁硶鍜屽尯鍩熸彁鍙栫殑鏁版嵁瑁呴厤鍒板墠闈㈠幓 +func assembleDta(targets1,targets2 []*structure.Arg) { + if len(targets1) > 0 { + logger.Info("鏈変汉浣擄細",len(targets1)) + for _,target := range targets1 { + mergeArg(target,targets2) + targets2 = nil + return // 瑁呴厤涓�娆″氨鍙互 } } } -// 濡傛灉瑙勫垯缁勪腑鏈夊寘鍚鍙凤紝鎶婅鍒欑粍涔嬪悗鐨勮鍒欏搴旂殑绠楁硶鍜屽尯鍩熸彁鍙栫殑鏁版嵁瑁呴厤鍒板墠闈㈠幓 -func assembleDta(args *structure.SdkDatas,rule1,rule2 *protomsg.Rule) { - // 鎷垮埌鍚庨潰鐨勯偅涓尯鍩熺殑鏁版嵁 - area := structure.AreaMap{} - for _, sdkData := range args.Sdkdata { - for _, areaMap := range sdkData.AreaMapList { - if areaMap.SdkId == rule2.SdkId && areaMap.AreaId == rule2.PolygonId { - area = *areaMap - goto second - } - } - } -second: for _, sdkData := range args.Sdkdata { - for _, areaMap := range sdkData.AreaMapList { - if areaMap.SdkId == rule1.SdkId && areaMap.AreaId == rule1.PolygonId { - // 鎷垮埌鍖呭惈绗︿箣鍓嶇殑鏁版嵁锛岄亶鍘嗚閰� - for _,arg := range areaMap.FilterData { - mergeArg(arg,area) - } - // 娓呯┖浜鸿劯锛屼汉鑴镐笉鍐嶅崟鐙彃鍏ヤ簡 - len(area.FilterData) = 0 - return // 瑁呴厤涓�娆″氨鍙互 - } - } - } -} -func mergeArg(arg *structure.Arg,areaMap structure.AreaMap) { - for _,arg1 := range areaMap.FilterData { +func mergeArg(arg *structure.Arg,targets2 []*structure.Arg) { + for _,arg1 := range targets2 { + logger.Info("浜鸿劯锛�",arg1.Location,arg1.Score) precent := ruleserver.PgsInterPercent(Rect2Point(arg.Location),arg1.Location,1,1) if precent > 99 { arg.AttachArg = arg1.SourceArg -- Gitblit v1.8.0