go-common/app/interface/main/player/dao/dao.go
2019-04-22 18:49:16 +08:00

59 lines
1.2 KiB
Go

package dao
import (
"context"
"net/http"
"go-common/app/interface/main/player/conf"
"go-common/library/database/sql"
"go-common/library/log"
xhttp "go-common/library/net/http/blademaster"
"go-common/library/stat/prom"
)
// Dao dao.
type Dao struct {
// config
c *conf.Config
// mysql
showDB *sql.DB
// stmt
paramStmt *sql.Stmt
// client
client *xhttp.Client
vsClient *http.Client
// API URL
blockTimeURL string
onlineCountURL string
viewPointsURL string
}
// New return new dao.
func New(c *conf.Config) (d *Dao) {
d = &Dao{
c: c,
showDB: sql.NewMySQL(c.MySQL.Show),
client: xhttp.NewClient(c.HTTPClient),
vsClient: http.DefaultClient,
}
d.paramStmt = d.showDB.Prepared(_param)
d.blockTimeURL = c.Host.AccCo + _blockTimeURI
d.onlineCountURL = c.Host.APICo + _onlineCountURI
d.viewPointsURL = c.Host.APICo + _viewPointsURI
return
}
// Ping check service health
func (d *Dao) Ping(c context.Context) (err error) {
if err = d.showDB.Ping(c); err != nil {
log.Error("d.show.Ping() err(%v)", err)
}
return
}
// PromError stat and log.
func PromError(name string, format string, args ...interface{}) {
prom.BusinessErrCount.Incr(name)
log.Error(format, args...)
}