hp_test.go 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. package main
  2. import (
  3. "fmt"
  4. "strconv"
  5. "testing"
  6. )
  7. func TestGetInvests(t *testing.T) {
  8. //中国核工业集团有限公司
  9. //id := "158308314d4cfdefe6f5e943d4dcaf4e"
  10. id := "fb13a99b48b06f0fa1a083936cab6f88"
  11. res1 := getInvests(id)
  12. wcc_type := 2
  13. fmt.Println("len res1 =>", len(res1))
  14. var res = make([]map[string]interface{}, 0)
  15. var result = make([]map[string]interface{}, 0)
  16. //wcc_type: 1:子公司,2:对外投资,3:母公司
  17. for _, v := range res1 {
  18. v["wcc_type"] = wcc_type
  19. v["level"] = 1
  20. res2 := getInvests(ObjToString(v["company_id"]))
  21. str := fmt.Sprintf("1级公司 %s 子公司数量:%d", v["company_name"], len(res2))
  22. fmt.Println(str)
  23. fmt.Println(v["company_id"])
  24. for _, v2 := range res2 {
  25. v2["wcc_type"] = wcc_type
  26. v2["level"] = 2
  27. res3 := getInvests(ObjToString(v2["company_id"]))
  28. //str2 := fmt.Sprintf("2级公司 %s 子公司数量:%d", v2["company_name"], len(res3))
  29. //fmt.Println(str2)
  30. //fmt.Println(v2["company_name"])
  31. //fmt.Println(v2["company_id"])
  32. for _, v3 := range res3 {
  33. v3["wcc_type"] = wcc_type
  34. v3["level"] = 3
  35. res = append(res, v3)
  36. }
  37. res = append(res, v2)
  38. }
  39. res = append(res, v)
  40. }
  41. //res = DeduplicateByField(res, "company_name")
  42. for _, v := range res {
  43. delete(v, "_id")
  44. stock_proportion := ObjToString(v["stock_proportion"])
  45. proportion, _ := strconv.ParseFloat(stock_proportion, 64)
  46. if proportion > 0.5 {
  47. result = append(result, v)
  48. }
  49. }
  50. fmt.Println("len result =>", len(result))
  51. Mgo.SaveBulk("wcc_tmp", result...)
  52. }
  53. func TestGetSubCompany(t *testing.T) {
  54. //中国核工业集团有限公司
  55. //id := "158308314d4cfdefe6f5e943d4dcaf4e"
  56. id := "fb13a99b48b06f0fa1a083936cab6f88"
  57. res1 := getSubCompany(id)
  58. wcc_type := 1
  59. //res1 = DeduplicateByField(res1, "company_name")
  60. fmt.Println("len res1 =>", len(res1))
  61. var res = make([]map[string]interface{}, 0)
  62. //wcc_type: 1:子公司,2:对外投资,3:母公司
  63. for _, v := range res1 {
  64. v["wcc_type"] = wcc_type
  65. v["level"] = 1
  66. res2 := getSubCompany(ObjToString(v["branch_company_id"]))
  67. //res2 = DeduplicateByField(res2, "company_name")
  68. str := fmt.Sprintf("1级公司 %s 子公司数量:%d", v["company_id"], len(res2))
  69. fmt.Println(str)
  70. //fmt.Println(v["company_name"])
  71. fmt.Println(v["company_id"])
  72. for _, v2 := range res2 {
  73. v2["wcc_type"] = wcc_type
  74. v2["level"] = 2
  75. res3 := getSubCompany(ObjToString(v2["branch_company_id"]))
  76. for _, v3 := range res3 {
  77. v3["wcc_type"] = wcc_type
  78. v3["level"] = 3
  79. res = append(res, v3)
  80. }
  81. res = append(res, v2)
  82. }
  83. res = append(res, v)
  84. }
  85. //res = DeduplicateByField(res, "company_name")
  86. for _, v := range res {
  87. delete(v, "_id")
  88. }
  89. fmt.Println("len result =>", len(res))
  90. Mgo.SaveBulk("wcc_tmp", res...)
  91. }
  92. func TestGetParentByPartner(t *testing.T) {
  93. //中国核工业集团有限公司
  94. //id := "158308314d4cfdefe6f5e943d4dcaf4e"
  95. id := "fb13a99b48b06f0fa1a083936cab6f88"
  96. res1 := getParentsByPartner(id)
  97. wcc_type := 3
  98. fmt.Println("len res1 =>", len(res1))
  99. var res = make([]map[string]interface{}, 0)
  100. var result = make([]map[string]interface{}, 0)
  101. //wcc_type: 1:子公司,2:对外投资,3:母公司
  102. for _, v := range res1 {
  103. fmt.Println(v["stock_name"])
  104. v["wcc_type"] = wcc_type
  105. v["level"] = 1
  106. //
  107. res2 := getParentsByPartner(ObjToString(v["stock_name_id"]))
  108. str := fmt.Sprintf("公司 %s 母公司数量:%d", v["stock_name"], len(res2))
  109. fmt.Println(str)
  110. fmt.Println(v["stock_name_id"])
  111. for _, v2 := range res2 {
  112. v2["wcc_type"] = wcc_type
  113. v2["level"] = 2
  114. res3 := getParentsByPartner(ObjToString(v2["stock_name_id"]))
  115. for _, v3 := range res3 {
  116. v3["wcc_type"] = wcc_type
  117. v3["level"] = 3
  118. res = append(res, v3)
  119. }
  120. res = append(res, v2)
  121. }
  122. res = append(res, v)
  123. }
  124. //res = DeduplicateByField(res, "company_name")
  125. for _, v := range res {
  126. delete(v, "_id")
  127. stock_proportion := ObjToString(v["stock_proportion"])
  128. proportion, _ := strconv.ParseFloat(stock_proportion, 64)
  129. if proportion > 0.5 {
  130. result = append(result, v)
  131. }
  132. }
  133. fmt.Println("len result =>", len(result))
  134. Mgo.SaveBulk("wcc_tmp", result...)
  135. }
  136. func TestGetParentsByBranch(t *testing.T) {
  137. //中国核工业集团有限公司
  138. //id := "158308314d4cfdefe6f5e943d4dcaf4e"
  139. //id := "fb13a99b48b06f0fa1a083936cab6f88"
  140. id := "44ee35643a9a163463fe3cb579af6f03"
  141. res1 := getParentsByBranch(id)
  142. wcc_type := 3
  143. //res1 = DeduplicateByField(res1, "company_name")
  144. fmt.Println("len res1 =>", len(res1))
  145. var res = make([]map[string]interface{}, 0)
  146. //wcc_type: 1:子公司,2:对外投资,3:母公司
  147. for _, v := range res1 {
  148. v["wcc_type"] = wcc_type
  149. v["level"] = 1
  150. res2 := getParentsByBranch(ObjToString(v["company_id"]))
  151. str := fmt.Sprintf("公司 %s 母公司数量:%d", v["company_id"], len(res2))
  152. fmt.Println(str)
  153. for _, v2 := range res2 {
  154. v2["wcc_type"] = wcc_type
  155. v2["level"] = 2
  156. res3 := getParentsByBranch(ObjToString(v2["company_id"]))
  157. for _, v3 := range res3 {
  158. v3["wcc_type"] = wcc_type
  159. v3["level"] = 3
  160. res = append(res, v3)
  161. }
  162. res = append(res, v2)
  163. }
  164. res = append(res, v)
  165. }
  166. for _, v := range res {
  167. delete(v, "_id")
  168. }
  169. fmt.Println("len result =>", len(res))
  170. //Mgo.SaveBulk("wcc_tmp", res...)
  171. }
  172. func TestGetStd(t *testing.T) {
  173. id := "887b154c74bff883c4b889ef37168cd9"
  174. std := getStd(id)
  175. //for k, v := range std {
  176. // fmt.Println("kk", k)
  177. // fmt.Println("vv", v)
  178. //}
  179. fmt.Println(std["company_area"])
  180. }
  181. func TestIsContained(t *testing.T) {
  182. tmp := []interface{}{"中海石油(中国)有限公司", "中海石油(中国)有限公司惠州作业公司", "存续", "1111", "河南", "郑州", "金水"}
  183. tmp2 := []interface{}{"中海石油(中国)有限公司", "中海石油(中国)有限公司惠州作业公司", "存续", "1111", "河南", "郑州", "金水"}
  184. tmp3 := []interface{}{"中海石油(中国)有限公司11", "中海石油(中国)有限公司惠州作业公司11", "存续", "1111", "河南", "郑州", "金水"}
  185. data := make([]interface{}, 0)
  186. data = append(data, tmp3, tmp2, tmp)
  187. if IsContained(tmp, data) {
  188. fmt.Println(111)
  189. } else {
  190. fmt.Println(222)
  191. }
  192. }