go-common/app/interface/bbq/app-bbq/service/report.go
2019-04-22 18:49:16 +08:00

67 lines
1.8 KiB
Go

package service
import (
"context"
"go-common/app/interface/bbq/app-bbq/api/http/v1"
"go-common/app/interface/bbq/app-bbq/model"
"go-common/library/ecode"
"go-common/library/log"
"github.com/golang/protobuf/ptypes/empty"
)
//Report ..
func (s *Service) Report(c context.Context, arg *v1.ReportRequest, mid int64, ak string) (res *empty.Empty, err error) {
res = &empty.Empty{}
switch arg.Type {
case model.TypeVideo:
if err = s.dao.ReportVideo(c, arg.SVID, mid, model.MapReasons[arg.Reason]); err != nil {
log.Warnv(c, log.KV("event", "report video err"), log.KV("err", err), log.KV("req", arg))
return
}
case model.TypeComment:
reason := model.BiliReasonsMap[arg.Reason]
content := ""
if reason == 0 {
content = "BBQ其他理由"
}
req := &v1.CommentReportReq{
SvID: arg.SVID,
RpID: arg.RpID,
Reason: reason,
Content: content,
Type: model.DefaultCmType,
AccessKey: ak,
}
if err = s.CommentReport(c, req); err != nil {
log.Warnv(c, log.KV("event", "report comment err"), log.KV("err", err), log.KV("req", arg))
return
}
case model.TypeDanmu:
var (
dm *model.Danmu
)
if dm, err = s.dao.RawBullet(c, arg.Danmu); err != nil {
log.Errorw(c, "event", "query mid", "err", err)
err = ecode.ReportDanmuError
return
}
if err = s.dao.ReportDanmu(c, arg.Danmu, dm.MID, mid, model.MapReasons[arg.Reason]); err != nil {
log.Warnv(c, log.KV("event", "report danmu err"), log.KV("err", err), log.KV("req", arg))
return
}
case model.TypeUser:
var rType int
if arg.Reason == 5 {
rType = 0
} else {
rType = 1
}
if err = s.dao.ReportUser(c, rType, arg.UpMID, mid, model.MapReasons[arg.Reason]); err != nil {
log.Warnv(c, log.KV("event", "report user err"), log.KV("err", err), log.KV("req", arg))
return
}
}
return
}