init.go 4.5 KB

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