69 lines
1.3 KiB
Go
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
|
|
}
|