initconfig.go 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. package common
  2. import (
  3. "context"
  4. "flag"
  5. "fmt"
  6. "github.com/gogf/gf/v2/util/gconv"
  7. "log"
  8. "time"
  9. . "app.yhyue.com/moapp/jybase/es"
  10. "app.yhyue.com/moapp/jybase/mongodb"
  11. "app.yhyue.com/moapp/jybase/mysql"
  12. "app.yhyue.com/moapp/jybase/redis"
  13. "app.yhyue.com/moapp/jypkg/middleground"
  14. "bp.jydev.jianyu360.cn/BaseService/fileCenter/rpc/filecenter"
  15. "bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/usercenter"
  16. "bp.jydev.jianyu360.cn/CRM/application/api/internal/config"
  17. "bp.jydev.jianyu360.cn/CRM/application/entity"
  18. "bp.jydev.jianyu360.cn/CRM/baseCenter/rpc/basecenter"
  19. "bp.jydev.jianyu360.cn/SocialPlatform/socialPlatform/rpc/social/social"
  20. "github.com/ClickHouse/clickhouse-go/v2"
  21. "github.com/ClickHouse/clickhouse-go/v2/lib/driver"
  22. "github.com/zeromicro/go-zero/core/conf"
  23. "github.com/zeromicro/go-zero/core/logx"
  24. "github.com/zeromicro/go-zero/zrpc"
  25. )
  26. var configFile = flag.String("fs", "etc/crmapplication.yaml", "the config file")
  27. var C config.Config
  28. var logFile = flag.String("lf", "etc/logs.yaml", "the config file")
  29. var logc entity.Logc
  30. var dbFile = flag.String("df", "etc/db.yaml", "the db file")
  31. var DB config.Db
  32. var pushFile = flag.String("pf", "etc/push.yaml", "the push file")
  33. var Push config.Push
  34. var AreaCodeMap map[string]interface{}
  35. var (
  36. MgoBidding mongodb.MongodbSim
  37. MgoEnt mongodb.MongodbSim
  38. MainMysql *mysql.Mysql
  39. BaseMysql *mysql.Mysql
  40. CrmMysql *mysql.Mysql
  41. Mgo mongodb.MongodbSim
  42. UserCenterRpc usercenter.UserCenter
  43. FileCenterRpc filecenter.FileCenter
  44. BaseCenterRpc basecenter.BaseCenter
  45. SocialPlatformRpc social.Social
  46. MgoProject mongodb.MongodbSim
  47. NiJian *mysql.Mysql
  48. Middleground *middleground.Middleground
  49. ClickhouseConn driver.Conn
  50. )
  51. func InitConf() {
  52. conf.MustLoad(*configFile, &C)
  53. log.Println("初始化配置") //
  54. //初始化日志信息
  55. conf.MustLoad(*logFile, &logc)
  56. if len(logc.Level) > 0 {
  57. for _, v := range logc.Level {
  58. logx.MustSetup(logx.LogConf{
  59. Mode: logc.Mode,
  60. Path: logc.Path,
  61. Level: v,
  62. KeepDays: logc.KeepDays,
  63. })
  64. logx.Info(v, "--日志记录")
  65. }
  66. }
  67. conf.MustLoad(*dbFile, &DB)
  68. //初始化mysql
  69. if DB.Mysql.Main.Address != "" {
  70. log.Println("--初始化 main mysql--")
  71. MainMysql = &mysql.Mysql{
  72. Address: DB.Mysql.Main.Address,
  73. UserName: DB.Mysql.Main.UserName,
  74. PassWord: DB.Mysql.Main.Password,
  75. DBName: DB.Mysql.Main.DbName,
  76. MaxOpenConns: DB.Mysql.Main.MaxOpenConns,
  77. MaxIdleConns: DB.Mysql.Main.MaxIdleConns,
  78. }
  79. MainMysql.Init()
  80. }
  81. if DB.Mysql.BaseService.Address != "" {
  82. log.Println("--初始化 base mysql--")
  83. BaseMysql = &mysql.Mysql{
  84. Address: DB.Mysql.BaseService.Address,
  85. UserName: DB.Mysql.BaseService.UserName,
  86. PassWord: DB.Mysql.BaseService.Password,
  87. DBName: DB.Mysql.BaseService.DbName,
  88. MaxOpenConns: DB.Mysql.BaseService.MaxOpenConns,
  89. MaxIdleConns: DB.Mysql.BaseService.MaxIdleConns,
  90. }
  91. BaseMysql.Init()
  92. }
  93. if DB.Mysql.CrmService.Address != "" {
  94. log.Println("--初始化 crm mysql--")
  95. CrmMysql = &mysql.Mysql{
  96. Address: DB.Mysql.CrmService.Address,
  97. UserName: DB.Mysql.CrmService.UserName,
  98. PassWord: DB.Mysql.CrmService.Password,
  99. DBName: DB.Mysql.CrmService.DbName,
  100. MaxOpenConns: DB.Mysql.CrmService.MaxOpenConns,
  101. MaxIdleConns: DB.Mysql.CrmService.MaxIdleConns,
  102. }
  103. CrmMysql.Init()
  104. }
  105. if DB.Mysql.NiJian.Address != "" {
  106. log.Println("--初始化 crm mysql--")
  107. NiJian = &mysql.Mysql{
  108. Address: DB.Mysql.NiJian.Address,
  109. UserName: DB.Mysql.NiJian.UserName,
  110. PassWord: DB.Mysql.NiJian.Password,
  111. DBName: DB.Mysql.NiJian.DbName,
  112. MaxOpenConns: DB.Mysql.NiJian.MaxOpenConns,
  113. MaxIdleConns: DB.Mysql.NiJian.MaxIdleConns,
  114. }
  115. NiJian.Init()
  116. }
  117. if DB.Mongo.Main.Address != "" {
  118. logx.Info("--初始化 mongodb--")
  119. Mgo = mongodb.MongodbSim{
  120. MongodbAddr: DB.Mongo.Main.Address,
  121. Size: DB.Mongo.Main.Size,
  122. DbName: DB.Mongo.Main.DbName,
  123. }
  124. Mgo.InitPool()
  125. }
  126. if DB.Mongo.Bidding.Address != "" {
  127. logx.Info("--初始化 mongodb Bidding --")
  128. MgoBidding = mongodb.MongodbSim{
  129. MongodbAddr: DB.Mongo.Bidding.Address,
  130. Size: DB.Mongo.Bidding.Size,
  131. DbName: DB.Mongo.Bidding.DbName,
  132. Password: DB.Mongo.Bidding.Password,
  133. UserName: DB.Mongo.Bidding.UserName,
  134. }
  135. MgoBidding.InitPool()
  136. }
  137. if DB.Mongo.Ent.Address != "" {
  138. logx.Info("--初始化 mongodb ent --")
  139. MgoEnt = mongodb.MongodbSim{
  140. MongodbAddr: DB.Mongo.Ent.Address,
  141. Size: DB.Mongo.Ent.Size,
  142. DbName: DB.Mongo.Ent.DbName,
  143. Password: DB.Mongo.Ent.Password,
  144. UserName: DB.Mongo.Ent.UserName,
  145. }
  146. MgoEnt.InitPool()
  147. }
  148. if DB.Mongo.Project.Address != "" {
  149. logx.Info("--初始化 mongodb ent --")
  150. MgoProject = mongodb.MongodbSim{
  151. MongodbAddr: DB.Mongo.Project.Address,
  152. Size: DB.Mongo.Project.Size,
  153. DbName: DB.Mongo.Project.DbName,
  154. Password: DB.Mongo.Project.Password,
  155. UserName: DB.Mongo.Project.UserName,
  156. }
  157. MgoProject.InitPool()
  158. }
  159. //初始化 elasticsearch
  160. if DB.Es.Addr != "" {
  161. log.Println("--初始化 elasticsearch--")
  162. NewEs(DB.Es.Version, DB.Es.Addr, DB.Es.Size, DB.Es.UserName, DB.Es.Password)
  163. }
  164. redis.InitRedis(DB.Redis)
  165. UserCenterRpc = usercenter.NewUserCenter(zrpc.MustNewClient(C.UserCenterRpc))
  166. FileCenterRpc = filecenter.NewFileCenter(zrpc.MustNewClient(C.FileCenterRpc))
  167. BaseCenterRpc = basecenter.NewBaseCenter(zrpc.MustNewClient(C.BaseCenterRpc))
  168. SocialPlatformRpc = social.NewSocial(zrpc.MustNewClient(C.SocialPlatformRpc))
  169. Middleground = middleground.NewMiddleground(C.BaseCenterRpc.Etcd.Hosts).
  170. RegResourceCenter(C.ResourceCenterKey)
  171. conf.MustLoad(*pushFile, &Push)
  172. ConnectClickhouse(DB.Clickhouse)
  173. InitArea()
  174. }
  175. func ConnectClickhouse(cHouseConfig *config.CHouseConfig) error {
  176. var (
  177. ctx = context.Background()
  178. err error
  179. )
  180. ClickhouseConn, err = clickhouse.Open(&clickhouse.Options{
  181. Addr: []string{cHouseConfig.Addr},
  182. DialTimeout: 10 * time.Second,
  183. MaxIdleConns: cHouseConfig.MaxIdleConns,
  184. MaxOpenConns: cHouseConfig.MaxOpenConns,
  185. Auth: clickhouse.Auth{
  186. Database: cHouseConfig.DbName,
  187. Username: cHouseConfig.UserName,
  188. Password: cHouseConfig.Password,
  189. },
  190. Debugf: func(format string, v ...interface{}) {
  191. fmt.Printf(format, v)
  192. },
  193. })
  194. if err != nil {
  195. return err
  196. }
  197. if err := ClickhouseConn.Ping(ctx); err != nil {
  198. if exception, ok := err.(*clickhouse.Exception); ok {
  199. fmt.Printf("Exception [%d] %s \n%s\n", exception.Code, exception.Message, exception.StackTrace)
  200. }
  201. return err
  202. }
  203. return nil
  204. }
  205. func InitArea() {
  206. data := CrmMysql.SelectBySql("select code,name from d_area_code where ( level is NULL or level in (1,2))")
  207. for _, m := range *data {
  208. code := gconv.String(m["code"])
  209. name := gconv.String(m["name"])
  210. if name == "" {
  211. continue
  212. }
  213. AreaCodeMap[name] = code
  214. }
  215. }