|
@@ -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
|