dao.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package upper
  2. import (
  3. "context"
  4. "time"
  5. "go-common/app/job/main/tv/conf"
  6. acccli "go-common/app/service/main/account/api"
  7. accwar "go-common/app/service/main/account/api"
  8. account "go-common/app/service/main/account/model"
  9. "go-common/library/cache/memcache"
  10. "go-common/library/database/sql"
  11. "go-common/library/stat/prom"
  12. "github.com/pkg/errors"
  13. )
  14. var (
  15. missedCount = prom.CacheMiss
  16. cachedCount = prom.CacheHit
  17. )
  18. // Dao is account dao.
  19. type Dao struct {
  20. accClient accwar.AccountClient
  21. mc *memcache.Pool
  22. mcExpire int32
  23. DB *sql.DB
  24. }
  25. // New account dao.
  26. func New(c *conf.Config) (d *Dao) {
  27. d = &Dao{
  28. mc: memcache.NewPool(c.Memcache.Config),
  29. mcExpire: int32(time.Duration(c.Memcache.Expire) / time.Second),
  30. DB: sql.NewMySQL(c.Mysql),
  31. }
  32. var err error
  33. if d.accClient, err = acccli.NewClient(c.AccClient); err != nil {
  34. panic(err)
  35. }
  36. return
  37. }
  38. // Card3 get card info by mid
  39. func (d *Dao) Card3(c context.Context, mid int64) (res *account.Card, err error) {
  40. var (
  41. arg = &accwar.MidReq{Mid: mid}
  42. resp *accwar.CardReply
  43. )
  44. if resp, err = d.accClient.Card3(c, arg); err != nil {
  45. err = errors.Wrapf(err, "%v", arg)
  46. return
  47. }
  48. res = resp.Card
  49. return
  50. }