init.go 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. package main
  2. import (
  3. "fieldproject_common/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. RecordField = []string{"name", "name_id", "type", "createtime"}
  15. // DealerField 经销商字段
  16. DealerField = []string{"name_id", "company_id", "dealer_name", "area_code", "city_code", "district_code",
  17. "business_model", "capital", "employee_no", "insurance_amount", "company_address", "website", "capital_code",
  18. "employee_no_code", "insurance_amount_code", "exists_id", "createtime"}
  19. EntField = []string{"company_id", "company_name", "company_code", "credit_no", "org_code", "tax_code", "establish_date",
  20. "legal_person", "legal_person_caption", "company_status", "company_type", "authority", "issue_date", "operation_startdate",
  21. "operation_enddate", "capital", "company_address", "business_scope", "cancel_date", "cancel_reason", "revoke_date",
  22. "revoke_reason", "legal_person_type", "real_capital", "en_name", "list_code", "area_code", "employee_no", "company_phone",
  23. "insurance_amount", "company_email", "website", "sourcetype", "createtime", "updatetime", "employees"}
  24. // RegField 许可备案
  25. RegField = []string{"dealer_id", "company_name", "regnum", "type", "address", "scope", "business_type", "approve_depart",
  26. "validity_date", "approve_date", "type_address", "website_name", "website", "platform_name", "client_name",
  27. "responsible_person", "legal_person", "residence", "createtime"}
  28. ProductField = []string{"dealer_id", "company_id", "company_name", "regno", "company_address", "make_adress", "make_country",
  29. "agent_name", "agent_address", "brand", "model", "main_part", "product_descrip", "use_scope", "storage_conditions",
  30. "remark", "approve_depart", "approve_date", "validity_date", "changes", "regist_type", "source_channel", "manage_type",
  31. "product_name", "medical_equipment_class1", "medical_equipment_class2", "medical_equipment_class3", "sdproduct_name",
  32. "sdequipment_code", "isvalid", "createtime"}
  33. ProjectField = []string{"projectid", "infoid", "jyhref", "itemname", "brandname", "specs", "model", "unitname", "number", "unitprice",
  34. "totalprice", "medical_equipment_class1", "medical_equipment_class2", "medical_equipment_class3", "sdproduct_name",
  35. "sdequipment_code", "area_code", "city_code", "district_code", "budget", "title", "projectname", "projectcode",
  36. "purchasing", "buyer_id", "agency_id", "buyer", "mi_level_code", "mi_area_code", "agency", "bidstatus",
  37. "bidtype", "bidopentime", "zbtime", "jgtime", "updatetime", "createtime", "month_tags", "year_tags", "quarter_tags"}
  38. WinerField = []string{"projectid", "infoid", "winner", "winner_id", "contact_name", "contact_tel", "winner_area_code",
  39. "winner_city_code", "bidamount", "jgtime", "is_winner", "createtime", "updatetime"}
  40. AreaCode = make(map[string]string, 5000)
  41. LvCode = make(map[string]string, 10000000)
  42. PclassCode = make(map[string]map[string]string, 10000)
  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. MongoTool = &mongodb.MongodbSim{
  64. MongodbAddr: config.Conf.DB.Mongo.Addr,
  65. Size: config.Conf.DB.Mongo.Size,
  66. DbName: config.Conf.DB.Mongo.Dbname,
  67. UserName: config.Conf.DB.Mongo.User,
  68. Password: config.Conf.DB.Mongo.Password,
  69. }
  70. MongoTool.InitPool()
  71. MongoTool1 = &mongodb.MongodbSim{
  72. MongodbAddr: config.Conf.DB.Mongo1.Addr,
  73. Size: config.Conf.DB.Mongo1.Size,
  74. DbName: config.Conf.DB.Mongo1.Dbname,
  75. UserName: config.Conf.DB.Mongo1.User,
  76. Password: config.Conf.DB.Mongo1.Password,
  77. }
  78. MongoTool1.InitPool()
  79. MongoTool2 = &mongodb.MongodbSim{
  80. MongodbAddr: config.Conf.DB.Mongo2.Addr,
  81. Size: config.Conf.DB.Mongo2.Size,
  82. DbName: config.Conf.DB.Mongo2.Dbname,
  83. UserName: config.Conf.DB.Mongo2.User,
  84. Password: config.Conf.DB.Mongo2.Password,
  85. }
  86. MongoTool2.InitPool()
  87. }
  88. func InitEs() {
  89. Es = &elastic.Elastic{
  90. S_esurl: config.Conf.DB.Es.Addr,
  91. I_size: config.Conf.DB.Es.Size,
  92. }
  93. Es.InitElasticSize()
  94. }
  95. func InitMysql() {
  96. dbcfg := config.Conf.DB.Mysql
  97. MysqlB = &mysqldb.Mysql{
  98. Address: dbcfg.Addr,
  99. DBName: dbcfg.DbnameBasic,
  100. UserName: dbcfg.User,
  101. PassWord: dbcfg.Password,
  102. }
  103. MysqlB.Init()
  104. MysqlM = &mysqldb.Mysql{
  105. Address: dbcfg.Addr,
  106. DBName: dbcfg.DbnameMedical,
  107. UserName: dbcfg.User,
  108. PassWord: dbcfg.Password,
  109. }
  110. MysqlM.Init()
  111. }
  112. func InitField() {
  113. info := MysqlB.Find("code_area", nil, "", "", -1, -1)
  114. for _, m := range *info {
  115. var key string
  116. for i, v := range []string{"area", "city", "district"} {
  117. if i == 0 && util.ObjToString(m[v]) != "" {
  118. key = util.ObjToString(m[v])
  119. } else if util.ObjToString(m[v]) != "" {
  120. key += "," + util.ObjToString(m[v])
  121. }
  122. }
  123. AreaCode[key] = util.ObjToString(m["code"])
  124. }
  125. log.Info("InitField", zap.Int("AreaCode", len(AreaCode)))
  126. }
  127. func InitLvCode() {
  128. info := MysqlM.Find("dwd_f_yl_organ_baseinfo", nil, "name_id, level_code", "", -1, -1)
  129. for _, m := range *info {
  130. name_id := util.ObjToString(m["name_id"])
  131. code := util.ObjToString(m["level_code"])
  132. LvCode[name_id] = util.ObjToString(code)
  133. }
  134. log.Info("InitLvCode", zap.Int("LvCode", len(LvCode)))
  135. }
  136. func InitPoCode() {
  137. data_class := MysqlM.Find("d_yl_productclass_code", nil, "", "", -1, -1)
  138. for _, v := range *data_class {
  139. name := util.ObjToString(v["name"])
  140. code := util.ObjToString(v["code"])
  141. pcode := util.ObjToString(v["pcode"])
  142. level := util.IntAll(v["level"])
  143. info := map[string]string{}
  144. for key, value := range PclassCode[pcode] {
  145. info[key] = value
  146. }
  147. new_key := "class_" + fmt.Sprintf("%d", level)
  148. info[new_key] = name
  149. PclassCode[code] = info
  150. }
  151. }