2019-04-22 02:59:20 +00:00

82 lines
3.6 KiB
Go

package archive
import (
"context"
"database/sql"
"go-common/app/job/main/videoup-report/model/archive"
"go-common/library/log"
)
const (
_operLastRoundSQL = "SELECT id,aid,uid,typeid,state,round,attribute,last_id,ctime,mtime FROM archive_oper WHERE aid = ? AND round = ? ORDER BY id DESC LIMIT 1"
_operNextRoundSQL = "SELECT id,aid,uid,typeid,state,round,attribute,last_id,ctime,mtime FROM archive_oper WHERE id > ? AND aid = ? AND round != ? ORDER BY id ASC LIMIT 1"
_operInsertSQL = "INSERT INTO archive_oper(aid,uid,typeid,state,content,round,attribute,last_id,remark) VALUES(?,399,?,?,?,?,?,?,?)"
_lastArcOperSQL = "SELECT aid,uid,typeid,content,round,attribute,last_id,remark FROM archive_oper WHERE aid=? AND uid!=399 ORDER BY mtime DESC LIMIT 1"
_lastVideoOperUIDSQL = "SELECT uid FROM archive_video_oper WHERE vid=? AND uid != 399 ORDER BY mtime DESC LIMIT 1;"
_lastVideoOperSQL = "SELECT aid, uid, vid, status, content, attribute, last_id, remark FROM archive_video_oper WHERE vid=? AND uid != 399 ORDER BY mtime DESC LIMIT 1;"
)
// LastRoundOper get last archive round record.
func (d *Dao) LastRoundOper(c context.Context, aid int64, round int8) (oper *archive.Oper, err error) {
row := d.db.QueryRow(c, _operLastRoundSQL, aid, round)
oper = &archive.Oper{}
if err = row.Scan(&oper.ID, &oper.AID, &oper.UID, &oper.TypeID, &oper.State, &oper.Round, &oper.Attribute, &oper.LastID, &oper.CTime, &oper.MTime); err != nil {
log.Error("row.Scan error(%v)", err)
return
}
return
}
// NextRoundOper get next archive round record.
func (d *Dao) NextRoundOper(c context.Context, id int64, aid int64, round int8) (oper *archive.Oper, err error) {
row := d.db.QueryRow(c, _operNextRoundSQL, id, aid, round)
oper = &archive.Oper{}
if err = row.Scan(&oper.ID, &oper.AID, &oper.UID, &oper.TypeID, &oper.State, &oper.Round, &oper.Attribute, &oper.LastID, &oper.CTime, &oper.MTime); err != nil {
log.Error("row.Scan error(%v)", err)
return
}
return
}
// AddArchiveOper add archive operate log
func (d *Dao) AddArchiveOper(c context.Context, aid int64, attribute int32, typeid int16, state int, round int8, lastID int64, content, remark string) (id int64, err error) {
var (
res sql.Result
)
if res, err = d.db.Exec(c, _operInsertSQL, aid, typeid, state, content, round, attribute, lastID, remark); err != nil {
log.Error("AddArchiveOper(%d,%d,%d,%d,%s,%d,%d,%d,%s) error(%v)", aid, typeid, state, content, round, attribute, lastID, remark, err)
return
}
id, err = res.LastInsertId()
return
}
//LastVideoOperUID get the last manual-operate operator id by vid
func (d *Dao) LastVideoOperUID(c context.Context, vid int64) (uid int64, err error) {
if err = d.db.QueryRow(c, _lastVideoOperUIDSQL, vid).Scan(&uid); err != nil {
log.Error("LastVideoOperUID db.row.Scan error(%v) vid(%d)", err, vid)
}
return
}
//LastVideoOper get the last manual-operate record by vid
func (d *Dao) LastVideoOper(c context.Context, vid int64) (oper *archive.VideoOper, err error) {
oper = &archive.VideoOper{}
if err = d.db.QueryRow(c, _lastVideoOperSQL, vid).Scan(&oper.AID, &oper.UID, &oper.VID, &oper.Status, &oper.Content, &oper.Attribute, &oper.LastID, &oper.Remark); err != nil {
log.Error("LastVideoOper db.row.Scan error(%v), vid(%d)", err, vid)
}
return
}
// LastArcOper get a archive last history.
func (d *Dao) LastArcOper(c context.Context, aid int64) (re *archive.Oper, err error) {
re = &archive.Oper{}
if err = d.db.QueryRow(c, _lastArcOperSQL, aid).Scan(&re.AID, &re.UID, &re.TypeID, &re.Content, &re.Round, &re.Attribute, &re.LastID, &re.Remark); err != nil {
log.Error(" LastArcOper db.row.Scan error(%v) aid(%d)", err, aid)
}
return
}