dao.go 836 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package dao
  2. import (
  3. "context"
  4. "go-common/app/job/main/passport-game-data/conf"
  5. "go-common/library/database/sql"
  6. "go-common/library/log"
  7. )
  8. // Dao dao
  9. type Dao struct {
  10. c *conf.Config
  11. localDB *sql.DB
  12. cloudDB *sql.DB
  13. }
  14. // New new dao.
  15. func New(c *conf.Config) (d *Dao) {
  16. d = &Dao{
  17. c: c,
  18. localDB: sql.NewMySQL(c.DB.Local),
  19. cloudDB: sql.NewMySQL(c.DB.Cloud),
  20. }
  21. return
  22. }
  23. // Ping check dao ok.
  24. func (d *Dao) Ping(c context.Context) (err error) {
  25. if err = d.localDB.Ping(c); err != nil {
  26. log.Info("dao.localDB.Ping() error(%v)", err)
  27. }
  28. if err = d.cloudDB.Ping(c); err != nil {
  29. log.Info("dao.cloudDB.Ping() error(%v)", err)
  30. }
  31. return
  32. }
  33. // Close close connections.
  34. func (d *Dao) Close() (err error) {
  35. if d.localDB != nil {
  36. d.localDB.Close()
  37. }
  38. if d.cloudDB != nil {
  39. d.cloudDB.Close()
  40. }
  41. return
  42. }