init.go 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. package main
  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. )
  23. var ( //标讯
  24. BaseField []string
  25. BaseVMap map[string]interface{}
  26. ExpandField []string
  27. ExpandVMap map[string]interface{}
  28. )
  29. var ( //项目
  30. ProField []string
  31. ProVMap map[string]interface{}
  32. ProBusField []string
  33. ProBusVMap map[string]interface{}
  34. FileTypeArr = []string{"pdf", "doc", "docx", "xlsx", "xls", "jpg", "zip", "rar", "txt", "gif", "png", "bmp", "swf", "html"}
  35. )
  36. func InitInfo() {
  37. config.Init("./common.toml")
  38. InitLog()
  39. InitMgo()
  40. InitMysql()
  41. InitField()
  42. log.Info("init success")
  43. }
  44. // InitLog @Description
  45. // @Author J 2022/7/26 15:30
  46. func InitLog() {
  47. logcfg := config.Conf.Log
  48. err := log.InitLog(
  49. log.Path(logcfg.LogPath),
  50. log.Level(logcfg.LogLevel),
  51. log.Compress(logcfg.Compress),
  52. log.MaxSize(logcfg.MaxSize),
  53. log.MaxBackups(logcfg.MaxBackups),
  54. log.MaxAge(logcfg.MaxAge),
  55. log.Format(logcfg.Format),
  56. )
  57. if err != nil {
  58. fmt.Printf("InitLog failed: %v\n", err)
  59. os.Exit(1)
  60. }
  61. }
  62. func InitMgo() {
  63. MongoB = &mongodb.MongodbSim{
  64. MongodbAddr: config.Conf.DB.MongoB.Addr,
  65. DbName: config.Conf.DB.MongoB.Dbname,
  66. Size: config.Conf.DB.MongoB.Size,
  67. UserName: config.Conf.DB.MongoB.User,
  68. Password: config.Conf.DB.MongoB.Password,
  69. }
  70. MongoB.InitPool()
  71. MongoP = &mongodb.MongodbSim{
  72. MongodbAddr: config.Conf.DB.MongoP.Addr,
  73. DbName: config.Conf.DB.MongoP.Dbname,
  74. Size: config.Conf.DB.MongoP.Size,
  75. UserName: config.Conf.DB.MongoP.User,
  76. Password: config.Conf.DB.MongoP.Password,
  77. }
  78. MongoP.InitPool()
  79. }
  80. func InitMysql() {
  81. dbcfg := config.Conf.DB.Mysql
  82. MysqlTool = &mysqldb.Mysql{
  83. Address: dbcfg.Addr,
  84. DBName: dbcfg.Dbname,
  85. UserName: dbcfg.User,
  86. PassWord: dbcfg.Password,
  87. }
  88. MysqlTool.Init()
  89. }
  90. func InitField() {
  91. info := MysqlTool.Find("code_area", nil, "", "", -1, -1)
  92. for _, m := range *info {
  93. var key string
  94. for i, v := range []string{"area", "city", "district"} {
  95. if i == 0 && util.ObjToString(m[v]) != "" {
  96. key = util.ObjToString(m[v])
  97. } else if util.ObjToString(m[v]) != "" {
  98. key += "," + util.ObjToString(m[v])
  99. }
  100. }
  101. AreaCode[key] = util.ObjToString(m["code"])
  102. }
  103. log.Info("InitField", zap.Int("AreaCode", len(AreaCode)))
  104. info1 := MysqlTool.Find("code_bidtopsubtype", nil, "", "", -1, -1)
  105. for _, m := range *info1 {
  106. if util.IntAll(m["level"]) == 1 {
  107. TopTypeCode[util.ObjToString(m["name"])] = util.ObjToString(m["code"])
  108. }
  109. if util.IntAll(m["level"]) == 2 {
  110. SubTypeCode[util.ObjToString(m["name"])] = util.ObjToString(m["code"])
  111. }
  112. }
  113. log.Info("InitField", zap.Int("TopTypeCode", len(TopTypeCode)), zap.Int("SubTypeCode", len(SubTypeCode)))
  114. info2 := MysqlTool.Find("code_buyerclass", nil, "", "", -1, -1)
  115. for _, m := range *info2 {
  116. BuyerCode[util.ObjToString(m["name"])] = util.ObjToString(m["code"])
  117. }
  118. log.Info("InitField", zap.Int("BuyerCode", len(BuyerCode)))
  119. info3 := MysqlTool.Find("code_bidscope", nil, "", "", -1, -1)
  120. for _, m := range *info3 {
  121. if util.IntAll(m["level"]) == 1 {
  122. TopScopeCode[util.ObjToString(m["name"])] = util.ObjToString(m["code"])
  123. }
  124. if util.IntAll(m["level"]) == 2 {
  125. SubScopeCode[util.ObjToString(m["name"])] = util.ObjToString(m["code"])
  126. }
  127. }
  128. log.Info("InitField", zap.Int("TopScopeCode", len(TopScopeCode)), zap.Int("SubScopeCode", len(SubScopeCode)))
  129. util.ReadConfig("./field-criteria.json", &FCriteria)
  130. if len(FCriteria) > 0 {
  131. if m, o := FCriteria["dws_f_bid_baseinfo"].(map[string]interface{}); o {
  132. BaseField = util.ObjArrToStringArr(m["field_array"].([]interface{}))
  133. BaseVMap = m["field_criteria"].(map[string]interface{})
  134. } else {
  135. log.Error("InitField", zap.String("field_array", "dws_f_bid_baseinfo"))
  136. panic("dws_f_bid_baseinfo")
  137. }
  138. if m, o := FCriteria["dws_f_bid_expand_baseinfo"].(map[string]interface{}); o {
  139. ExpandField = util.ObjArrToStringArr(m["field_array"].([]interface{}))
  140. ExpandVMap = m["field_criteria"].(map[string]interface{})
  141. } else {
  142. log.Error("InitField", zap.String("field_array", "dws_f_bid_expand_baseinfo"))
  143. panic("dws_f_bid_expand_baseinfo")
  144. }
  145. //项目相关-字段限制暂时注释
  146. //if m, o := FCriteria["dws_f_project_baseinfo"].(map[string]interface{}); o {
  147. // ProField = util.ObjArrToStringArr(m["field_array"].([]interface{}))
  148. // ProVMap = m["field_criteria"].(map[string]interface{})
  149. //} else {
  150. // log.Error("InitField", zap.String("field_array", "dws_f_project_baseinfo"))
  151. // panic("dws_f_project_baseinfo")
  152. //}
  153. //if m, o := FCriteria["dws_f_project_business"].(map[string]interface{}); o {
  154. // ProBusField = util.ObjArrToStringArr(m["field_array"].([]interface{}))
  155. // ProBusVMap = m["field_criteria"].(map[string]interface{})
  156. //} else {
  157. // log.Error("InitField", zap.String("field_array", "dws_f_project_business"))
  158. // panic("dws_f_project_business")
  159. //}
  160. } else {
  161. log.Error("InitField, 未找到field-criteria.json文件")
  162. panic("InitField, 未找到field-criteria.json文件")
  163. }
  164. }
  165. // 插入并打印信息
  166. func InsertGlobalMysqlData(name string, data map[string]interface{}, mark string) int64 {
  167. inb := MysqlTool.Insert(name, data)
  168. if inb == -1 {
  169. log.Info("插入数据异常", zap.String(name, mark))
  170. }
  171. return inb
  172. }