xuzhiheng hace 10 meses
padre
commit
13f5bbe3f4
Se han modificado 3 ficheros con 67 adiciones y 24 borrados
  1. 1 0
      zhima/config.go
  2. BIN
      zhima/jianyu_zhima_0829.xlsx
  3. 66 24
      zhima/main.go

+ 1 - 0
zhima/config.go

@@ -14,4 +14,5 @@ type CreditLabel struct {
 	ZhimaName       string `json:"zhima_name"`
 	ZhimaCode       string `json:"zhima_code"`
 	ZhimaDefinition string `json:"zhima_definition"`
+	ZhimaValue      string `json:"zhima_value"`
 }

BIN
zhima/jianyu_zhima_0829.xlsx


+ 66 - 24
zhima/main.go

@@ -3,18 +3,21 @@ package main
 import (
 	"encoding/json"
 	"fmt"
+	"log"
+	"strings"
+	"sync"
+
 	"github.com/xuri/excelize/v2"
 	util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
 	"jygit.jydev.jianyu360.cn/data_processing/common_utils/elastic"
 	"jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
-	"log"
-	"sync"
 )
 
 var (
-	JianZhiLabel = make([]CreditLabel, 0)
-	MgoT         *mongodb.MongodbSim //测试环境链接
-	Es           *elastic.Elastic
+	// JianZhiLabel = make([]CreditLabel, 0)
+	ZhimaMap = map[string]string{}
+	MgoT     *mongodb.MongodbSim //测试环境链接
+	Es       *elastic.Elastic
 )
 
 func Init() {
@@ -38,12 +41,14 @@ func Init() {
 	}
 
 	for i := 1; i < len(rows); i++ {
-		data := CreditLabel{
-			ZhimaToptype: rows[i][0],
-			ZhimaSubtype: rows[i][1],
-			ZhimaName:    rows[i][2],
-		}
-		JianZhiLabel = append(JianZhiLabel, data)
+		// data := CreditLabel{
+		// 	ZhimaToptype: rows[i][0],
+		// 	ZhimaSubtype: rows[i][1],
+		// 	ZhimaName:    rows[i][2],
+		// 	ZhimaValue:   rows[i][4],
+		// }
+		// JianZhiLabel = append(JianZhiLabel, data)
+		ZhimaMap[rows[i][2]] = rows[i][1]
 	}
 
 	//测试环境
@@ -111,7 +116,7 @@ func main() {
 	wg := &sync.WaitGroup{}
 	for tmp := make(map[string]interface{}); it.Next(&tmp); count++ {
 		if count%1000 == 0 {
-			log.Println("current", count, tmp["company_name"], tmp["credit_no"], tmp["_id"])
+			log.Println("current", count)
 		}
 		// 存在芝麻标签,直接跳过
 		//if _, ok := tmp["zhima_labels"]; ok {
@@ -168,8 +173,6 @@ func getCreditLabel(appID, privateKeyPEM, certNo, sceneCode string) (createLabel
 
 	curl := "https://openapi.alipay.com/gateway.do"
 	method := "zhima.credit.ep.acceptance.label.query"
-
-	//createLabels := make([]CreditLabel, 0)
 	bizbyte, _ := json.Marshal(BizContent)
 	priKey, err := parsePrivateKey(privateKeyPEM)
 	if err != nil {
@@ -188,15 +191,20 @@ func getCreditLabel(appID, privateKeyPEM, certNo, sceneCode string) (createLabel
 			if labelContent, ok := (*responseData)["label_content"].([]interface{}); ok {
 				for _, v := range labelContent {
 					label := util.ObjToMap(v)
-					labelName := util.ObjToString((*label)["label_name"])
-					labelCategory := util.ObjToString((*label)["label_category"])
+					labelName := util.ObjToString((*label)["label_name"])         //外显
+					labelCategory := util.ObjToString((*label)["label_category"]) //一级分类
 					labelCode := util.ObjToString((*label)["label_code"])
 					labelDe := util.ObjToString((*label)["label_definition"])
 
-					data := getLabel(labelCategory, labelName)
+					newName, subtype := getLabel(labelName)
+					data := CreditLabel{}
 					data.ZhimaCode = labelCode
 					data.ZhimaDefinition = labelDe
-					if data.ZhimaSubtype != "" {
+					data.ZhimaToptype = labelCategory
+					data.ZhimaSubtype = subtype
+					data.ZhimaName = newName
+					data.ZhimaValue = labelName
+					if subtype != "" {
 						createLabels = append(createLabels, data)
 					}
 				}
@@ -210,16 +218,48 @@ func getCreditLabel(appID, privateKeyPEM, certNo, sceneCode string) (createLabel
 }
 
 // getLabel 根据labelTop  labelName 获取对应芝麻标签
-func getLabel(labelTop, labelName string) (data CreditLabel) {
-	for _, v := range JianZhiLabel {
-		if v.ZhimaToptype == labelTop && v.ZhimaName == labelName {
-			return v
-		}
+func getLabel(labelName string) (newName, subtype string) {
+	// for _, v := range JianZhiLabel {
+	// 	if v.ZhimaToptype == labelTop && v.ZhimaName == labelName {
+	// 		return v
+	// 	}
+	// }
+	newName = getNewName(labelName)
+	subtype = ""
+	if ZhimaMap[newName] != "" {
+		subtype = ZhimaMap[newName]
 	}
-
 	return
 }
 
+func getNewName(name string) string {
+	if strings.Contains(name, "年企业信用") {
+		return "芝麻企业信用等级连续情况"
+	} else if strings.Contains(name, "芝麻企业信用等级") {
+		return "芝麻企业信用等级"
+	} else if strings.Contains(name, "企业信用等级") {
+		return "企业信用等级_个体"
+	} else if strings.Contains(name, "公开项目中标") {
+		return "年度公开项目中标"
+	} else if ZhimaMap[name] != "" {
+		return ZhimaMap[name]
+	} else if strings.Contains(name, "年A级纳税人") {
+		return "A级纳税人连续年限"
+	} else if strings.Contains(name, "年A级纳税人") {
+		return "A级纳税人连续年限"
+	} else if strings.Contains(name, "融资") && strings.Contains(name, "获") {
+		return "获得融资"
+	} else if strings.Contains(name, "融资") && strings.Contains(name, "轮") {
+		return "融资轮次"
+	}
+	for k, _ := range ZhimaMap {
+		if strings.Contains(name, k) {
+			return k
+		}
+	}
+	return ""
+}
+
 func convertToInterfaceSliceEs(labels []CreditLabel) []map[string]interface{} {
 	result := make([]map[string]interface{}, len(labels))
 	for i, label := range labels {
@@ -228,6 +268,7 @@ func convertToInterfaceSliceEs(labels []CreditLabel) []map[string]interface{} {
 			"zhima_subtype":    label.ZhimaSubtype,
 			"zhima_name":       label.ZhimaName,
 			"zhima_definition": label.ZhimaDefinition,
+			"zhima_value":      label.ZhimaValue,
 		}
 	}
 	return result
@@ -242,6 +283,7 @@ func convertToInterfaceSliceMgo(labels []CreditLabel) []map[string]interface{} {
 			"zhima_name":       label.ZhimaName,
 			"zhima_code":       label.ZhimaCode,
 			"zhima_definition": label.ZhimaDefinition,
+			"zhima_value":      label.ZhimaValue,
 		}
 	}
 	return result