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

73 lines
1.6 KiB
Go

package dao
import (
"context"
"go-common/app/interface/main/feedback/conf"
"go-common/library/database/sql"
"net/http"
)
// Dao is feedback dao.
type Dao struct {
// conf
c *conf.Config
// db
dbMs *sql.DB
//db stmt
// session
selSsn *sql.Stmt
selSsnByMid *sql.Stmt
selTagID *sql.Stmt
inSsn *sql.Stmt
inSsnTag *sql.Stmt
upSsn *sql.Stmt
upSsnMtime *sql.Stmt
upSsnSta *sql.Stmt
selSSnID *sql.Stmt
selSSnCntByMid *sql.Stmt
// reply
selReply *sql.Stmt
selReplyByMid *sql.Stmt
selReplyBySid *sql.Stmt
inReply *sql.Stmt
// tag
selTagBySsnID *sql.Stmt
// bfs
bfsClient *http.Client
}
// New dao.
func New(c *conf.Config) (d *Dao) {
d = &Dao{
c: c,
dbMs: sql.NewMySQL(c.MySQL.Master),
}
// session
d.selSsn = d.dbMs.Prepared(_selSsn)
d.selSsnByMid = d.dbMs.Prepared(_selSsnByMid)
d.inSsn = d.dbMs.Prepared(_inSsn)
d.inSsnTag = d.dbMs.Prepared(_inSsnTag)
d.upSsn = d.dbMs.Prepared(_upSsn)
d.upSsnMtime = d.dbMs.Prepared(_upSsnMtime)
d.upSsnSta = d.dbMs.Prepared(_upSsnState)
d.selSSnID = d.dbMs.Prepared(_selSSnID)
d.selSSnCntByMid = d.dbMs.Prepared(_selSSnCntByMid)
// reply
d.selReply = d.dbMs.Prepared(_selReply)
d.selReplyByMid = d.dbMs.Prepared(_selReplyByMid)
d.inReply = d.dbMs.Prepared(_inReply)
d.selTagID = d.dbMs.Prepared(_selTagID)
d.selReplyBySid = d.dbMs.Prepared(_selReplyBySid)
d.selTagBySsnID = d.dbMs.Prepared(_selTagBySsnID)
// init bfs http client
d.bfsClient = http.DefaultClient
return
}
// BeginTran begin tran.
func (d *Dao) BeginTran(c context.Context) (tx *sql.Tx, err error) {
tx, err = d.dbMs.Begin(c)
return
}