Initial commit

This commit is contained in:
Donny
2019-04-22 20:46:32 +08:00
commit 49ab8aadd1
25441 changed files with 4055000 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["service.go"],
importpath = "go-common/app/interface/bbq/bullet/internal/service",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/interface/bbq/bullet/api:go_default_library",
"//app/interface/bbq/bullet/internal/conf:go_default_library",
"//app/interface/bbq/bullet/internal/dao:go_default_library",
"//app/service/bbq/video/api/grpc/v1:go_default_library",
"//library/ecode:go_default_library",
"//library/log:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,125 @@
package service
import (
"context"
"fmt"
"go-common/app/interface/bbq/bullet/api"
"go-common/app/interface/bbq/bullet/internal/conf"
"go-common/app/interface/bbq/bullet/internal/dao"
video "go-common/app/service/bbq/video/api/grpc/v1"
"go-common/library/ecode"
"go-common/library/log"
)
// Service struct
type Service struct {
c *conf.Config
dao *dao.Dao
}
// New init
func New(c *conf.Config) (s *Service) {
s = &Service{
c: c,
dao: dao.New(c),
}
return s
}
// Ping Service
func (s *Service) Ping(ctx context.Context) (err error) {
return s.dao.Ping(ctx)
}
// Close Service
func (s *Service) Close() {
s.dao.Close()
}
// ContentGet .
func (s *Service) ContentGet(ctx context.Context, req *api.ListBulletReq) (res []*api.Bullet, err error) {
videoBase, err := s.dao.VideoBase(ctx, req.Oid)
if err != nil {
log.Warnw(ctx, "log", "get video base fail", "err", err, "req", req)
return
}
if video.IsLimitSet(videoBase.Limits, video.VideoLimitBitBullet) {
log.Infow(ctx, "log", "video limit is set")
return []*api.Bullet{}, nil
}
if res, err = s.dao.ContentGet(ctx, req); err != nil {
log.Warnv(ctx, log.KV("log", "content get fail"))
return
}
return
}
// ContentList .
func (s *Service) ContentList(ctx context.Context, req *api.ListBulletReq) (res *api.ListBulletReply, err error) {
videoBase, err := s.dao.VideoBase(ctx, req.Oid)
if err != nil {
log.Warnw(ctx, "log", "get video base fail", "err", err, "req", req)
return
}
if video.IsLimitSet(videoBase.Limits, video.VideoLimitBitBullet) {
log.Infow(ctx, "log", "video limit is set")
return &api.ListBulletReply{}, nil
}
if res, err = s.dao.ContentList(ctx, req); err != nil {
log.Warnv(ctx, log.KV("log", "get content list fail"))
return
}
return
}
// ContentPost .
func (s *Service) ContentPost(ctx context.Context, req *api.Bullet) (dmid int64, err error) {
videoBase, err := s.dao.VideoBase(ctx, req.Oid)
if err != nil {
log.Warnw(ctx, "log", "get video base fail", "err", err, "req", req)
return
}
if video.IsLimitSet(videoBase.Limits, video.VideoLimitBitBullet) {
log.Infow(ctx, "log", "video limit is set")
err = ecode.DanmuLimitErr
return
}
// 屏蔽词
level, filterErr := s.dao.Filter(ctx, req.Content, dao.FilterAreaDanmu)
if filterErr != nil {
log.Errorv(ctx, log.KV("log", "filter fail"))
} else if level >= dao.FilterLevel {
err = ecode.FilterErr
log.Warnv(ctx, log.KV("log", fmt.Sprintf("content filter fail: content=%s, level=%d", req.Content, level)))
return
}
// 发布弹幕
dmid, err = s.dao.ContentPost(ctx, req)
if err != nil {
log.Warnv(ctx, log.KV("log", "publish danmu fail"))
return
}
return
}
//PhoneCheck ..
func (s *Service) PhoneCheck(c context.Context, mid int64) (err error) {
telStatus, err := s.dao.PhoneCheck(c, mid)
if err != nil {
log.Errorw(c, "log", "call phone check fail", "mid", mid)
return
}
if telStatus == 0 {
err = ecode.BBQNoBindPhone
log.Infow(c, "log", "no bind phone", "mid", mid)
return
}
return
}