init.go 4.4 KB

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