|
@@ -6,6 +6,7 @@ import (
|
|
"log"
|
|
"log"
|
|
"strings"
|
|
"strings"
|
|
"sync"
|
|
"sync"
|
|
|
|
+ "unicode"
|
|
|
|
|
|
"github.com/xuri/excelize/v2"
|
|
"github.com/xuri/excelize/v2"
|
|
util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
|
|
util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
|
|
@@ -251,15 +252,63 @@ func getNewName(name string) string {
|
|
return "获得融资"
|
|
return "获得融资"
|
|
} else if strings.Contains(name, "融资") && strings.Contains(name, "轮") {
|
|
} else if strings.Contains(name, "融资") && strings.Contains(name, "轮") {
|
|
return "融资轮次"
|
|
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 {
|
|
for k, _ := range ZhimaMap {
|
|
if strings.Contains(name, k) {
|
|
if strings.Contains(name, k) {
|
|
return k
|
|
return k
|
|
}
|
|
}
|
|
|
|
+ isOk := true
|
|
|
|
+ for _, v := range strings.Split(strs, "年") {
|
|
|
|
+ if !strings.Contains(k, v) && v != "" {
|
|
|
|
+ isOk = false
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if isOk {
|
|
|
|
+ return k
|
|
|
|
+ }
|
|
}
|
|
}
|
|
return ""
|
|
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{} {
|
|
func convertToInterfaceSliceEs(labels []CreditLabel) []map[string]interface{} {
|
|
result := make([]map[string]interface{}, len(labels))
|
|
result := make([]map[string]interface{}, len(labels))
|
|
for i, label := range labels {
|
|
for i, label := range labels {
|