mg.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package jytuil
  2. import (
  3. "app.yhyue.com/moapp/jybase/mongodb"
  4. "context"
  5. "github.com/gogf/gf/v2/frame/g"
  6. "github.com/gogf/gf/v2/util/gconv"
  7. )
  8. type (
  9. mgConf struct {
  10. Address string `json:"address"`
  11. Size int `json:"size"`
  12. DbName string `json:"dbName"`
  13. ReplSet string `json:"replSet"`
  14. UserName string `json:"userName"`
  15. Password string `json:"password"`
  16. }
  17. mgObj struct {
  18. mgMap map[string]*mongodb.MongodbSim
  19. }
  20. )
  21. var (
  22. MG = &mgObj{
  23. mgMap: map[string]*mongodb.MongodbSim{},
  24. }
  25. )
  26. func init() {
  27. var (
  28. ctx = context.Background()
  29. )
  30. for key, val := range g.Cfg().MustGet(ctx, "mongodb").Map() {
  31. var cf mgConf
  32. if err := gconv.Struct(val, &cf); err != nil {
  33. g.Log().Errorf(ctx, "初始化mongodb %s出错", key)
  34. continue
  35. }
  36. mgo := &mongodb.MongodbSim{
  37. MongodbAddr: cf.Address,
  38. Size: cf.Size,
  39. DbName: cf.DbName,
  40. ReplSet: cf.ReplSet,
  41. UserName: cf.UserName,
  42. Password: cf.Password,
  43. }
  44. mgo.InitPool()
  45. MG.mgMap[key] = mgo
  46. g.Log().Infof(ctx, "初始化 mongodb %s 成功", key)
  47. }
  48. }
  49. func (t *mgObj) DB(alias ...string) *mongodb.MongodbSim {
  50. if len(alias) != 0 {
  51. for _, s := range alias {
  52. if esObj, ok := t.mgMap[s]; ok {
  53. return esObj
  54. }
  55. }
  56. }
  57. return t.mgMap["default"]
  58. }