init.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. package ul
  2. import (
  3. "fmt"
  4. log "github.com/donnie4w/go-logger/logger"
  5. "go.mongodb.org/mongo-driver/bson/primitive"
  6. qu "jygit.jydev.jianyu360.cn/data_processing/common_utils"
  7. )
  8. func InitGlobalVar() {
  9. qu.ReadConfig(&SysConfig) //加载配置文件
  10. initMgo()
  11. initPCD()
  12. }
  13. // 初始化mgo
  14. func initMgo() {
  15. //源数据
  16. s_cfg := *qu.ObjToMap(SysConfig["s_mgo"])
  17. s_local := s_cfg["local"].(bool)
  18. s_addr := qu.ObjToString(s_cfg["addr"])
  19. if s_local {
  20. s_addr = qu.ObjToString(s_cfg["l_addr"])
  21. }
  22. SourceMgo = &MongodbSim{
  23. MongodbAddr: s_addr,
  24. DbName: qu.ObjToString(s_cfg["dbname"]),
  25. Size: 10,
  26. UserName: qu.ObjToString(s_cfg["username"]),
  27. Password: qu.ObjToString(s_cfg["password"]),
  28. }
  29. if s_local {
  30. SourceMgo.InitPoolDirect()
  31. } else {
  32. SourceMgo.InitPool()
  33. }
  34. //企业数据
  35. qy_cfg := *qu.ObjToMap(SysConfig["qy_mgo"])
  36. qy_local := qy_cfg["local"].(bool)
  37. qy_addr := qu.ObjToString(qy_cfg["addr"])
  38. if qy_local {
  39. qy_addr = qu.ObjToString(qy_cfg["l_addr"])
  40. }
  41. QyxyMgo = &MongodbSim{
  42. MongodbAddr: qy_addr,
  43. DbName: qu.ObjToString(qy_cfg["dbname"]),
  44. Size: 10,
  45. UserName: qu.ObjToString(qy_cfg["username"]),
  46. Password: qu.ObjToString(qy_cfg["password"]),
  47. }
  48. if qy_local {
  49. QyxyMgo.InitPoolDirect()
  50. } else {
  51. QyxyMgo.InitPool()
  52. }
  53. }
  54. // 标准化省市区···
  55. func initPCD() {
  56. S_ProvinceDict = make(map[string][]S_Province, 0)
  57. S_CityDict = make(map[string][]S_City, 0)
  58. S_DistrictDict = make(map[string][]S_District, 0)
  59. q := map[string]interface{}{
  60. "town_code": map[string]interface{}{
  61. "$exists": 0,
  62. },
  63. }
  64. dataArr, _ := QyxyMgo.Find("address_jy_2022", q, nil, nil)
  65. for _, tmp := range dataArr {
  66. district_code := qu.IntAll(tmp["district_code"])
  67. city_code := qu.IntAll(tmp["city_code"])
  68. if district_code > 0 {
  69. province := qu.ObjToString(tmp["province"])
  70. city := qu.ObjToString(tmp["city"])
  71. district := qu.ObjToString(tmp["district"])
  72. data := S_District{province, city, district}
  73. if S_DistrictDict[district] == nil {
  74. S_DistrictDict[district] = []S_District{data}
  75. } else {
  76. arr := S_DistrictDict[district]
  77. arr = append(arr, data)
  78. S_DistrictDict[district] = arr
  79. }
  80. } else {
  81. if city_code > 0 {
  82. province := qu.ObjToString(tmp["province"])
  83. city := qu.ObjToString(tmp["city"])
  84. data := S_City{province, city}
  85. if S_CityDict[city] == nil {
  86. S_CityDict[city] = []S_City{data}
  87. } else {
  88. arr := S_CityDict[city]
  89. arr = append(arr, data)
  90. S_CityDict[city] = arr
  91. }
  92. } else {
  93. province := qu.ObjToString(tmp["province"])
  94. data := S_Province{province}
  95. if S_ProvinceDict[province] == nil {
  96. S_ProvinceDict[province] = []S_Province{data}
  97. } else {
  98. arr := S_ProvinceDict[province]
  99. arr = append(arr, data)
  100. S_ProvinceDict[province] = arr
  101. }
  102. }
  103. }
  104. }
  105. log.Debug(fmt.Sprintf("城市配置加载完毕...省~%d 市~%d 区~%d", len(S_ProvinceDict), len(S_CityDict), len(S_DistrictDict)))
  106. }
  107. // 加载规则...
  108. func InitPnameRules() {
  109. //q := map[string]interface{}{"s_field": "projectname", "pid": "5cdd1c70e138234848c1d776", "delete": false}
  110. //rs, _ := ExtMgo.Find("rule_logicback", q, bson.M{"_id": 1}, nil)
  111. //for _, v := range rs {
  112. // s_rule := qu.ObjToString(v["s_rule"])
  113. // tmp := strings.Split(s_rule, "__")
  114. // pattern := tmp[0]
  115. // if len(tmp) == 2 {
  116. // reg := &ExtReg{Reg: regexp.MustCompile(pattern), Replace: tmp[1]}
  117. // RulesPname = append(RulesPname, reg)
  118. // } else {
  119. // reg := &ExtReg{Reg: regexp.MustCompile(pattern), Replace: ""}
  120. // RulesPname = append(RulesPname, reg)
  121. // }
  122. //}
  123. //log.Debug("加载项目名称规则...", len(RulesPname))
  124. }
  125. func IsMarkInterfaceMap(t interface{}) []map[string]interface{} {
  126. p_list := []map[string]interface{}{}
  127. if list_3, ok_3 := t.([]map[string]interface{}); ok_3 {
  128. p_list = list_3
  129. return p_list
  130. }
  131. if yl_list_1, ok_1 := t.(primitive.A); ok_1 {
  132. p_list = qu.ObjArrToMapArr(yl_list_1)
  133. } else {
  134. if yl_list_2, ok_2 := t.([]interface{}); ok_2 {
  135. p_list = qu.ObjArrToMapArr(yl_list_2)
  136. }
  137. }
  138. return p_list
  139. }