xuzhiheng 10 månader sedan
förälder
incheckning
bf0aaf24e3
1 ändrade filer med 49 tillägg och 0 borttagningar
  1. 49 0
      zhima/main.go

+ 49 - 0
zhima/main.go

@@ -6,6 +6,7 @@ import (
 	"log"
 	"strings"
 	"sync"
+	"unicode"
 
 	"github.com/xuri/excelize/v2"
 	util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
@@ -251,15 +252,63 @@ func getNewName(name string) string {
 		return "获得融资"
 	} else if strings.Contains(name, "融资") && strings.Contains(name, "轮") {
 		return "融资轮次"
+	} else if strings.Contains(name, "年网络销量前") && strings.Contains(name, "%") {
+		return "年度网络销量靠前_百分比"
+	} else if strings.Contains(name, "季度网络销量前") && strings.Contains(name, "%") {
+		return "季度网络销量靠前_百分比"
+	} else if strings.Contains(name, "月销量全网前") && strings.Contains(name, "%") {
+		return "月度网络销量靠前_百分比"
+	} else if strings.Contains(name, "年网络销量前") {
+		return "年度网络销量靠前"
+	} else if strings.Contains(name, "季度网络销量前") {
+		return "季度网络销量靠前"
+	} else if strings.Contains(name, "月销量全网前") {
+		return "月度网络销量靠前"
 	}
+	strs := RemoveNumbers(name)
+	strs = RemoveSpecialChars(strs)
+	strs = strings.ReplaceAll(strs, "前", "")
 	for k, _ := range ZhimaMap {
 		if strings.Contains(name, k) {
 			return k
 		}
+		isOk := true
+		for _, v := range strings.Split(strs, "年") {
+			if !strings.Contains(k, v) && v != "" {
+				isOk = false
+			}
+		}
+		if isOk {
+			return k
+		}
 	}
 	return ""
 }
 
+// RemoveSpecialChars 去除字符串中的特定字符,如%、「、」
+func RemoveSpecialChars(s string) string {
+	var sb strings.Builder
+	for _, r := range s {
+		// 检查字符是否不是%、「或」
+		// 注意:「的Unicode码点是0x300C,」的Unicode码点是0x300D
+		if r != '%' && r != rune(0x300C) && r != rune(0x300D) {
+			sb.WriteRune(r)
+		}
+	}
+	return sb.String()
+}
+
+// RemoveNumbers 从字符串中移除所有数字
+func RemoveNumbers(s string) string {
+	var sb strings.Builder
+	for _, r := range s {
+		if !unicode.IsDigit(r) {
+			sb.WriteRune(r)
+		}
+	}
+	return sb.String()
+}
+
 func convertToInterfaceSliceEs(labels []CreditLabel) []map[string]interface{} {
 	result := make([]map[string]interface{}, len(labels))
 	for i, label := range labels {