|
@@ -167,7 +167,7 @@ func UtilEsFind1(tags map[string]interface{}) (error, int64) {
|
|
|
for k := range ssavekey {
|
|
|
ssavekeys = append(ssavekeys, k)
|
|
|
}
|
|
|
- item["s_matchkey"] = strings.Join(ssavekeys, ",")
|
|
|
+ item["s_matchkey"] = GetMactchKey(maths, item)
|
|
|
item["s_matchtype"] = strings.Join(matchType, ",")
|
|
|
findwinner := strings.TrimSpace(util.ObjToString(item["winner"]))
|
|
|
if findwinner != "" {
|
|
@@ -629,3 +629,60 @@ func method3(arr []string) []string {
|
|
|
}
|
|
|
return sArr
|
|
|
}
|
|
|
+
|
|
|
+func GetMactchKey(match []map[string]string, data map[string]interface{}) string {
|
|
|
+ keyWord := []string{}
|
|
|
+ for _, keys := range match {
|
|
|
+ types := keys["s_keymatch"]
|
|
|
+ key := keys["s_matchkey"]
|
|
|
+ if strings.Contains(types, "1") {
|
|
|
+ title := util.ObjToString(data["title"])
|
|
|
+ keyWord = KeyWordToData(types, title, key, keyWord)
|
|
|
+ }
|
|
|
+ if strings.Contains(types, "2") {
|
|
|
+ detail := util.ObjToString(data["detail"])
|
|
|
+ keyWord = KeyWordToData(types, detail, key, keyWord)
|
|
|
+ }
|
|
|
+ if strings.Contains(types, "3") {
|
|
|
+ purchasing := util.ObjToString(data["purchasing"])
|
|
|
+ keyWord = KeyWordToData(types, purchasing, key, keyWord)
|
|
|
+ }
|
|
|
+ if strings.Contains(types, "4") {
|
|
|
+ filetext := util.ObjToString(data["filetext"])
|
|
|
+ keyWord = KeyWordToData(types, filetext, key, keyWord)
|
|
|
+ }
|
|
|
+ if strings.Contains(types, "5") {
|
|
|
+ projectname := util.ObjToString(data["projectname"])
|
|
|
+ keyWord = KeyWordToData(types, projectname, key, keyWord)
|
|
|
+ }
|
|
|
+ if strings.Contains(types, "6") || strings.Contains(types, "8") {
|
|
|
+ buyer := util.ObjToString(data["buyer"])
|
|
|
+ keyWord = KeyWordToData(types, buyer, key, keyWord)
|
|
|
+ }
|
|
|
+ if strings.Contains(types, "7") || strings.Contains(types, "9") {
|
|
|
+ winner := util.ObjToString(data["s_winner"])
|
|
|
+ keyWord = KeyWordToData(types, winner, key, keyWord)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return strings.Join(keyWord, ",")
|
|
|
+}
|
|
|
+
|
|
|
+func KeyWordToData(types, item, key string, keyWord []string) []string {
|
|
|
+ for _, mk := range strings.Split(key, ",") {
|
|
|
+ if strings.Contains(mk, "&&") {
|
|
|
+ arr := strings.Split(mk, "&&")
|
|
|
+ for _, s := range arr {
|
|
|
+ if s != "" {
|
|
|
+ if strings.Contains(item, s) {
|
|
|
+ keyWord = append(keyWord, s)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if strings.Contains(item, mk) {
|
|
|
+ keyWord = append(keyWord, mk)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return keyWord
|
|
|
+}
|