go-common/app/job/bbq/video/dao/cmsvideo.go
2019-04-22 18:49:16 +08:00

176 lines
4.2 KiB
Go

package dao
import (
"context"
"go-common/app/job/bbq/video/model"
xsql "go-common/library/database/sql"
"go-common/library/log"
)
const (
_updatevideostatus = "update video set state = ? where svid = ?"
_updateCmsvideoStatus = "insert into cms_video (svid,cms_status,sv_status,`from`,title,pubtime,mid) values (?,?,?,?,?,?,?) on duplicate key update cms_status = values(cms_status),sv_status=values(sv_status),cms_uname = '',`from` = values(`from`),title=values(title),pubtime=values(pubtime),mid = values(mid)"
_selectVideoRows = "select id,svid,title,mid,`from`,pubtime from video where state = ? and id > ? limit 1000"
_updateVR = "update video_repository set state = ? where svid=?"
)
//UpdateCms ..
func (d *Dao) UpdateCms(c context.Context, v *model.VideoRaw) (err error) {
if _, err = d.dbCms.Exec(c,
_updateCmsvideoStatus,
v.SVID,
v.State,
v.State,
v.From,
v.Title,
v.Pubtime,
v.MID,
); err != nil {
log.Error("DeliveryNewVdieoToCms insert cms_video err,svid : %v,err :%v", v.SVID, err)
return
}
return
}
//TransToCheckBack ..
func (d *Dao) TransToCheckBack() (err error) {
var (
rows *xsql.Rows
count int64
id int64
c = context.Background()
)
for {
if rows, err = d.db.Query(c, _selectVideoRows, model.VideoStPassReview, count); err != nil {
log.Error("DeliveryNewVdieoToCms select video failed ,err:%v", err)
return
}
flag := false
for rows.Next() {
videoinfo := model.VideoInfo{}
if err = rows.Scan(
&id,
&videoinfo.SVID,
&videoinfo.Title,
&videoinfo.MID,
&videoinfo.From,
&videoinfo.Pubtime,
); err != nil {
if err == xsql.ErrNoRows {
return
}
continue
}
count = id
//满足运营导入规则
if d.CmsRule(videoinfo.SVID) {
if _, err = d.dbCms.Exec(c,
_updateCmsvideoStatus,
videoinfo.SVID,
model.VideoStCheckBack,
model.VideoStCheckBack,
videoinfo.From,
videoinfo.Title,
videoinfo.Pubtime,
videoinfo.MID,
); err != nil {
log.Error("DeliveryNewVdieoToCms insert cms_video err,svid : %v,err :%v", videoinfo.SVID, err)
continue
}
if _, err = d.db.Exec(c,
_updatevideostatus,
model.VideoStCheckBack,
videoinfo.SVID,
); err != nil {
log.Error("DeliveryNewVdieoToCms update video status err : %v,svid : %v", err, videoinfo.SVID)
continue
}
if _, err = d.dbCms.Exec(c, _updateVR, model.VideoStCheckBack, videoinfo.SVID); err != nil {
log.Error("DeliveryNewVdieoToCms update vr err :%v,svid : %v", err, videoinfo.SVID)
continue
}
}
flag = true
}
rows.Close()
if !flag {
return
}
}
}
// CmsRule ...
func (d *Dao) CmsRule(svid int64) (flag bool) {
return true
}
//TransToReview ...
func (d *Dao) TransToReview() (err error) {
var (
rows *xsql.Rows
count int64
id int64
c = context.Background()
)
for {
if rows, err = d.db.Query(c, _selectVideoRows, model.VideoStPendingPassReview, count); err != nil {
log.Error("TransToReview select video failed ,err:%v", err)
continue
}
flag := false
for rows.Next() {
videoinfo := model.VideoInfo{}
if err = rows.Scan(
&id,
&videoinfo.SVID,
&videoinfo.Title,
&videoinfo.MID,
&videoinfo.From,
&videoinfo.Pubtime,
); err != nil {
if err == xsql.ErrNoRows {
return
}
continue
}
count = id
//满足运营导入规则
if d.CmsRule(videoinfo.SVID) {
var st int
if videoinfo.From == model.VideoFromBILI || videoinfo.From == model.VideoFromCMS {
st = model.VideoStPassReview
} else {
st = model.VideoStPassReviewReject
}
if _, err = d.dbCms.Exec(c,
_updateCmsvideoStatus,
videoinfo.SVID,
st,
st,
videoinfo.From,
videoinfo.Title,
videoinfo.Pubtime,
videoinfo.MID,
); err != nil {
log.Error("TransToReview insert cms_video err,svid : %v,err :%v", videoinfo.SVID, err)
continue
}
if _, err = d.db.Exec(c,
_updatevideostatus,
st,
videoinfo.SVID,
); err != nil {
log.Error("TransToReview update video status err : %v,svid : %v", err, videoinfo.SVID)
continue
}
}
flag = true
}
rows.Close()
if !flag {
return
}
}
}