123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package dao
- import (
- "context"
- "net/http"
- "time"
- "go-common/app/job/openplatform/open-sug/conf"
- "go-common/library/cache/redis"
- xsql "go-common/library/database/sql"
- "go-common/library/log"
- "gopkg.in/olivere/elastic.v5"
- )
- // Dao dao
- type Dao struct {
- c *conf.Config
- redis *redis.Pool
- mallDB *xsql.DB
- ugcDB *xsql.DB
- ticketDB *xsql.DB
- client *http.Client
- ItemSalesMax map[string]int
- ItemSalesMin map[string]int
- ItemWishMax map[string]int
- ItemWishMin map[string]int
- ItemCommentMax map[string]int
- ItemCommentMin map[string]int
- es *elastic.Client
- }
- // New init mysql db
- func New(c *conf.Config) (dao *Dao) {
- var (
- err error
- es *elastic.Client
- )
- dao = &Dao{
- c: c,
- redis: redis.NewPool(c.Redis),
- mallDB: xsql.NewMySQL(c.MallMySQL),
- ugcDB: xsql.NewMySQL(c.MallUgcMySQL),
- ticketDB: xsql.NewMySQL(c.TicketMySQL),
- client: &http.Client{Timeout: time.Second * 5},
- ItemSalesMax: make(map[string]int),
- ItemSalesMin: make(map[string]int),
- ItemWishMax: make(map[string]int),
- ItemWishMin: make(map[string]int),
- ItemCommentMax: make(map[string]int),
- ItemCommentMin: make(map[string]int),
- }
- es, err = elastic.NewClient(
- elastic.SetURL(c.ElasticSearch.Addr...),
- elastic.SetSniff(false),
- elastic.SetHealthcheckInterval(time.Duration(c.ElasticSearch.Check)),
- elastic.SetErrorLog(&elog{}),
- elastic.SetInfoLog(&ilog{}),
- )
- if err != nil {
- panic(err)
- }
- dao.es = es
- return
- }
- // Close close the resource.
- func (d *Dao) Close() {
- d.redis.Close()
- d.mallDB.Close()
- d.ugcDB.Close()
- d.ticketDB.Close()
- }
- // Ping dao ping
- func (d *Dao) Ping(c context.Context) error {
- // TODO: if you need use mc,redis, please add
- return d.mallDB.Ping(c)
- }
- type ilog struct{}
- type elog struct{}
- // Printf printf.
- func (l *ilog) Printf(format string, v ...interface{}) {
- log.Info(format, v...)
- }
- // Printf printf.
- func (l *elog) Printf(format string, v ...interface{}) {
- log.Error(format, v...)
- }
|