You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.7 KiB
75 lines
1.7 KiB
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, |
|
}) |
|
}
|
|
|