Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["conf.go"],
importpath = "go-common/app/interface/main/ugcpay-rank/internal/conf",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//library/conf:go_default_library",
"//library/ecode/tip:go_default_library",
"//library/log:go_default_library",
"//library/net/http/blademaster:go_default_library",
"//library/net/http/blademaster/middleware/auth:go_default_library",
"//library/net/rpc/warden:go_default_library",
"//library/net/trace:go_default_library",
"//vendor/github.com/BurntSushi/toml: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,91 @@
package conf
import (
"errors"
"flag"
"go-common/library/conf"
ecode "go-common/library/ecode/tip"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/auth"
"go-common/library/net/rpc/warden"
"go-common/library/net/trace"
"github.com/BurntSushi/toml"
)
var (
confPath string
client *conf.Client
// Conf config
Conf = &Config{}
)
// Config .
type Config struct {
Log *log.Config
Tracer *trace.Config
BM *bm.ServerConfig
Auth *auth.Config
Ecode *ecode.Config
UGCPayRankGRPC *warden.ClientConfig
Biz *Biz
}
// Biz .
type Biz struct {
ElecAVRankSize int
ElecUPRankSize int
}
func init() {
flag.StringVar(&confPath, "conf", "", "default config path")
}
// Init init conf
func Init() error {
if confPath != "" {
return local()
}
return remote()
}
func local() (err error) {
_, err = toml.DecodeFile(confPath, &Conf)
return
}
func remote() (err error) {
if client, err = conf.New(); err != nil {
return
}
if err = load(); err != nil {
return
}
go func() {
for range client.Event() {
log.Info("config reload")
if load() != nil {
log.Error("config reload error (%v)", err)
}
}
}()
return
}
func load() (err error) {
var (
s string
ok bool
tmpConf *Config
)
if s, ok = client.Toml2(); !ok {
return errors.New("load config center error")
}
if _, err = toml.Decode(s, &tmpConf); err != nil {
return errors.New("could not decode config")
}
*Conf = *tmpConf
return
}

View File

@@ -0,0 +1,50 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
"go_test",
)
go_library(
name = "go_default_library",
srcs = [
"dao.go",
"grpc.go",
],
importpath = "go-common/app/interface/main/ugcpay-rank/internal/dao",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/interface/main/ugcpay-rank/internal/conf:go_default_library",
"//app/service/main/ugcpay-rank/api/v1: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"],
)
go_test(
name = "go_default_test",
srcs = [
"dao_test.go",
"grpc_test.go",
],
embed = [":go_default_library"],
tags = ["automanaged"],
deps = [
"//app/interface/main/ugcpay-rank/internal/conf:go_default_library",
"//vendor/github.com/smartystreets/goconvey/convey:go_default_library",
],
)

View File

@@ -0,0 +1,32 @@
package dao
import (
"context"
"go-common/app/interface/main/ugcpay-rank/internal/conf"
ugcpay_rank "go-common/app/service/main/ugcpay-rank/api/v1"
)
// Dao dao
type Dao struct {
ugcPayRankAPI ugcpay_rank.UGCPayRankClient
}
// New init mysql db
func New() (dao *Dao) {
dao = &Dao{}
var err error
if dao.ugcPayRankAPI, err = ugcpay_rank.NewClient(conf.Conf.UGCPayRankGRPC); err != nil {
panic(err)
}
return
}
// Close close the resource.
func (d *Dao) Close() {
}
// Ping dao ping
func (d *Dao) Ping(ctx context.Context) error {
return nil
}

View File

@@ -0,0 +1,35 @@
package dao
import (
"flag"
"os"
"testing"
"go-common/app/interface/main/ugcpay-rank/internal/conf"
)
var (
d *Dao
)
func TestMain(m *testing.M) {
if os.Getenv("DEPLOY_ENV") != "" {
flag.Set("app_id", "main.account.ugcpay-rank-interface")
flag.Set("conf_token", "a1d2ed55cb091980e95cd94cfc9361cc")
flag.Set("tree_id", "72347")
flag.Set("conf_version", "docker-1")
flag.Set("deploy_env", "uat")
flag.Set("conf_host", "config.bilibili.co")
flag.Set("conf_path", "/tmp")
flag.Set("region", "sh")
flag.Set("zone", "sh001")
} else {
flag.Set("conf", "../../cmd/test.toml")
}
flag.Parse()
if err := conf.Init(); err != nil {
panic(err)
}
d = New()
os.Exit(m.Run())
}

View File

@@ -0,0 +1,42 @@
package dao
import (
"context"
api "go-common/app/service/main/ugcpay-rank/api/v1"
)
// RankElecMonth .
func (d *Dao) RankElecMonth(ctx context.Context, avID, upMID int64, rankSize int) (resp *api.RankElecMonthResp, err error) {
var (
req = &api.RankElecMonthReq{
AVID: avID,
UPMID: upMID,
RankSize: rankSize,
}
)
return d.ugcPayRankAPI.RankElecMonth(ctx, req)
}
// RankElecMonthUP .
func (d *Dao) RankElecMonthUP(ctx context.Context, upMID int64, rankSize int) (rank *api.RankElecUPResp, err error) {
var (
req = &api.RankElecUPReq{
UPMID: upMID,
RankSize: rankSize,
}
)
return d.ugcPayRankAPI.RankElecMonthUP(ctx, req)
}
// RankElecAllAV .
func (d *Dao) RankElecAllAV(ctx context.Context, upMID int64, avID int64, rankSize int) (rank *api.RankElecAVResp, err error) {
var (
req = &api.RankElecAVReq{
UPMID: upMID,
AVID: avID,
RankSize: rankSize,
}
)
return d.ugcPayRankAPI.RankElecAllAV(ctx, req)
}

View File

@@ -0,0 +1,61 @@
package dao
import (
"context"
"testing"
"github.com/smartystreets/goconvey/convey"
)
func TestDaoElecMonthRank(t *testing.T) {
convey.Convey("ElecMonthRank", t, func(ctx convey.C) {
var (
c = context.Background()
avID = int64(0)
upMID = int64(0)
rankSize = int(0)
)
ctx.Convey("When everything gose positive", func(ctx convey.C) {
resp, err := d.RankElecMonth(c, avID, upMID, rankSize)
ctx.Convey("Then err should be nil.rank should not be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
ctx.So(resp, convey.ShouldNotBeNil)
})
})
})
}
func TestDaoElecMonthRankUP(t *testing.T) {
convey.Convey("ElecMonthRankUP", t, func(ctx convey.C) {
var (
c = context.Background()
upMID = int64(0)
rankSize = int(0)
)
ctx.Convey("When everything gose positive", func(ctx convey.C) {
rank, err := d.RankElecMonthUP(c, upMID, rankSize)
ctx.Convey("Then err should be nil.rank should not be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
ctx.So(rank, convey.ShouldNotBeNil)
})
})
})
}
func TestDaoElecTotalRankAV(t *testing.T) {
convey.Convey("ElecTotalRankAV", t, func(ctx convey.C) {
var (
c = context.Background()
upMID = int64(0)
avID = int64(0)
rankSize = int(0)
)
ctx.Convey("When everything gose positive", func(ctx convey.C) {
rank, err := d.RankElecAllAV(c, upMID, avID, rankSize)
ctx.Convey("Then err should be nil.rank should not be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
ctx.So(rank, convey.ShouldNotBeNil)
})
})
})
}

View File

@@ -0,0 +1,40 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"elec.go",
"http.go",
],
importpath = "go-common/app/interface/main/ugcpay-rank/internal/server/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/interface/main/ugcpay-rank/api/http:go_default_library",
"//app/interface/main/ugcpay-rank/internal/conf:go_default_library",
"//app/interface/main/ugcpay-rank/internal/service:go_default_library",
"//library/log:go_default_library",
"//library/net/http/blademaster:go_default_library",
"//library/net/http/blademaster/middleware/auth:go_default_library",
"//vendor/github.com/json-iterator/go: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,90 @@
package http
import (
"net/http"
api "go-common/app/interface/main/ugcpay-rank/api/http"
"go-common/app/interface/main/ugcpay-rank/internal/conf"
bm "go-common/library/net/http/blademaster"
"github.com/json-iterator/go"
)
const (
_contentTypeJSON = "application/json; charset=utf-8"
)
func elecMonthUP(ctx *bm.Context) {
var (
err error
arg = &api.ArgRankElecMonthUP{}
resp *api.RespRankElecMonthUP
bytes []byte
)
if err = ctx.Bind(arg); err != nil {
return
}
if arg.RankSize <= 0 || arg.RankSize > conf.Conf.Biz.ElecUPRankSize {
arg.RankSize = conf.Conf.Biz.ElecUPRankSize
}
if resp, err = svc.RankElecMonthUP(ctx, arg.UPMID, arg.RankSize); err != nil {
ctx.JSON(nil, err)
return
}
if bytes, err = jsoniter.ConfigFastest.Marshal(resp); err != nil {
ctx.JSON(nil, err)
return
}
ctx.Bytes(http.StatusOK, _contentTypeJSON, bytes)
}
func elecMonth(ctx *bm.Context) {
var (
err error
arg = &api.ArgRankElecMonth{}
resp *api.RespRankElecMonth
bytes []byte
)
if err = ctx.Bind(arg); err != nil {
return
}
if arg.RankSize <= 0 || arg.RankSize > conf.Conf.Biz.ElecAVRankSize {
arg.RankSize = conf.Conf.Biz.ElecAVRankSize
}
if resp, err = svc.RankElecMonth(ctx, arg.UPMID, arg.AVID, arg.RankSize); err != nil {
ctx.JSON(nil, err)
return
}
if bytes, err = jsoniter.ConfigFastest.Marshal(resp); err != nil {
ctx.JSON(nil, err)
return
}
ctx.Bytes(http.StatusOK, _contentTypeJSON, bytes)
}
func elecAllAV(ctx *bm.Context) {
var (
err error
arg = &api.ArgRankElecMonth{}
resp *api.RespRankElecAllAV
bytes []byte
)
if err = ctx.Bind(arg); err != nil {
return
}
if arg.RankSize <= 0 || arg.RankSize > conf.Conf.Biz.ElecAVRankSize {
arg.RankSize = conf.Conf.Biz.ElecAVRankSize
}
if resp, err = svc.RankElecAllAV(ctx, arg.UPMID, arg.AVID, arg.RankSize); err != nil {
ctx.JSON(nil, err)
return
}
if bytes, err = jsoniter.ConfigFastest.Marshal(resp); err != nil {
ctx.JSON(nil, err)
return
}
ctx.Bytes(http.StatusOK, _contentTypeJSON, bytes)
}

View File

@@ -0,0 +1,48 @@
package http
import (
"go-common/app/interface/main/ugcpay-rank/internal/conf"
"go-common/app/interface/main/ugcpay-rank/internal/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/auth"
)
var (
svc *service.Service
authM *auth.Auth
)
// Init init
func Init(c *conf.Config, s *service.Service) {
svc = s
authM = auth.New(conf.Conf.Auth)
engine := bm.DefaultServer(conf.Conf.BM)
route(engine)
if err := engine.Start(); err != nil {
log.Error("bm Start error(%v)", err)
panic(err)
}
}
func route(e *bm.Engine) {
e.Ping(ping)
g := e.Group("/x/ugcpay-rank")
{
g1 := g.Group("/v1/elec", authM.GuestMobile)
{
g1.GET("/month/up", elecMonthUP)
g1.GET("/month", elecMonth)
g1.GET("/all/av", elecAllAV)
}
g1 = g.Group("/elec", authM.GuestWeb)
{
g1.GET("/month/up", elecMonthUP)
g1.GET("/month", elecMonth)
g1.GET("/all/av", elecAllAV)
}
}
}
func ping(ctx *bm.Context) {
}

View File

@@ -0,0 +1,37 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"elec.go",
"service.go",
],
importpath = "go-common/app/interface/main/ugcpay-rank/internal/service",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/interface/main/ugcpay-rank/api/http:go_default_library",
"//app/interface/main/ugcpay-rank/internal/conf:go_default_library",
"//app/interface/main/ugcpay-rank/internal/dao:go_default_library",
"//app/service/main/ugcpay-rank/api/v1: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,47 @@
package service
import (
"context"
apihttp "go-common/app/interface/main/ugcpay-rank/api/http"
apirpc "go-common/app/service/main/ugcpay-rank/api/v1"
)
// RankElecMonthUP .
func (s *Service) RankElecMonthUP(ctx context.Context, upMID int64, rankSize int) (rank *apihttp.RespRankElecMonthUP, err error) {
var (
resp *apirpc.RankElecUPResp
)
if resp, err = s.dao.RankElecMonthUP(ctx, upMID, rankSize); err != nil {
return
}
rank = &apihttp.RespRankElecMonthUP{}
rank.Parse(resp.UP)
return
}
// RankElecMonth .
func (s *Service) RankElecMonth(ctx context.Context, upMID, avID int64, rankSize int) (rank *apihttp.RespRankElecMonth, err error) {
var (
resp *apirpc.RankElecMonthResp
)
if resp, err = s.dao.RankElecMonth(ctx, avID, upMID, rankSize); err != nil {
return
}
rank = &apihttp.RespRankElecMonth{}
rank.Parse(resp.AV, resp.UP)
return
}
// RankElecAllAV .
func (s *Service) RankElecAllAV(ctx context.Context, upMID int64, avID int64, rankSize int) (rank *apihttp.RespRankElecAllAV, err error) {
var (
resp *apirpc.RankElecAVResp
)
if resp, err = s.dao.RankElecAllAV(ctx, upMID, avID, rankSize); err != nil {
return
}
rank = &apihttp.RespRankElecAllAV{}
rank.Parse(resp.AV)
return
}

View File

@@ -0,0 +1,31 @@
package service
import (
"context"
"go-common/app/interface/main/ugcpay-rank/internal/conf"
"go-common/app/interface/main/ugcpay-rank/internal/dao"
)
// Service struct
type Service struct {
dao *dao.Dao
}
// New init
func New(c *conf.Config) (s *Service) {
s = &Service{
dao: dao.New(),
}
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()
}