|
@@ -365,8 +365,8 @@ func processedData_A(c *Customer, data *tempData) {
|
|
|
EntInfo(findwinner, tmp)
|
|
|
}
|
|
|
}
|
|
|
- //matchKey := map[string]bool{} //记录所有匹配上的关键词
|
|
|
- //matchKeyType := map[string]bool{} //记录关键词对应的匹配方式
|
|
|
+ matchKey := map[string]bool{} //记录所有匹配上的关键词
|
|
|
+ matchKeyType := map[string]bool{} //记录关键词对应的匹配方式
|
|
|
//先获取用到的所有字段值
|
|
|
fieldText := map[string]interface{}{}
|
|
|
for field, _ := range sr.Fields {
|
|
@@ -389,99 +389,99 @@ func processedData_A(c *Customer, data *tempData) {
|
|
|
因为要记录所有匹配上的关键词,所有优先匹配附加词,在匹配关键词
|
|
|
*/
|
|
|
//1.附加词匹配
|
|
|
- //IsMatch := false
|
|
|
- //// common.Debug("sr.AW---", len(sr.AW))
|
|
|
- //for i, aw := range sr.AW {
|
|
|
- // // common.Debug("-------------------------开始附加词匹配--------------------------")
|
|
|
- // IsMatchAddKey := RegMatch(fieldText, aw.MatchType, aw.KeyReg, nil, nil, false, true)
|
|
|
- // // common.Debug(IsMatchAddKey, "------------------------------------------------------------")
|
|
|
- //
|
|
|
- // //2.关键词匹配
|
|
|
- // if IsMatchAddKey {
|
|
|
- // kw := sr.KW[i]
|
|
|
- // // common.Debug("-------------------------开始关键词匹配--------------------------")
|
|
|
- // IsMatchKey := RegMatch(fieldText, kw.MatchType, kw.KeyReg, matchKey, matchKeyType, true, false)
|
|
|
- // // common.Debug(IsMatchKey, "------------------------------------------------------------")
|
|
|
- // if IsMatchKey {
|
|
|
- // IsMatch = true
|
|
|
- // }
|
|
|
- // }
|
|
|
- //}
|
|
|
- //if len(sr.AW) == 0 {
|
|
|
- // IsMatch = true
|
|
|
- //}
|
|
|
- ///*
|
|
|
- // 到此已经匹配完数据
|
|
|
- //*/
|
|
|
- //if !IsMatch {
|
|
|
- // log.Debug("---------------------", zap.String("id", id), zap.Any("IsMatch", IsMatch))
|
|
|
- //}
|
|
|
- //if IsMatch {
|
|
|
- //匹配成功,数据上新增规则id,matchKey,item并临时保存数据
|
|
|
- // tmpMatchKey := MapDataToArr(matchKey)
|
|
|
- //tmpMatchKeyType := MapDataToArr(matchKeyType)
|
|
|
- tmp["matchkey"], tmp["matchtype"] = GetMactchKeys(sr.Maths, tmp)
|
|
|
- //tmp["matchtype"] = strings.Join(tmpMatchKeyType, ",")
|
|
|
- tmp["ruleid"] = sr.ID
|
|
|
- tmp["rulename"] = sr.Name
|
|
|
+ IsMatch := false
|
|
|
+ // common.Debug("sr.AW---", len(sr.AW))
|
|
|
+ for i, aw := range sr.AW {
|
|
|
+ // common.Debug("-------------------------开始附加词匹配--------------------------")
|
|
|
+ IsMatchAddKey := RegMatch(fieldText, aw.MatchType, aw.KeyReg, nil, nil, false, true)
|
|
|
+ // common.Debug(IsMatchAddKey, "------------------------------------------------------------")
|
|
|
|
|
|
- //开始打标签
|
|
|
- //common.Debug("c.IsTagRule+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
|
|
|
- if c.IsTagRule {
|
|
|
- TagRuleFuc(c.AppId, c.PushModel, 1, c.TagRules, sr, tmp, fieldText)
|
|
|
- }
|
|
|
- if c.IsTagRule2 {
|
|
|
- TagRuleFuc(c.AppId, c.PushModel, 2, c.TagRules2, sr, tmp, fieldText)
|
|
|
+ //2.关键词匹配
|
|
|
+ if IsMatchAddKey {
|
|
|
+ kw := sr.KW[i]
|
|
|
+ // common.Debug("-------------------------开始关键词匹配--------------------------")
|
|
|
+ IsMatchKey := RegMatch(fieldText, kw.MatchType, kw.KeyReg, matchKey, matchKeyType, true, false)
|
|
|
+ // common.Debug(IsMatchKey, "------------------------------------------------------------")
|
|
|
+ if IsMatchKey {
|
|
|
+ IsMatch = true
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- if c.IsTagRule3 {
|
|
|
- TagRuleFuc(c.AppId, c.PushModel, 3, c.TagRules3, sr, tmp, fieldText)
|
|
|
+ if len(sr.AW) == 0 {
|
|
|
+ IsMatch = true
|
|
|
}
|
|
|
- //item
|
|
|
- switch c.PushModel {
|
|
|
- case 0:
|
|
|
- tmp["item"] = "数据"
|
|
|
- case 1:
|
|
|
- tmp["item"] = dm.Name
|
|
|
- case 2:
|
|
|
- //tmp["item"] = sr.Name
|
|
|
- case 3:
|
|
|
- tmp["item"] = dm.Name + "_" + sr.Name
|
|
|
- case 4:
|
|
|
- tmp["item"] = sr.Name
|
|
|
+ /*
|
|
|
+ 到此已经匹配完数据
|
|
|
+ */
|
|
|
+ if !IsMatch {
|
|
|
+ log.Debug("---------------------", zap.String("id", id), zap.Any("IsMatch", IsMatch))
|
|
|
}
|
|
|
- //appid
|
|
|
- tmp["appid"] = c.AppId
|
|
|
- //部门名称
|
|
|
- tmp["departname"] = dm.Name
|
|
|
- tmp["departid"] = dm.ID
|
|
|
- //存储数据
|
|
|
- //dm.DataLock.Lock()
|
|
|
- //tmpMap := map[string]interface{}{id: tmp}
|
|
|
- //dm.SaveDataMap[sr.ID] = append(dm.SaveDataMap[sr.ID], tmpMap)
|
|
|
- //dm.DataLock.Unlock()
|
|
|
- //c.saveBeforeChan <- &tempData{dm: dm, rule: sr, data: tmp}
|
|
|
+ if IsMatch {
|
|
|
+ //匹配成功,数据上新增规则id,matchKey,item并临时保存数据
|
|
|
+ // tmpMatchKey := MapDataToArr(matchKey)
|
|
|
+ //tmpMatchKeyType := MapDataToArr(matchKeyType)
|
|
|
+ tmp["matchkey"], tmp["matchtype"] = GetMactchKeys(sr.Maths, tmp)
|
|
|
+ //tmp["matchtype"] = strings.Join(tmpMatchKeyType, ",")
|
|
|
+ tmp["ruleid"] = sr.ID
|
|
|
+ tmp["rulename"] = sr.Name
|
|
|
|
|
|
- m1 := c.RemoveRepeatData(tmp)
|
|
|
- c.saveTempLock.Lock()
|
|
|
- if m1 != nil {
|
|
|
- c.saveTempArr = append(c.saveTempArr, []map[string]interface{}{
|
|
|
- {"_id": mongodb.StringTOBsonId(id)},
|
|
|
- {"$set": m1},
|
|
|
- })
|
|
|
+ //开始打标签
|
|
|
+ //common.Debug("c.IsTagRule+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
|
|
|
+ if c.IsTagRule {
|
|
|
+ TagRuleFuc(c.AppId, c.PushModel, 1, c.TagRules, sr, tmp, fieldText)
|
|
|
+ }
|
|
|
+ if c.IsTagRule2 {
|
|
|
+ TagRuleFuc(c.AppId, c.PushModel, 2, c.TagRules2, sr, tmp, fieldText)
|
|
|
+ }
|
|
|
+ if c.IsTagRule3 {
|
|
|
+ TagRuleFuc(c.AppId, c.PushModel, 3, c.TagRules3, sr, tmp, fieldText)
|
|
|
+ }
|
|
|
+ //item
|
|
|
+ switch c.PushModel {
|
|
|
+ case 0:
|
|
|
+ tmp["item"] = "数据"
|
|
|
+ case 1:
|
|
|
+ tmp["item"] = dm.Name
|
|
|
+ case 2:
|
|
|
+ //tmp["item"] = sr.Name
|
|
|
+ case 3:
|
|
|
+ tmp["item"] = dm.Name + "_" + sr.Name
|
|
|
+ case 4:
|
|
|
+ tmp["item"] = sr.Name
|
|
|
+ }
|
|
|
+ //appid
|
|
|
+ tmp["appid"] = c.AppId
|
|
|
+ //部门名称
|
|
|
+ tmp["departname"] = dm.Name
|
|
|
+ tmp["departid"] = dm.ID
|
|
|
+ //存储数据
|
|
|
+ //dm.DataLock.Lock()
|
|
|
+ //tmpMap := map[string]interface{}{id: tmp}
|
|
|
+ //dm.SaveDataMap[sr.ID] = append(dm.SaveDataMap[sr.ID], tmpMap)
|
|
|
+ //dm.DataLock.Unlock()
|
|
|
+ //c.saveBeforeChan <- &tempData{dm: dm, rule: sr, data: tmp}
|
|
|
+
|
|
|
+ m1 := c.RemoveRepeatData(tmp)
|
|
|
+ c.saveTempLock.Lock()
|
|
|
+ if m1 != nil {
|
|
|
+ c.saveTempArr = append(c.saveTempArr, []map[string]interface{}{
|
|
|
+ {"_id": mongodb.StringTOBsonId(id)},
|
|
|
+ {"$set": m1},
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ c.saveTempArr = append(c.saveTempArr, []map[string]interface{}{
|
|
|
+ {"_id": mongodb.StringTOBsonId(id)},
|
|
|
+ {"$set": tmp},
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if len(c.saveTempArr) > 200 {
|
|
|
+ util.MgoSave.UpSertBulk(c.saveTempColl, c.saveTempArr...)
|
|
|
+ c.saveTempArr = [][]map[string]interface{}{}
|
|
|
+ }
|
|
|
+ c.saveTempLock.Unlock()
|
|
|
} else {
|
|
|
- c.saveTempArr = append(c.saveTempArr, []map[string]interface{}{
|
|
|
- {"_id": mongodb.StringTOBsonId(id)},
|
|
|
- {"$set": tmp},
|
|
|
- })
|
|
|
- }
|
|
|
- if len(c.saveTempArr) > 200 {
|
|
|
- util.MgoSave.UpSertBulk(c.saveTempColl, c.saveTempArr...)
|
|
|
- c.saveTempArr = [][]map[string]interface{}{}
|
|
|
+ //common.Debug("------------", id, IsMatch)
|
|
|
}
|
|
|
- c.saveTempLock.Unlock()
|
|
|
- //} else {
|
|
|
- // common.Debug("------------", id, IsMatch)
|
|
|
- //}
|
|
|
}
|
|
|
|
|
|
// legal_person,company_email,company_phone
|