bilibili-backup/app/interface/main/web-show/dao/resource/dao.go
2019-04-22 02:59:20 +00:00

69 lines
1.3 KiB
Go

package resource
import (
"context"
"go-common/app/interface/main/web-show/conf"
xsql "go-common/library/database/sql"
"go-common/library/log"
"go-common/library/stat/prom"
)
//Dao struct
type Dao struct {
db *xsql.DB
videodb *xsql.DB
// ad_active
selAllVdoActStmt *xsql.Stmt
selVdoActMTCntStmt *xsql.Stmt
delAllVdoActStmt *xsql.Stmt
// ad
selAdVdoActStmt *xsql.Stmt
selAdMtCntVdoStmt *xsql.Stmt
// res
selAllResStmt *xsql.Stmt
selAllAssignStmt *xsql.Stmt
selDefBannerStmt *xsql.Stmt
}
// New init mysql db
func New(c *conf.Config) (dao *Dao) {
dao = &Dao{
db: xsql.NewMySQL(c.MySQL.Res),
videodb: xsql.NewMySQL(c.MySQL.Ads),
}
dao.initActive()
dao.initRes()
dao.initAd()
return
}
// Close close the resource.
func (dao *Dao) Close() {
dao.db.Close()
}
// PromError err
func PromError(name string, format string, args ...interface{}) {
prom.BusinessErrCount.Incr(name)
log.Error(format, args...)
}
// Ping Dao
func (dao *Dao) Ping(c context.Context) (err error) {
if err = dao.db.Ping(c); err != nil {
log.Error("dao.db.Ping error(%v)", err)
return
}
if err = dao.videodb.Ping(c); err != nil {
log.Error("dao.videodb.Ping error(%v)", err)
}
return
}
//BeginTran Dao
func (dao *Dao) BeginTran(c context.Context) (tx *xsql.Tx, err error) {
tx, err = dao.videodb.Begin(c)
return
}