package main import ( "fmt" "strconv" "testing" ) func TestGetInvests(t *testing.T) { //中国核工业集团有限公司 //id := "158308314d4cfdefe6f5e943d4dcaf4e" id := "fb13a99b48b06f0fa1a083936cab6f88" res1 := getInvests(id) wcc_type := 2 fmt.Println("len res1 =>", len(res1)) var res = make([]map[string]interface{}, 0) var result = make([]map[string]interface{}, 0) //wcc_type: 1:子公司,2:对外投资,3:母公司 for _, v := range res1 { v["wcc_type"] = wcc_type v["level"] = 1 res2 := getInvests(ObjToString(v["company_id"])) str := fmt.Sprintf("1级公司 %s 子公司数量:%d", v["company_name"], len(res2)) fmt.Println(str) fmt.Println(v["company_id"]) for _, v2 := range res2 { v2["wcc_type"] = wcc_type v2["level"] = 2 res3 := getInvests(ObjToString(v2["company_id"])) //str2 := fmt.Sprintf("2级公司 %s 子公司数量:%d", v2["company_name"], len(res3)) //fmt.Println(str2) //fmt.Println(v2["company_name"]) //fmt.Println(v2["company_id"]) for _, v3 := range res3 { v3["wcc_type"] = wcc_type v3["level"] = 3 res = append(res, v3) } res = append(res, v2) } res = append(res, v) } //res = DeduplicateByField(res, "company_name") for _, v := range res { delete(v, "_id") stock_proportion := ObjToString(v["stock_proportion"]) proportion, _ := strconv.ParseFloat(stock_proportion, 64) if proportion > 0.5 { result = append(result, v) } } fmt.Println("len result =>", len(result)) Mgo.SaveBulk("wcc_tmp", result...) } func TestGetSubCompany(t *testing.T) { //中国核工业集团有限公司 //id := "158308314d4cfdefe6f5e943d4dcaf4e" id := "fb13a99b48b06f0fa1a083936cab6f88" res1 := getSubCompany(id) wcc_type := 1 //res1 = DeduplicateByField(res1, "company_name") fmt.Println("len res1 =>", len(res1)) var res = make([]map[string]interface{}, 0) //wcc_type: 1:子公司,2:对外投资,3:母公司 for _, v := range res1 { v["wcc_type"] = wcc_type v["level"] = 1 res2 := getSubCompany(ObjToString(v["branch_company_id"])) //res2 = DeduplicateByField(res2, "company_name") str := fmt.Sprintf("1级公司 %s 子公司数量:%d", v["company_id"], len(res2)) fmt.Println(str) //fmt.Println(v["company_name"]) fmt.Println(v["company_id"]) for _, v2 := range res2 { v2["wcc_type"] = wcc_type v2["level"] = 2 res3 := getSubCompany(ObjToString(v2["branch_company_id"])) for _, v3 := range res3 { v3["wcc_type"] = wcc_type v3["level"] = 3 res = append(res, v3) } res = append(res, v2) } res = append(res, v) } //res = DeduplicateByField(res, "company_name") for _, v := range res { delete(v, "_id") } fmt.Println("len result =>", len(res)) Mgo.SaveBulk("wcc_tmp", res...) } func TestGetParentByPartner(t *testing.T) { //中国核工业集团有限公司 //id := "158308314d4cfdefe6f5e943d4dcaf4e" id := "fb13a99b48b06f0fa1a083936cab6f88" res1 := getParentsByPartner(id) wcc_type := 3 fmt.Println("len res1 =>", len(res1)) var res = make([]map[string]interface{}, 0) var result = make([]map[string]interface{}, 0) //wcc_type: 1:子公司,2:对外投资,3:母公司 for _, v := range res1 { fmt.Println(v["stock_name"]) v["wcc_type"] = wcc_type v["level"] = 1 // res2 := getParentsByPartner(ObjToString(v["stock_name_id"])) str := fmt.Sprintf("公司 %s 母公司数量:%d", v["stock_name"], len(res2)) fmt.Println(str) fmt.Println(v["stock_name_id"]) for _, v2 := range res2 { v2["wcc_type"] = wcc_type v2["level"] = 2 res3 := getParentsByPartner(ObjToString(v2["stock_name_id"])) for _, v3 := range res3 { v3["wcc_type"] = wcc_type v3["level"] = 3 res = append(res, v3) } res = append(res, v2) } res = append(res, v) } //res = DeduplicateByField(res, "company_name") for _, v := range res { delete(v, "_id") stock_proportion := ObjToString(v["stock_proportion"]) proportion, _ := strconv.ParseFloat(stock_proportion, 64) if proportion > 0.5 { result = append(result, v) } } fmt.Println("len result =>", len(result)) Mgo.SaveBulk("wcc_tmp", result...) } func TestGetParentsByBranch(t *testing.T) { //中国核工业集团有限公司 //id := "158308314d4cfdefe6f5e943d4dcaf4e" //id := "fb13a99b48b06f0fa1a083936cab6f88" id := "44ee35643a9a163463fe3cb579af6f03" res1 := getParentsByBranch(id) wcc_type := 3 //res1 = DeduplicateByField(res1, "company_name") fmt.Println("len res1 =>", len(res1)) var res = make([]map[string]interface{}, 0) //wcc_type: 1:子公司,2:对外投资,3:母公司 for _, v := range res1 { v["wcc_type"] = wcc_type v["level"] = 1 res2 := getParentsByBranch(ObjToString(v["company_id"])) str := fmt.Sprintf("公司 %s 母公司数量:%d", v["company_id"], len(res2)) fmt.Println(str) for _, v2 := range res2 { v2["wcc_type"] = wcc_type v2["level"] = 2 res3 := getParentsByBranch(ObjToString(v2["company_id"])) for _, v3 := range res3 { v3["wcc_type"] = wcc_type v3["level"] = 3 res = append(res, v3) } res = append(res, v2) } res = append(res, v) } for _, v := range res { delete(v, "_id") } fmt.Println("len result =>", len(res)) //Mgo.SaveBulk("wcc_tmp", res...) } func TestGetStd(t *testing.T) { id := "887b154c74bff883c4b889ef37168cd9" std := getStd(id) //for k, v := range std { // fmt.Println("kk", k) // fmt.Println("vv", v) //} fmt.Println(std["company_area"]) } func TestIsContained(t *testing.T) { tmp := []interface{}{"中海石油(中国)有限公司", "中海石油(中国)有限公司惠州作业公司", "存续", "1111", "河南", "郑州", "金水"} tmp2 := []interface{}{"中海石油(中国)有限公司", "中海石油(中国)有限公司惠州作业公司", "存续", "1111", "河南", "郑州", "金水"} tmp3 := []interface{}{"中海石油(中国)有限公司11", "中海石油(中国)有限公司惠州作业公司11", "存续", "1111", "河南", "郑州", "金水"} data := make([]interface{}, 0) data = append(data, tmp3, tmp2, tmp) if IsContained(tmp, data) { fmt.Println(111) } else { fmt.Println(222) } }