init.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. package util
  2. import (
  3. "data_tidb/config"
  4. "fmt"
  5. "go.uber.org/zap"
  6. util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
  7. "jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
  8. "jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
  9. "jygit.jydev.jianyu360.cn/data_processing/common_utils/mysqldb"
  10. "os"
  11. )
  12. var ( //通用
  13. MongoB, MongoP *mongodb.MongodbSim
  14. MysqlTool *mysqldb.Mysql
  15. RegionCode = make(map[string]string, 5000)
  16. BuyerClassCode = make(map[string]string, 100)
  17. TopSubtypeCode = make(map[string]map[string]string, 100)
  18. FileTypeArr = []string{"pdf", "doc", "docx", "xlsx", "xls", "jpg", "zip", "rar", "txt", "gif", "png", "bmp", "swf", "html"}
  19. )
  20. const (
  21. T_dwd_f_bid_baseinfo = "dwd_f_bid_baseinfo"
  22. T_dwd_f_bid_detail = "dwd_f_bid_detail"
  23. T_dwd_f_bid_expand_baseinfo = "dwd_f_bid_expand_baseinfo"
  24. T_dwd_f_bid_file_baseinfo = "dwd_f_bid_file_baseinfo"
  25. T_dwd_f_bid_file_text = "dwd_f_bid_file_text"
  26. T_dwd_f_bid_intention_baseinfo = "dwd_f_bid_intention_baseinfo"
  27. T_dwd_f_bid_package_baseinfo = "dwd_f_bid_package_baseinfo"
  28. T_dwd_f_bid_package_bidder_baseinfo = "dwd_f_bid_package_bidder_baseinfo"
  29. T_dwd_f_bid_package_goods_baseinfo = "dwd_f_bid_package_goods_baseinfo"
  30. )
  31. func InitInfo() {
  32. config.Init("./common.toml")
  33. InitLog()
  34. InitMgo()
  35. InitMysql()
  36. InitField()
  37. log.Info("init success")
  38. }
  39. // InitLog @Description
  40. // @Author J 2022/7/26 15:30
  41. func InitLog() {
  42. logcfg := config.Conf.Log
  43. err := log.InitLog(
  44. log.Path(logcfg.LogPath),
  45. log.Level(logcfg.LogLevel),
  46. log.Compress(logcfg.Compress),
  47. log.MaxSize(logcfg.MaxSize),
  48. log.MaxBackups(logcfg.MaxBackups),
  49. log.MaxAge(logcfg.MaxAge),
  50. log.Format(logcfg.Format),
  51. )
  52. if err != nil {
  53. fmt.Printf("InitLog failed: %v\n", err)
  54. os.Exit(1)
  55. }
  56. }
  57. func InitMgo() {
  58. MongoB = &mongodb.MongodbSim{
  59. MongodbAddr: config.Conf.DB.MongoB.Addr,
  60. DbName: config.Conf.DB.MongoB.Dbname,
  61. Size: config.Conf.DB.MongoB.Size,
  62. UserName: config.Conf.DB.MongoB.User,
  63. Password: config.Conf.DB.MongoB.Password,
  64. }
  65. MongoB.InitPool()
  66. MongoP = &mongodb.MongodbSim{
  67. MongodbAddr: config.Conf.DB.MongoP.Addr,
  68. DbName: config.Conf.DB.MongoP.Dbname,
  69. Size: config.Conf.DB.MongoP.Size,
  70. UserName: config.Conf.DB.MongoP.User,
  71. Password: config.Conf.DB.MongoP.Password,
  72. }
  73. MongoP.InitPool()
  74. }
  75. func InitMysql() {
  76. dbcfg := config.Conf.DB.Mysql
  77. MysqlTool = &mysqldb.Mysql{
  78. Address: dbcfg.Addr,
  79. DBName: dbcfg.Dbname,
  80. UserName: dbcfg.User,
  81. PassWord: dbcfg.Password,
  82. }
  83. MysqlTool.Init()
  84. }
  85. func InitField() {
  86. info := MysqlTool.Find("code_area", nil, "", "", -1, -1)
  87. for _, m := range *info {
  88. var key string
  89. for i, v := range []string{"area", "city", "district"} {
  90. if i == 0 && util.ObjToString(m[v]) != "" {
  91. key = util.ObjToString(m[v])
  92. } else if util.ObjToString(m[v]) != "" {
  93. key += "," + util.ObjToString(m[v])
  94. }
  95. }
  96. RegionCode[key] = util.ObjToString(m["code"])
  97. }
  98. log.Info("InitField", zap.Int("RegionCode", len(RegionCode)))
  99. info1 := MysqlTool.Find("code_bidtopsubtype", nil, "", "", -1, -1)
  100. for _, v := range *info1 {
  101. name := util.ObjToString(v["name"])
  102. code := util.ObjToString(v["code"])
  103. pcode := util.ObjToString(v["pcode"])
  104. level := util.IntAll(v["level"])
  105. if level == 1 {
  106. TopSubtypeCode[name] = map[string]string{
  107. "code": code,
  108. }
  109. } else if level == 2 {
  110. match_name := ""
  111. for k1, v1 := range TopSubtypeCode {
  112. if v1["code"] == pcode {
  113. match_name = k1
  114. break
  115. }
  116. }
  117. data := TopSubtypeCode[match_name]
  118. data[name] = code
  119. TopSubtypeCode[match_name] = data
  120. } else {
  121. }
  122. }
  123. log.Info("InitField", zap.Int("TopSubtypeCode", len(TopSubtypeCode)))
  124. }
  125. // 插入并打印信息
  126. func InsertGlobalMysqlData(name string, data map[string]interface{}, mark string) int64 {
  127. inb := MysqlTool.Insert(name, data)
  128. if inb == -1 {
  129. log.Info("插入数据异常", zap.String(name, mark))
  130. }
  131. return inb
  132. }