init.go 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  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/elastic"
  8. "jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
  9. "jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
  10. "jygit.jydev.jianyu360.cn/data_processing/common_utils/mysqldb"
  11. "os"
  12. )
  13. var (
  14. MongoB, MongoP *mongodb.MongodbSim
  15. MysqlTool *mysqldb.Mysql
  16. Es *elastic.Elastic
  17. FCriteria map[string]interface{}
  18. saveSize = 200
  19. saveBasePool = make(chan map[string]interface{}, 5000)
  20. saveBaseSp = make(chan bool, 1)
  21. saveExpandPool = make(chan map[string]interface{}, 5000)
  22. saveExpandSp = make(chan bool, 1)
  23. saveTagPool = make(chan map[string]interface{}, 5000)
  24. saveTagSp = make(chan bool, 1)
  25. saveAttrPool = make(chan map[string]interface{}, 5000)
  26. saveAttrSp = make(chan bool, 1)
  27. saveIfmPool = make(chan map[string]interface{}, 5000)
  28. saveIfmSp = make(chan bool, 1)
  29. saveIntentPool = make(chan map[string]interface{}, 5000)
  30. saveIntentSp = make(chan bool, 1)
  31. saveWinnerPool = make(chan map[string]interface{}, 5000)
  32. saveWinnerSp = make(chan bool, 1)
  33. savePkgPool = make(chan map[string]interface{}, 5000)
  34. savePkgSp = make(chan bool, 1)
  35. savePurPool = make(chan map[string]interface{}, 5000)
  36. savePurSp = make(chan bool, 1)
  37. saveProPool = make(chan map[string]interface{}, 5000)
  38. saveProSp = make(chan bool, 1)
  39. saveProbPool = make(chan map[string]interface{}, 5000)
  40. saveProbSp = make(chan bool, 1)
  41. saveProTagPool = make(chan map[string]interface{}, 5000)
  42. saveProTagSp = make(chan bool, 1)
  43. saveRelationPool = make(chan map[string]interface{}, 5000)
  44. saveRelationSp = make(chan bool, 1)
  45. saveErrPool = make(chan map[string]interface{}, 5000)
  46. saveErrSp = make(chan bool, 1)
  47. AreaCode = make(map[string]string, 5000)
  48. TopTypeCode = make(map[string]string, 10)
  49. SubTypeCode = make(map[string]string, 40)
  50. BuyerCode = make(map[string]string, 100)
  51. TopScopeCode = make(map[string]interface{}, 20)
  52. SubScopeCode = make(map[string]interface{}, 70)
  53. BaseField []string
  54. BaseVMap map[string]interface{}
  55. ExpandField []string
  56. ExpandVMap map[string]interface{}
  57. ProField []string
  58. ProVMap map[string]interface{}
  59. ProBusField []string
  60. ProBusVMap map[string]interface{}
  61. TagsField = []string{"infoid", "labelcode", "labelvalues", "labelweight", "createtime"}
  62. AttrField = []string{"infoid", "filename", "fid", "ftype", "org_url", "size", "file_type", "createtime"}
  63. FileTypeArr = []string{"pdf", "doc", "docx", "xlsx", "xls", "jpg", "zip", "rar", "txt", "gif", "png", "bmp", "swf", "html"}
  64. IfmField = []string{"infoid", "approvecode", "approvedept", "approvestatus", "approvetime", "approvenumber", "approvecontent", "projecttype", "approvecity", "updatetime", "createtime"}
  65. PurField = []string{"infoid", "item", "itemname", "brandname", "specs", "model", "unitname", "number", "unitprice", "totalprice"}
  66. IntentField = []string{"infoid", "projectname", "projectscope", "item", "buyer_id", "totalprice", "expurasingtime", "reserved_amount", "updatetime", "createtime"}
  67. WinnerField = []string{"infoid", "winner_id", "winnersort", "package_id", "createtime", "updatetime"}
  68. PackageField = []string{"infoid", "packagename", "packagename", "packageorgin", "packagedetail", "budget", "bidamount", "winner_id", "updatetime", "createtime"}
  69. ProTagsField = []string{"projectid", "labelcode", "labelvalues", "labelweight", "createtime"}
  70. RelationField = []string{"projectid", "infoid", "name_id", "contact_id", "identity_type", "createtime"}
  71. )
  72. // InitLog @Description
  73. // @Author J 2022/7/26 15:30
  74. func InitLog() {
  75. logcfg := config.Conf.Log
  76. err := log.InitLog(
  77. log.Path(logcfg.LogPath),
  78. log.Level(logcfg.LogLevel),
  79. log.Compress(logcfg.Compress),
  80. log.MaxSize(logcfg.MaxSize),
  81. log.MaxBackups(logcfg.MaxBackups),
  82. log.MaxAge(logcfg.MaxAge),
  83. log.Format(logcfg.Format),
  84. )
  85. if err != nil {
  86. fmt.Printf("InitLog failed: %v\n", err)
  87. os.Exit(1)
  88. }
  89. }
  90. func InitMgo() {
  91. MongoB = &mongodb.MongodbSim{
  92. MongodbAddr: config.Conf.DB.MongoB.Addr,
  93. DbName: config.Conf.DB.MongoB.Dbname,
  94. Size: config.Conf.DB.MongoB.Size,
  95. UserName: config.Conf.DB.MongoB.User,
  96. Password: config.Conf.DB.MongoB.Password,
  97. }
  98. MongoB.InitPool()
  99. MongoP = &mongodb.MongodbSim{
  100. MongodbAddr: config.Conf.DB.MongoP.Addr,
  101. DbName: config.Conf.DB.MongoP.Dbname,
  102. Size: config.Conf.DB.MongoP.Size,
  103. UserName: config.Conf.DB.MongoP.User,
  104. Password: config.Conf.DB.MongoP.Password,
  105. }
  106. MongoP.InitPool()
  107. }
  108. func InitEs() {
  109. Es = &elastic.Elastic{
  110. S_esurl: config.Conf.DB.Es.Addr,
  111. I_size: config.Conf.DB.Es.Size,
  112. Username: config.Conf.DB.Es.User,
  113. Password: config.Conf.DB.Es.Password,
  114. }
  115. Es.InitElasticSize()
  116. }
  117. func InitMysql() {
  118. dbcfg := config.Conf.DB.Mysql
  119. MysqlTool = &mysqldb.Mysql{
  120. Address: dbcfg.Addr,
  121. DBName: dbcfg.Dbname,
  122. UserName: dbcfg.User,
  123. PassWord: dbcfg.Password,
  124. }
  125. MysqlTool.Init()
  126. }
  127. func InitField() {
  128. info := MysqlTool.Find("code_area", nil, "", "", -1, -1)
  129. for _, m := range *info {
  130. var key string
  131. for i, v := range []string{"area", "city", "district"} {
  132. if i == 0 && util.ObjToString(m[v]) != "" {
  133. key = util.ObjToString(m[v])
  134. } else if util.ObjToString(m[v]) != "" {
  135. key += "," + util.ObjToString(m[v])
  136. }
  137. }
  138. AreaCode[key] = util.ObjToString(m["code"])
  139. }
  140. log.Info("InitField", zap.Int("AreaCode", len(AreaCode)))
  141. info1 := MysqlTool.Find("code_bidtopsubtype", nil, "", "", -1, -1)
  142. for _, m := range *info1 {
  143. if util.IntAll(m["level"]) == 1 {
  144. TopTypeCode[util.ObjToString(m["name"])] = util.ObjToString(m["code"])
  145. }
  146. if util.IntAll(m["level"]) == 2 {
  147. SubTypeCode[util.ObjToString(m["name"])] = util.ObjToString(m["code"])
  148. }
  149. }
  150. log.Info("InitField", zap.Int("TopTypeCode", len(TopTypeCode)), zap.Int("SubTypeCode", len(SubTypeCode)))
  151. info2 := MysqlTool.Find("code_buyerclass", nil, "", "", -1, -1)
  152. for _, m := range *info2 {
  153. BuyerCode[util.ObjToString(m["name"])] = util.ObjToString(m["code"])
  154. }
  155. log.Info("InitField", zap.Int("BuyerCode", len(BuyerCode)))
  156. info3 := MysqlTool.Find("code_bidscope", nil, "", "", -1, -1)
  157. for _, m := range *info3 {
  158. if util.IntAll(m["level"]) == 1 {
  159. TopScopeCode[util.ObjToString(m["name"])] = util.ObjToString(m["code"])
  160. }
  161. if util.IntAll(m["level"]) == 2 {
  162. SubScopeCode[util.ObjToString(m["name"])] = util.ObjToString(m["code"])
  163. }
  164. }
  165. log.Info("InitField", zap.Int("TopScopeCode", len(TopScopeCode)), zap.Int("SubScopeCode", len(SubScopeCode)))
  166. util.ReadConfig("./field-criteria.json", &FCriteria)
  167. if len(FCriteria) > 0 {
  168. if m, o := FCriteria["dws_f_bid_baseinfo"].(map[string]interface{}); o {
  169. BaseField = util.ObjArrToStringArr(m["field_array"].([]interface{}))
  170. BaseVMap = m["field_criteria"].(map[string]interface{})
  171. } else {
  172. log.Error("InitField", zap.String("field_array", "dws_f_bid_baseinfo"))
  173. panic("dws_f_bid_baseinfo")
  174. }
  175. if m, o := FCriteria["dws_f_bid_expand_baseinfo"].(map[string]interface{}); o {
  176. ExpandField = util.ObjArrToStringArr(m["field_array"].([]interface{}))
  177. ExpandVMap = m["field_criteria"].(map[string]interface{})
  178. } else {
  179. log.Error("InitField", zap.String("field_array", "dws_f_bid_expand_baseinfo"))
  180. panic("dws_f_bid_expand_baseinfo")
  181. }
  182. if m, o := FCriteria["dws_f_project_baseinfo"].(map[string]interface{}); o {
  183. ProField = util.ObjArrToStringArr(m["field_array"].([]interface{}))
  184. ProVMap = m["field_criteria"].(map[string]interface{})
  185. } else {
  186. log.Error("InitField", zap.String("field_array", "dws_f_project_baseinfo"))
  187. panic("dws_f_project_baseinfo")
  188. }
  189. if m, o := FCriteria["dws_f_project_business"].(map[string]interface{}); o {
  190. ProBusField = util.ObjArrToStringArr(m["field_array"].([]interface{}))
  191. ProBusVMap = m["field_criteria"].(map[string]interface{})
  192. } else {
  193. log.Error("InitField", zap.String("field_array", "dws_f_project_business"))
  194. panic("dws_f_project_business")
  195. }
  196. } else {
  197. log.Error("InitField, 未找到field-criteria.json文件")
  198. panic("InitField, 未找到field-criteria.json文件")
  199. }
  200. }