76 lines
1.7 KiB
Go
76 lines
1.7 KiB
Go
|
package audit
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
"go-common/app/interface/main/tv/model"
|
||
|
"go-common/library/ecode"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
_typeUGC = "ugc"
|
||
|
_typePGC = "pgc"
|
||
|
)
|
||
|
|
||
|
type cidExistFunc = func(context.Context, int64) ([]int64, error)
|
||
|
type cidTransFunc = func(context.Context, []int64, int64) error
|
||
|
type reqTrans struct {
|
||
|
CID int64
|
||
|
Action int64
|
||
|
CheckFunc cidExistFunc
|
||
|
TransFunc cidTransFunc
|
||
|
}
|
||
|
|
||
|
// Transcode update the video/ep's transcoded status
|
||
|
func (s *Service) Transcode(req *model.ReqTransode) (err error) {
|
||
|
var ctx = context.TODO()
|
||
|
if req.ContType == _typePGC {
|
||
|
err = s.transPGC(ctx, req.CID, req.Action)
|
||
|
} else if req.ContType == _typeUGC {
|
||
|
err = s.transUGC(ctx, req.CID, req.Action)
|
||
|
} else {
|
||
|
err = ecode.TvDangbeiWrongType
|
||
|
}
|
||
|
return
|
||
|
}
|
||
|
|
||
|
func commonTrans(ctx context.Context, req reqTrans) (err error) {
|
||
|
var ids []int64
|
||
|
if ids, err = req.CheckFunc(ctx, req.CID); err != nil {
|
||
|
return
|
||
|
}
|
||
|
if len(ids) == 0 {
|
||
|
return ecode.NothingFound
|
||
|
}
|
||
|
err = req.TransFunc(ctx, ids, req.Action)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
func (s *Service) transPGC(ctx context.Context, cid int64, action int64) (err error) {
|
||
|
return commonTrans(ctx, reqTrans{
|
||
|
CID: cid,
|
||
|
Action: action,
|
||
|
CheckFunc: s.auditDao.PgcCID,
|
||
|
TransFunc: s.auditDao.PgcTranscode,
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func (s *Service) transUGC(ctx context.Context, cid int64, action int64) (err error) {
|
||
|
return commonTrans(ctx, reqTrans{
|
||
|
CID: cid,
|
||
|
Action: action,
|
||
|
CheckFunc: s.auditDao.UgcCID,
|
||
|
TransFunc: s.auditDao.UgcTranscode,
|
||
|
})
|
||
|
}
|
||
|
|
||
|
// ApplyPGC saves the pgc transcode apply time
|
||
|
func (s *Service) ApplyPGC(ctx context.Context, req *model.ReqApply) (err error) {
|
||
|
return commonTrans(ctx, reqTrans{
|
||
|
CID: req.CID,
|
||
|
Action: req.ApplyTime,
|
||
|
CheckFunc: s.auditDao.PgcCID,
|
||
|
TransFunc: s.auditDao.ApplyPGC,
|
||
|
})
|
||
|
}
|