|
@@ -785,15 +785,12 @@ func KeyWordsRepeat(obj map[string]interface{}, aitems []interface{}, c_i, k_i i
|
|
|
if isRepeat(key) || isRepeat(appendkey) {
|
|
|
return true
|
|
|
}
|
|
|
- log.Println("obj", obj)
|
|
|
- //
|
|
|
- keys_before := map[string]bool{}
|
|
|
- keyM := map[string]bool{} //已有的关键词组
|
|
|
- for k, v := range aitems {
|
|
|
+ // 录入的关键词
|
|
|
+ for _, v := range aitems {
|
|
|
if items, ok := v.(map[string]interface{}); ok && len(items) > 0 {
|
|
|
for kk, vv := range items {
|
|
|
if kk == "a_key" {
|
|
|
- for m, n := range qutil.ObjArrToMapArr(vv.([]interface{})) {
|
|
|
+ for _, n := range qutil.ObjArrToMapArr(vv.([]interface{})) {
|
|
|
db_not := []string{}
|
|
|
db_key := []string{}
|
|
|
db_append := []string{}
|
|
@@ -806,51 +803,14 @@ func KeyWordsRepeat(obj map[string]interface{}, aitems []interface{}, c_i, k_i i
|
|
|
if n["appendkey"] != nil {
|
|
|
db_append = qutil.ObjArrToStringArr(n["appendkey"].([]interface{}))
|
|
|
}
|
|
|
- db_matchway := qutil.IntAllDef(n["matchway"], 0)
|
|
|
- if k == c_i && m == k_i {
|
|
|
- for _, v := range append(db_key, db_append...) {
|
|
|
- keys_before[v] = true
|
|
|
- }
|
|
|
- }
|
|
|
- k_m := ""
|
|
|
- if db_matchway == 1 {
|
|
|
- for _, x := range append(db_key, db_append...) {
|
|
|
- k_m = fmt.Sprintf("%s_%s_%v", x, strings.Join(db_not, ""), db_matchway)
|
|
|
- log.Println("--k_m-", k_m)
|
|
|
- keyM[k_m] = true
|
|
|
- }
|
|
|
- } else {
|
|
|
- k_m = fmt.Sprintf("%s_%s_%v", strings.Join(append(db_key, db_append...), ""), strings.Join(db_not, ""), db_matchway)
|
|
|
- keyM[k_m] = true
|
|
|
- log.Println("--k_m-", k_m)
|
|
|
+ if StringArrEqual(key, db_key) && StringArrEqual(notkey, db_not) && qutil.IntAllDef(n["matchway"], 0) == matchway && StringArrEqual(appendkey, db_append) {
|
|
|
+ return true
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- //剔除已存在的关键词 保留新增关键词
|
|
|
- log.Println("keys_before:", keys_before)
|
|
|
- if len(keyM) > 0 {
|
|
|
- if matchway == 1 {
|
|
|
- for _, v := range append(key, appendkey...) {
|
|
|
- if keys_before[v] {
|
|
|
- continue
|
|
|
- }
|
|
|
- k_m2 := fmt.Sprintf("%s_%s_%v", v, strings.Join(notkey, ""), matchway)
|
|
|
- log.Println("--", k_m2)
|
|
|
- if keyM[k_m2] {
|
|
|
- return true
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- k_m2 := fmt.Sprintf("%s_%s_%v", strings.Join(append(key, appendkey...), ""), strings.Join(notkey, ""), matchway)
|
|
|
- log.Println("--", k_m2)
|
|
|
- if keyM[k_m2] {
|
|
|
- return true
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
return false
|
|
|
}
|
|
|
|