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,63 @@
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 = "api_proto",
srcs = ["api.proto"],
tags = ["automanaged"],
deps = ["@gogo_special_proto//github.com/gogo/protobuf/gogoproto"],
)
go_proto_library(
name = "api_go_proto",
compilers = ["@io_bazel_rules_go//proto:gogofast_grpc"],
importpath = "go-common/app/service/live/xroom-feed/api",
proto = ":api_proto",
tags = ["automanaged"],
deps = ["@com_github_gogo_protobuf//gogoproto:go_default_library"],
)
go_library(
name = "go_default_library",
srcs = [
"api.bm.go",
"client.go",
"generate.go",
],
embed = [":api_go_proto"],
importpath = "go-common/app/service/live/xroom-feed/api",
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,51 @@
// Code generated by protoc-gen-bm v0.1, DO NOT EDIT.
// source: api.proto
/*
Package api 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 api
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 PathRecPoolGetList = "/live.xroomfeed.v1.RecPool/GetList"
// =================
// RecPool Interface
// =================
type RecPoolBMServer interface {
// 根据模块位置获取投放列表 position=>RoomItem
GetList(ctx context.Context, req *RecPoolReq) (resp *RecPoolResp, err error)
}
var RecPoolSvc RecPoolBMServer
func recPoolGetList(c *bm.Context) {
p := new(RecPoolReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := RecPoolSvc.GetList(c, p)
c.JSON(resp, err)
}
// RegisterRecPoolBMServer Register the blademaster route
func RegisterRecPoolBMServer(e *bm.Engine, server RecPoolBMServer) {
RecPoolSvc = server
e.GET("/live.xroomfeed.v1.RecPool/GetList", recPoolGetList)
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,59 @@
syntax = "proto3";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
package live.xroomfeed.v1;
option go_package = "api";
option (gogoproto.goproto_getters_all) = false;
service RecPool {
// 根据模块位置获取投放列表 position=>RoomItem
rpc GetList (RecPoolReq) returns (RecPoolResp);
}
message RecPoolReq {
// 投放模块
int64 module_type = 1 [(gogoproto.moretags)='form:"module_type" validate:"required"'];
// 投放模块位置数
int64 position_num = 2 [(gogoproto.moretags)='form:"position_num" validate:"required"'];
// 投放模块页数 不传或传0、1都按一页算(暂时没用)
int64 page_num = 3 [(gogoproto.moretags)='form:"page_num"'];
// 当前模块已存在的位置房间逗号分隔、有序1~position*N内部去重,保证同一个房间优先出现在好位置)
string module_exist_rooms = 4 [(gogoproto.moretags)='form:"module_exist_rooms"'];
// 其它模块已存在的位置房间逗号分隔、有序1~position*N内部去重,保证同一个房间优先出现在好位置)
string other_exist_rooms = 5 [(gogoproto.moretags)='form:"other_exist_rooms"'];
// 请求来源
string from = 6 [(gogoproto.moretags)='form:"from"'];
}
message RecPoolResp {
// 主播position => 房间信息(依赖计算的)
map<int64, RoomItem> list = 1 [(gogoproto.jsontag) = "list"];
}
message RoomItem {
//房间id
int64 room_id = 1 [(gogoproto.jsontag) = 'room_id'];
//主播uid
int64 uid = 2 [(gogoproto.jsontag) = 'uid'];
//房间标题
string title = 3 [(gogoproto.jsontag) = 'title'];
//人气
int64 popularity_count = 4 [(gogoproto.jsontag) = 'popularity_count'];
//关键帧
string keyframe = 5 [(gogoproto.jsontag) = 'keyframe'];
//封面
string cover = 6 [(gogoproto.jsontag) = 'cover'];
//二级分区id
int64 area_id = 7 [(gogoproto.jsontag) = 'area_id'];
//一级分区id
int64 parent_area_id = 8 [(gogoproto.jsontag) = 'parent_area_id'];
//二级分区名称
string area_name = 9 [(gogoproto.jsontag) = 'area_name'];
//一级分区名称
string parent_area_name = 10 [(gogoproto.jsontag) = 'parent_area_name'];
//推荐规则 10000+rule_id
int64 rec_type = 11 [(gogoproto.jsontag) = 'rec_type'];
}

View File

@@ -0,0 +1,57 @@
<!-- package=live.xroomfeed.v1 -->
- [/live.xroomfeed.v1.RecPool/GetList](#live.xroomfeed.v1.RecPoolGetList) 根据模块位置获取投放列表 position=>RoomItem
## /live.xroomfeed.v1.RecPool/GetList
### 根据模块位置获取投放列表 position=>RoomItem
#### 方法GET
#### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|module_type|是|integer| 投放模块|
|position_num|是|integer| 投放模块位置数|
|page_num|否|integer| 投放模块页数 不传或传0、1都按一页算(暂时没用)|
|module_exist_rooms|否|string| 当前模块已存在的位置房间逗号分隔、有序1~position*N内部去重,保证同一个房间优先出现在好位置)|
|other_exist_rooms|否|string| 其它模块已存在的位置房间逗号分隔、有序1~position*N内部去重,保证同一个房间优先出现在好位置)|
|from|否|string| 请求来源|
#### 响应
```javascript
{
"code": 0,
"message": "ok",
"data": {
// 主播position => 房间信息(依赖计算的)
"list": {
"1": {
// 房间id
"room_id": 0,
// 主播uid
"uid": 0,
// 房间标题
"title": "",
// 人气
"popularity_count": 0,
// 关键帧
"keyframe": "",
// 封面
"cover": "",
// 二级分区id
"area_id": 0,
// 一级分区id
"parent_area_id": 0,
// 二级分区名称
"area_name": "",
// 一级分区名称
"parent_area_name": "",
// 推荐规则 10000+rule_id
"rec_type": 0
}
}
}
}
```

View File

@@ -0,0 +1,27 @@
package api
import (
"context"
"google.golang.org/grpc"
"go-common/library/net/rpc/warden"
)
const AppID = "live.xroomfeed"
type Client struct {
RecPoolClient RecPoolClient
}
// NewClient xroom-feed 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.RecPoolClient = NewRecPoolClient(conn)
return cli, nil
}

View File

@@ -0,0 +1,4 @@
package api
// 生成 gRPC 代码
//go:generate $GOPATH/src/go-common/app/tool/warden/protoc.sh