From 777f3e442294132e15b15e49b3e95ba72695cc7c Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期二, 09 七月 2019 17:45:49 +0800 Subject: [PATCH] 补全比对规则 --- ruleserver/ruleToformula.go | 57 ++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 40 insertions(+), 17 deletions(-) diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go index fad176a..0497a8e 100644 --- a/ruleserver/ruleToformula.go +++ b/ruleserver/ruleToformula.go @@ -233,19 +233,23 @@ } } func Compare(args *SdkDatas, groupRule *protomsg.GroupRule) { - compareFlag := false + compareFlag := 0 + tableIds := "" // 鐪嬬湅鏄惁鏈夊彧閰嶄汉鑴告瘮瀵圭畻娉曚絾娌℃湁閰嶅姣斿簱鐨勮鍒欙紝濡傛灉鏈夛紝鍒欐瘮瀵瑰璞′负鍏ㄩ儴搴曞簱 for j := 0; j < len(groupRule.Rules); j++ { if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972" { // 閰嶄簡浜鸿劯姣斿 - if groupRule.Rules[j].SdkArgAlias == "compareBase" { // 閰嶄簡姣斿鐨勫簳搴� - compareFlag = true + if groupRule.Rules[j].SdkArgAlias == "compareBase" && groupRule.Rules[j].SdkArgValue != "" { // 閰嶄簡姣斿搴曞簱鐨勫弬鏁颁絾娌℃湁閰嶅叏閮ㄥ簳搴� + compareFlag = 2 + tableIds = groupRule.Rules[j].SdkArgValue + "," // 鏈�鍚庝細澶氫竴涓猼ableId锛屽垏鍑烘潵鐨勬暟缁勫彇len-1灏卞彲浠� + } + if groupRule.Rules[j].SdkArgAlias == "compareBase" && groupRule.Rules[j].SdkArgValue == "" { // 閰嶇殑鍙傛暟鏄瘮瀵瑰叏閮ㄥ簳搴� + compareFlag = 1 } } } - if compareFlag { - logger.Info("閰嶇疆浜嗗姣斿簳搴撳弬鏁�") - } else { + if compareFlag == 0 { logger.Info("娌℃湁閰嶇疆瀵规瘮搴曞簱鍙傛暟") + return } for j := 0; j < len(groupRule.Rules); j++ { // 鍙湁鏄汉鑴稿姣斿苟涓旈厤缃殑鍙傛暟鏄姣斿簳搴撴墠璧帮紙鑻ラ厤鐨勫姣旈槇鍊煎垯涓嶈蛋锛� @@ -256,17 +260,36 @@ // 鎷垮尯鍩熶腑姣忎釜浜鸿劯鐗瑰緛鍊煎幓瀵规瘮锛屽~鍏呭叾liker if groupRule.Rules[j].PolygonId == areaMap.areaId { for _, arg := range areaMap.args { - bytes := bigCache.Getdbpersonmsg("", arg.Feature, true) - var m map[string]float32 - err1 := json.Unmarshal(bytes, &m) - if err1 != nil { - logger.Error("getBaseInfo瑙e帇閿欒", err1) + if compareFlag == 1 { + bytes := bigCache.Getdbpersonmsg("", arg.Feature, true) + var m map[string]float32 + err1 := json.Unmarshal(bytes, &m) + if err1 != nil { + logger.Error("getBaseInfo瑙e帇閿欒", err1) + } + for key, val := range m { + fmt.Println(key) + baseinfo := protomsg.Baseinfo{} + baseinfo.CompareScore = val + arg.Liker = append(arg.Liker, &baseinfo) + } } - for key, val := range m { - fmt.Println(key) - baseinfo := protomsg.Baseinfo{} - baseinfo.CompareScore = val - arg.Liker = append(arg.Liker, &baseinfo) + if compareFlag == 2 { + array := strings.Split(tableIds, ",") + for i := 0; i < len(array)-1; i++ { + bytes := bigCache.Getdbpersonmsg(array[i], arg.Feature, true) + var m map[string]float32 + err1 := json.Unmarshal(bytes, &m) + if err1 != nil { + logger.Error("getBaseInfo瑙e帇閿欒", err1) + } + for key, val := range m { + fmt.Println(key) + baseinfo := protomsg.Baseinfo{} + baseinfo.CompareScore = val + arg.Liker = append(arg.Liker, &baseinfo) + } + } } logger.Info("-------------------鎴愬姛缁檒iker璧嬪�硷細", arg.Liker) } @@ -299,7 +322,7 @@ sdkName := sdk.SdkName if ipcId == sdkData.IpcId { - logger.Info("褰撳墠璧扮殑瑙勫垯鐨勭畻娉曟槸--锛�",sdkName,"---") + logger.Info("褰撳墠璧扮殑瑙勫垯鐨勭畻娉曟槸--锛�", sdkName, "---") for _, areaMap := range sdkData.AreaMapList { ruleResult := filterRule(groupRule.Rules[j], &areaMap) if ruleResult.Result != "" { -- Gitblit v1.8.0