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,62 @@
load(
"@io_bazel_rules_go//proto:def.bzl",
"go_proto_library",
)
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
proto_library(
name = "v0_proto",
srcs = ["api.proto"],
tags = ["automanaged"],
deps = ["@gogo_special_proto//github.com/gogo/protobuf/gogoproto"],
)
go_proto_library(
name = "v0_go_proto",
compilers = ["@io_bazel_rules_go//proto:gogofast_grpc"],
importpath = "go-common/app/service/live/dao-anchor/api/grpc/v0",
proto = ":v0_proto",
tags = ["automanaged"],
deps = ["@com_github_gogo_protobuf//gogoproto:go_default_library"],
)
go_library(
name = "go_default_library",
srcs = [
"api.bm.go",
"client.go",
],
embed = [":v0_go_proto"],
importpath = "go-common/app/service/live/dao-anchor/api/grpc/v0",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//library/net/http/blademaster:go_default_library",
"//library/net/http/blademaster/binding:go_default_library",
"//library/net/rpc/warden:go_default_library",
"@com_github_gogo_protobuf//gogoproto:go_default_library",
"@com_github_gogo_protobuf//proto:go_default_library",
"@org_golang_google_grpc//:go_default_library",
"@org_golang_x_net//context: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,191 @@
// Code generated by protoc-gen-bm v0.1, DO NOT EDIT.
// source: api.proto
/*
Package v0 is a generated blademaster stub package.
This code was generated with go-common/app/tool/bmgen/protoc-gen-bm v0.1.
It is generated from these files:
api.proto
*/
package v0
import (
"context"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/binding"
)
// to suppressed 'imported but not used warning'
var _ *bm.Context
var _ context.Context
var _ binding.StructValidator
var PathCreateDataCreateCacheList = "/live.daoanchor.v0.CreateData/CreateCacheList"
var PathCreateDataCreateLiveCacheList = "/live.daoanchor.v0.CreateData/CreateLiveCacheList"
var PathCreateDataGetContentMap = "/live.daoanchor.v0.CreateData/GetContentMap"
var PathCreateDataCreateDBData = "/live.daoanchor.v0.CreateData/CreateDBData"
var PathPopularityGetAnchorGradeList = "/live.daoanchor.v0.Popularity/GetAnchorGradeList"
var PathPopularityEditAnchorGrade = "/live.daoanchor.v0.Popularity/EditAnchorGrade"
var PathPopularityGetContentList = "/live.daoanchor.v0.Popularity/GetContentList"
var PathPopularityAddContent = "/live.daoanchor.v0.Popularity/AddContent"
var PathPopularityEditContent = "/live.daoanchor.v0.Popularity/EditContent"
var PathPopularityDeleteContent = "/live.daoanchor.v0.Popularity/DeleteContent"
// ====================
// CreateData Interface
// ====================
type CreateDataBMServer interface {
// CreateCacheList 生成历史数据缓存列表
CreateCacheList(ctx context.Context, req *CreateCacheListReq) (resp *CreateCacheListResp, err error)
// CreateLiveCacheList 生成开播历史数据缓存列表
CreateLiveCacheList(ctx context.Context, req *CreateLiveCacheListReq) (resp *CreateLiveCacheListResp, err error)
// GetContentMap 获取需要生成历史数据的对象列表
GetContentMap(ctx context.Context, req *GetContentMapReq) (resp *GetContentMapResp, err error)
CreateDBData(ctx context.Context, req *CreateDBDataReq) (resp *CreateDBDataResp, err error)
}
var v0CreateDataSvc CreateDataBMServer
func createDataCreateCacheList(c *bm.Context) {
p := new(CreateCacheListReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v0CreateDataSvc.CreateCacheList(c, p)
c.JSON(resp, err)
}
func createDataCreateLiveCacheList(c *bm.Context) {
p := new(CreateLiveCacheListReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v0CreateDataSvc.CreateLiveCacheList(c, p)
c.JSON(resp, err)
}
func createDataGetContentMap(c *bm.Context) {
p := new(GetContentMapReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v0CreateDataSvc.GetContentMap(c, p)
c.JSON(resp, err)
}
func createDataCreateDBData(c *bm.Context) {
p := new(CreateDBDataReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v0CreateDataSvc.CreateDBData(c, p)
c.JSON(resp, err)
}
// RegisterCreateDataBMServer Register the blademaster route
func RegisterCreateDataBMServer(e *bm.Engine, server CreateDataBMServer) {
v0CreateDataSvc = server
e.GET("/live.daoanchor.v0.CreateData/CreateCacheList", createDataCreateCacheList)
e.GET("/live.daoanchor.v0.CreateData/CreateLiveCacheList", createDataCreateLiveCacheList)
e.GET("/live.daoanchor.v0.CreateData/GetContentMap", createDataGetContentMap)
e.GET("/live.daoanchor.v0.CreateData/CreateDBData", createDataCreateDBData)
}
// ====================
// Popularity Interface
// ====================
// 人气相关接口
type PopularityBMServer interface {
// GetAnchorGradeList 获取人气值主播评级列表
GetAnchorGradeList(ctx context.Context, req *GetAnchorGradeListReq) (resp *GetAnchorGradeListResp, err error)
// EditAnchorGrade 编辑主播评级对应的人气值数据
EditAnchorGrade(ctx context.Context, req *EditAnchorGradeReq) (resp *EditAnchorGradeResp, err error)
// GetContentList 人气内容系数列表
GetContentList(ctx context.Context, req *GetContentListReq) (resp *GetContentListResp, err error)
// AddContent 添加内容系数
AddContent(ctx context.Context, req *AddContentReq) (resp *AddContentResp, err error)
// EditContent 编辑内容系数
EditContent(ctx context.Context, req *EditContentReq) (resp *EditContentResp, err error)
// DeleteContent 删除内容系数
DeleteContent(ctx context.Context, req *DeleteContentReq) (resp *DeleteContentResp, err error)
}
var v0PopularitySvc PopularityBMServer
func popularityGetAnchorGradeList(c *bm.Context) {
p := new(GetAnchorGradeListReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v0PopularitySvc.GetAnchorGradeList(c, p)
c.JSON(resp, err)
}
func popularityEditAnchorGrade(c *bm.Context) {
p := new(EditAnchorGradeReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v0PopularitySvc.EditAnchorGrade(c, p)
c.JSON(resp, err)
}
func popularityGetContentList(c *bm.Context) {
p := new(GetContentListReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v0PopularitySvc.GetContentList(c, p)
c.JSON(resp, err)
}
func popularityAddContent(c *bm.Context) {
p := new(AddContentReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v0PopularitySvc.AddContent(c, p)
c.JSON(resp, err)
}
func popularityEditContent(c *bm.Context) {
p := new(EditContentReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v0PopularitySvc.EditContent(c, p)
c.JSON(resp, err)
}
func popularityDeleteContent(c *bm.Context) {
p := new(DeleteContentReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v0PopularitySvc.DeleteContent(c, p)
c.JSON(resp, err)
}
// RegisterPopularityBMServer Register the blademaster route
func RegisterPopularityBMServer(e *bm.Engine, server PopularityBMServer) {
v0PopularitySvc = server
e.GET("/live.daoanchor.v0.Popularity/GetAnchorGradeList", popularityGetAnchorGradeList)
e.GET("/live.daoanchor.v0.Popularity/EditAnchorGrade", popularityEditAnchorGrade)
e.GET("/live.daoanchor.v0.Popularity/GetContentList", popularityGetContentList)
e.GET("/live.daoanchor.v0.Popularity/AddContent", popularityAddContent)
e.GET("/live.daoanchor.v0.Popularity/EditContent", popularityEditContent)
e.GET("/live.daoanchor.v0.Popularity/DeleteContent", popularityDeleteContent)
}

View File

@@ -0,0 +1,100 @@
<!-- package=live.daoanchor.v0 -->
- [/live.daoanchor.v0.CreateData/CreateCacheList](#live.daoanchor.v0.CreateDataCreateCacheList) CreateCacheList 生成历史数据缓存列表
- [/live.daoanchor.v0.CreateData/CreateLiveCacheList](#live.daoanchor.v0.CreateDataCreateLiveCacheList) CreateLiveCacheList 生成开播历史数据缓存列表
- [/live.daoanchor.v0.CreateData/GetContentMap](#live.daoanchor.v0.CreateDataGetContentMap) GetContentMap 获取需要生成历史数据的对象列表
- [/live.daoanchor.v0.CreateData/CreateDBData](#live.daoanchor.v0.CreateDataCreateDBData)
## /live.daoanchor.v0.CreateData/CreateCacheList
### CreateCacheList 生成历史数据缓存列表
#### 方法GET
#### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|room_ids|否|多个integer||
|content|否|string||
#### 响应
```javascript
{
"code": 0,
"message": "ok",
"data": {
}
}
```
## /live.daoanchor.v0.CreateData/CreateLiveCacheList
### CreateLiveCacheList 生成开播历史数据缓存列表
#### 方法GET
#### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|room_ids|否|多个integer||
|content|否|string||
#### 响应
```javascript
{
"code": 0,
"message": "ok",
"data": {
}
}
```
## /live.daoanchor.v0.CreateData/GetContentMap
### GetContentMap 获取需要生成历史数据的对象列表
#### 方法GET
#### 请求参数
#### 响应
```javascript
{
"code": 0,
"message": "ok",
"data": {
"list": {
"mapKey": 0
}
}
}
```
## /live.daoanchor.v0.CreateData/CreateDBData
### 无标题
#### 方法GET
#### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|room_ids|否|多个integer||
|content|否|string||
#### 响应
```javascript
{
"code": 0,
"message": "ok",
"data": {
}
}
```

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,181 @@
<!-- package=live.daoanchor.v0 -->
- [/live.daoanchor.v0.Popularity/GetAnchorGradeList](#live.daoanchor.v0.PopularityGetAnchorGradeList) GetAnchorGradeList 获取人气值主播评级列表
- [/live.daoanchor.v0.Popularity/EditAnchorGrade](#live.daoanchor.v0.PopularityEditAnchorGrade) EditAnchorGrade 编辑主播评级对应的人气值数据
- [/live.daoanchor.v0.Popularity/GetContentList](#live.daoanchor.v0.PopularityGetContentList) GetContentList 人气内容系数列表
- [/live.daoanchor.v0.Popularity/AddContent](#live.daoanchor.v0.PopularityAddContent) AddContent 添加内容系数
- [/live.daoanchor.v0.Popularity/EditContent](#live.daoanchor.v0.PopularityEditContent) EditContent 编辑内容系数
- [/live.daoanchor.v0.Popularity/DeleteContent](#live.daoanchor.v0.PopularityDeleteContent) DeleteContent 删除内容系数
## /live.daoanchor.v0.Popularity/GetAnchorGradeList
### GetAnchorGradeList 获取人气值主播评级列表
#### 方法GET
#### 请求参数
#### 响应
```javascript
{
"code": 0,
"message": "ok",
"data": {
"list": [
{
// 主播评级id 1=>S;2=>A;3=>B...
"grade_id": 0,
// 主播评级名称 S;A;B...
"grade_name": "",
// 人数基数
"online_base": 0,
// 人气倍数
"popularity_rate": 0
}
]
}
}
```
## /live.daoanchor.v0.Popularity/EditAnchorGrade
### EditAnchorGrade 编辑主播评级对应的人气值数据
#### 方法GET
#### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|grade_id|是|integer||
|online_base|是|integer||
|popularity_rate|是|integer||
#### 响应
```javascript
{
"code": 0,
"message": "ok",
"data": {
}
}
```
## /live.daoanchor.v0.Popularity/GetContentList
### GetContentList 人气内容系数列表
#### 方法GET
#### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|page|否|integer||
|page_size|否|integer||
#### 响应
```javascript
{
"code": 0,
"message": "ok",
"data": {
"page": 0,
"page_size": 0,
"total_count": 0,
"list": [
{
// 父分区id
"parent_area_id": 0,
// 父分区名称
"parent_area_name": "",
// 二级分区信息<id,name>
"area_list": {
"1": ""
},
// 人气倍率系数
"popularity_rate": 0
}
]
}
}
```
## /live.daoanchor.v0.Popularity/AddContent
### AddContent 添加内容系数
#### 方法GET
#### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|parent_id|是|integer||
|list|是|多个integer||
|popularity_rate|是|integer||
|is_all|是|integer||
#### 响应
```javascript
{
"code": 0,
"message": "ok",
"data": {
}
}
```
## /live.daoanchor.v0.Popularity/EditContent
### EditContent 编辑内容系数
#### 方法GET
#### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|id|是|integer||
|popularity_rate|否|integer||
|list|否|多个integer||
|parent_id|否|integer||
|is_all|否|integer||
#### 响应
```javascript
{
"code": 0,
"message": "ok",
"data": {
}
}
```
## /live.daoanchor.v0.Popularity/DeleteContent
### DeleteContent 删除内容系数
#### 方法GET
#### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|id|是|integer||
#### 响应
```javascript
{
"code": 0,
"message": "ok",
"data": {
}
}
```

View File

@@ -0,0 +1,143 @@
syntax = "proto3";
package live.daoanchor.v0;
option go_package = "v0";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
message CreateCacheListReq {
repeated int64 room_ids = 1;
string content = 2;
}
message CreateCacheListResp {
}
message CreateLiveCacheListReq {
repeated int64 room_ids = 1;
string content = 2;
}
message CreateLiveCacheListResp {
}
message GetContentMapReq {
}
message GetContentMapResp {
map<string,int64> list = 1;
}
message CreateDBDataReq {
repeated int64 room_ids = 1;
string content = 2;
}
message CreateDBDataResp {
}
service CreateData {
// CreateCacheList 生成历史数据缓存列表
rpc CreateCacheList(CreateCacheListReq) returns (CreateCacheListResp);
// CreateLiveCacheList 生成开播历史数据缓存列表
rpc CreateLiveCacheList(CreateLiveCacheListReq) returns (CreateLiveCacheListResp);
// GetContentMap 获取需要生成历史数据的对象列表
rpc GetContentMap(GetContentMapReq) returns (GetContentMapResp);
rpc CreateDBData(CreateDBDataReq) returns (CreateDBDataResp);
}
message GetAnchorGradeListReq {
}
message GetAnchorGradeListResp {
repeated List list = 1 [(gogoproto.jsontag) = 'list'];
message List {
//主播评级id 1=>S;2=>A;3=>B...
int64 grade_id = 1 [(gogoproto.jsontag) = 'grade_id'];
//主播评级名称 S;A;B...
string grade_name = 2 [(gogoproto.jsontag) = 'grade_name'];
//人数基数
int64 base_online =3 [(gogoproto.jsontag) = 'online_base'];
//人气倍数
int64 popularity_rate =4 [(gogoproto.jsontag) = 'popularity_rate'];
}
}
message EditAnchorGradeReq {
int64 grade_id =1 [(gogoproto.moretags) = "validate:\"dive,gt=0,required\""];
int64 online_base = 2 [(gogoproto.moretags) = "validate:\"dive,gt=0,required\""];
int64 popularity_rate = 3 [(gogoproto.moretags) = "validate:\"dive,gt=0,required\""];
}
message EditAnchorGradeResp {
}
message AddAnchorGradeReq {
int64 id =1 [(gogoproto.moretags) = "validate:\"dive,gt=0,required\""];
int64 online_base = 2 [(gogoproto.moretags) = "validate:\"dive,gt=0,required\""];
int64 popularity_rate = 3 [(gogoproto.moretags) = "validate:\"dive,gt=0,required\""];
}
message AddAnchorGradeResp {
}
message GetContentListReq {
int64 page = 1;
int64 page_size = 2;
}
message GetContentListResp {
int64 page = 1;
int64 page_size = 2;
int64 total_count = 3;
repeated List list = 4 [(gogoproto.jsontag) = 'list'];
message List {
//父分区id
int64 parent_area_id = 1 [(gogoproto.jsontag) = 'parent_area_id'];
//父分区名称
string parent_area_name =2 [(gogoproto.jsontag) = 'parent_area_name'];
//二级分区信息<id,name>
map<int64,string> area_list = 3 [(gogoproto.jsontag) = 'area_list'];
//人气倍率系数
int64 popularity_rate =4 [(gogoproto.jsontag) = 'popularity_rate'];
}
}
message EditContentReq {
int64 id = 1 [(gogoproto.moretags) = "validate:\"dive,gt=0,required\""];
int64 popularity_rate = 2;
repeated int64 list =3;
int64 parent_id = 4;
int64 is_all =5;
}
message EditContentResp {
}
message AddContentReq {
int64 parent_id = 1 [(gogoproto.moretags) = "validate:\"dive,gt=0,required\""];
repeated int64 list = 2 [(gogoproto.moretags) = "validate:\"dive,gt=0,required\""];
int64 popularity_rate = 3 [(gogoproto.moretags) = "validate:\"dive,gt=0,required\""];
int64 is_all =4 [(gogoproto.moretags) = "validate:\"dive,gt=0,required\""];
}
message AddContentResp {
}
message DeleteContentReq {
int64 id = 1 [(gogoproto.moretags) = "validate:\"dive,gt=0,required\""];
}
message DeleteContentResp {
}
//人气相关接口
service Popularity {
// GetAnchorGradeList 获取人气值主播评级列表
rpc GetAnchorGradeList(GetAnchorGradeListReq) returns (GetAnchorGradeListResp);
// EditAnchorGrade 编辑主播评级对应的人气值数据
rpc EditAnchorGrade(EditAnchorGradeReq) returns (EditAnchorGradeResp);
// GetContentList 人气内容系数列表
rpc GetContentList(GetContentListReq) returns (GetContentListResp);
// AddContent 添加内容系数
rpc AddContent(AddContentReq) returns (AddContentResp);
// EditContent 编辑内容系数
rpc EditContent(EditContentReq) returns (EditContentResp);
// DeleteContent 删除内容系数
rpc DeleteContent(DeleteContentReq) returns (DeleteContentResp);
}

View File

@@ -0,0 +1,27 @@
package v0
import (
"context"
"google.golang.org/grpc"
"go-common/library/net/rpc/warden"
)
const AppID = "live.daoanchor"
type Client struct {
CreateDataClient
}
// NewClient new anchor grpc client
func NewClient(cfg *warden.ClientConfig, opts ...grpc.DialOption) (*Client, error) {
client := warden.NewClient(cfg, opts...)
conn, err := client.Dial(context.Background(), "discovery://default/"+AppID)
if err != nil {
return nil, err
}
cli := &Client{}
cli.CreateDataClient = NewCreateDataClient(conn)
return cli, nil
}