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,192 @@
## (主播侧)-我的主播奖励(登录态)
`POST http://api.live.bilibili.com/xlive/internal/xrewardcenter/v1/anchorReward/myReward`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|page|否|integer| 页数|
|uid|是|integer| 主播uid|
```json
{
"code": 0,
"message": "ok",
"data": {
"data": [
{
// id
"id": 0,
// 奖励类型 1:ss推荐卡 2:s推荐卡、任意门
"reward_type": 0,
// 1:未使用,3:已使用,5:已过期
"status": 0,
// 奖励id
"reward_id": 0,
// 奖励名称
"name": "",
// 奖励图标
"icon": "",
// 获得时间datetime
"achieve_time": "",
// 过期时间datetime
"expire_time": "",
// 来源,1:主播任务,2:小时榜
"source": 0,
// 奖励简介
"reward_intro": ""
}
],
"page": {
// 当前页码
"page": 0,
// 每页大小
"page_size": 0,
// 总页数
"total_page": 0,
// 总记录数
"total_count": 0
},
// 过期奖励数量
"expire_count": 0
}
}
```
##* (主播侧)-奖励使用记录(登录态)
`GET http://api.live.bilibili.com/xlive/xrewardcenter/v1/anchorReward/useRecord`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|page|否|integer| 页数|
|uid|是|integer| 主播uid|
```json
{
"code": 0,
"message": "ok",
"data": {
"data": [
{
// id
"id": 0,
// 奖励id
"reward_id": 0,
// 1:未使用,3:已使用,5:已过期
"status": 0,
// 奖励名称
"name": "",
// 奖励图标
"icon": "",
// 获得时间datetime
"achieve_time": "",
// 获得时间datetime
"use_time": "",
// 过期时间datetime
"expire_time": "",
// 来源,1:主播任务,2:小时榜
"source": 0,
// 奖励简介
"reward_intro": ""
}
],
"page": {
// 当前页码
"page": 0,
// 每页大小
"page_size": 0,
// 总页数
"total_page": 0,
// 总记录数
"total_count": 0
}
}
}
```
##* (主播侧)-使用奖励(登录态)
`GET http://api.live.bilibili.com/xlive/xrewardcenter/v1/anchorReward/useReward`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|id|是|integer| 奖励列表id|
|uid|是|integer| 主播uid|
|use_plat|是|string| 使用平台|
```json
{
"code": 0,
"message": "ok",
"data": {
"result": 0
}
}
```
##* (主播侧)-奖励和任务红点(登录态)
`GET http://api.live.bilibili.com/xlive/xrewardcenter/v1/anchorReward/isViewed`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|uid|是|integer| 主播uid|
```json
{
"code": 0,
"message": "ok",
"data": {
// 是否展示任务红点
"task_should_notice": 0,
// 是否展示奖励入口
"show_reward_entry": 0,
// 是否展示奖励红点
"reward_should_notice": 0,
// 任务状态, 0:没有,1:领取, 5:完成
"task_status": 0,
// 是否在首页黑名单中
"is_blacked": 0,
// 点击跳转h5链接
"url": ""
}
}
```
## (主播侧)-添加主播奖励(内部接口)
`POST http://api.live.bilibili.com/xlive/internal/xrewardcenter/v1/anchorReward/addReward`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|reward_id|是|integer| 奖励id, 1:任意门|
|roomid|是|integer| 房间号|
|source|是|integer| 来源,1:主播任务,2:小时榜,3:周星|
|uid|是|integer| 主播uid|
|order_id|是|string| 流水单号|
|lifespan|否|integer| 礼物有效期小时数,默认24小时|
```json
{
"code": 0,
"message": "ok",
"data": {
// 是否成功
"result": 0
}
}
```

View File

@@ -0,0 +1,122 @@
// Code generated by protoc-gen-bm v0.1, DO NOT EDIT.
// source: api/grpc/v1/AnchorReward.proto
/*
Package v1 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/grpc/v1/AnchorReward.proto
*/
package v1
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
// ======================
// AnchorReward Interface
// ======================
type AnchorReward interface {
// (主播侧)-我的主播奖励(登录态)
// `method:"POST" internal:"true"`
MyReward(ctx context.Context, req *AnchorTaskMyRewardReq) (resp *AnchorTaskMyRewardResp, err error)
// * (主播侧)-奖励使用记录(登录态)
//
UseRecord(ctx context.Context, req *AnchorTaskUseRecordReq) (resp *AnchorTaskUseRecordResp, err error)
// * (主播侧)-使用奖励(登录态)
//
UseReward(ctx context.Context, req *AnchorTaskUseRewardReq) (resp *AnchorTaskUseRewardResp, err error)
// * (主播侧)-奖励和任务红点(登录态)
//
IsViewed(ctx context.Context, req *AnchorTaskIsViewedReq) (resp *AnchorTaskIsViewedResp, err error)
// (主播侧)-添加主播奖励(内部接口)
// `method:"POST" internal:"true"`
AddReward(ctx context.Context, req *AnchorTaskAddRewardReq) (resp *AnchorTaskAddRewardResp, err error)
}
var v1AnchorRewardSvc AnchorReward
// @params AnchorTaskMyRewardReq
// @router POST /xlive/internal/xrewardcenter/v1/anchorReward/myReward
// @response AnchorTaskMyRewardResp
func anchorRewardMyReward(c *bm.Context) {
p := new(AnchorTaskMyRewardReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v1AnchorRewardSvc.MyReward(c, p)
c.JSON(resp, err)
}
// @params AnchorTaskUseRecordReq
// @router GET /xlive/xrewardcenter/v1/anchorReward/useRecord
// @response AnchorTaskUseRecordResp
func anchorRewardUseRecord(c *bm.Context) {
p := new(AnchorTaskUseRecordReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v1AnchorRewardSvc.UseRecord(c, p)
c.JSON(resp, err)
}
// @params AnchorTaskUseRewardReq
// @router GET /xlive/xrewardcenter/v1/anchorReward/useReward
// @response AnchorTaskUseRewardResp
func anchorRewardUseReward(c *bm.Context) {
p := new(AnchorTaskUseRewardReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v1AnchorRewardSvc.UseReward(c, p)
c.JSON(resp, err)
}
// @params AnchorTaskIsViewedReq
// @router GET /xlive/xrewardcenter/v1/anchorReward/isViewed
// @response AnchorTaskIsViewedResp
func anchorRewardIsViewed(c *bm.Context) {
p := new(AnchorTaskIsViewedReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v1AnchorRewardSvc.IsViewed(c, p)
c.JSON(resp, err)
}
// @params AnchorTaskAddRewardReq
// @router POST /xlive/internal/xrewardcenter/v1/anchorReward/addReward
// @response AnchorTaskAddRewardResp
func anchorRewardAddReward(c *bm.Context) {
p := new(AnchorTaskAddRewardReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v1AnchorRewardSvc.AddReward(c, p)
c.JSON(resp, err)
}
// RegisterV1AnchorRewardService Register the blademaster route with middleware map
// midMap is the middleware map, the key is defined in proto
func RegisterV1AnchorRewardService(e *bm.Engine, svc AnchorReward, midMap map[string]bm.HandlerFunc) {
v1AnchorRewardSvc = svc
e.POST("/xlive/internal/xrewardcenter/v1/anchorReward/myReward", anchorRewardMyReward)
e.GET("/xlive/xrewardcenter/v1/anchorReward/useRecord", anchorRewardUseRecord)
e.GET("/xlive/xrewardcenter/v1/anchorReward/useReward", anchorRewardUseReward)
e.GET("/xlive/xrewardcenter/v1/anchorReward/isViewed", anchorRewardIsViewed)
e.POST("/xlive/internal/xrewardcenter/v1/anchorReward/addReward", anchorRewardAddReward)
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,191 @@
syntax = "proto3";
package live.xrewardcenter.v1;
option go_package = "v1";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
service AnchorReward {
// (主播侧)-我的主播奖励(登录态)
// `method:"POST" internal:"true"`
rpc myReward (AnchorTaskMyRewardReq) returns (AnchorTaskMyRewardResp);
/** (主播侧)-奖励使用记录(登录态)
*
*/
rpc useRecord (AnchorTaskUseRecordReq) returns (AnchorTaskUseRecordResp);
/** (主播侧)-使用奖励(登录态)
*
*/
rpc useReward (AnchorTaskUseRewardReq) returns (AnchorTaskUseRewardResp);
/** (主播侧)-奖励和任务红点(登录态)
*
*/
rpc isViewed (AnchorTaskIsViewedReq) returns (AnchorTaskIsViewedResp);
// (主播侧)-添加主播奖励(内部接口)
// `method:"POST" internal:"true"`
rpc addReward (AnchorTaskAddRewardReq) returns (AnchorTaskAddRewardResp);
}
message AnchorTaskAddRewardReq {
// 奖励id, 1:任意门
int64 reward_id = 4 [(gogoproto.moretags) = "form:\"reward_id\" validate:\"required\""];
// 房间号
int64 roomid = 8 [(gogoproto.moretags) = "form:\"roomid\" validate:\"required\""];
// 来源,1:主播任务,2:小时榜,3:周星
int64 source = 9 [(gogoproto.moretags) = "form:\"source\" validate:\"required\""];
// 主播uid
int64 uid = 10 [(gogoproto.moretags) = "form:\"uid\" validate:\"required\""];
// 流水单号
string order_id = 11 [(gogoproto.moretags) = "form:\"order_id\" validate:\"required\""];
// 礼物有效期小时数,默认24小时
int64 lifespan = 12 [(gogoproto.moretags) = "form:\"lifespan\" validate:\"min=0\""];
}
message AnchorTaskAddRewardResp {
// 是否成功
int64 result = 1;
}
message AnchorTaskMyRewardReq {
// 页数
int64 page = 1 [(gogoproto.moretags) = "form:\"page\""];
// 主播uid
int64 uid = 2 [(gogoproto.moretags) = "form:\"uid\" validate:\"required\""];
}
message AnchorTaskMyRewardResp {
//
repeated RewardObj data = 1;
//
Page page = 2;
// 过期奖励数量
int64 expire_count = 3;
message RewardObj {
// id
int64 id = 1;
// 奖励类型 1:ss推荐卡 2:s推荐卡、任意门
int64 reward_type = 2;
// 1:未使用,3:已使用,5:已过期
int64 status = 3;
// 奖励id
int64 reward_id = 4;
// 奖励名称
string name = 5;
// 奖励图标
string icon = 6;
// 获得时间datetime
string achieve_time = 7;
// 过期时间datetime
string expire_time = 8;
// 来源,1:主播任务,2:小时榜
int64 source = 9;
// 奖励简介
string reward_intro = 10;
}
message Page {
// 当前页码
int64 page = 1;
// 每页大小
int64 page_size = 2;
// 总页数
int64 total_page = 3;
// 总记录数
int64 total_count = 4;
}
}
message AnchorTaskUseRecordReq {
// 页数
int64 page = 1 [(gogoproto.moretags) = "form:\"page\""];
// 主播uid
int64 uid = 2 [(gogoproto.moretags) = "form:\"uid\" validate:\"required\""];
}
message AnchorTaskUseRecordResp {
message RewardObj {
// id
int64 id = 1;
// 奖励id
int64 reward_id = 2;
// 1:未使用,3:已使用,5:已过期
int64 status = 3;
// 奖励名称
string name = 4;
// 奖励图标
string icon = 5;
// 获得时间datetime
string achieve_time = 6;
// 获得时间datetime
string use_time = 10;
// 过期时间datetime
string expire_time = 7;
// 来源,1:主播任务,2:小时榜
int64 source = 8;
// 奖励简介
string reward_intro = 9;
}
message Page {
// 当前页码
int64 page = 1;
// 每页大小
int64 page_size = 2;
// 总页数
int64 total_page = 3;
// 总记录数
int64 total_count = 4;
}
//
repeated RewardObj data = 1;
//
Page page = 2;
}
message AnchorTaskUseRewardReq {
// 奖励列表id
int64 id = 1 [(gogoproto.moretags) = "form:\"id\" validate:\"required\""];
// 主播uid
int64 uid = 2 [(gogoproto.moretags) = "form:\"uid\" validate:\"required\""];
// 使用平台
string use_plat = 3 [(gogoproto.moretags) = "form:\"use_plat\" validate:\"required\""];
}
message AnchorTaskUseRewardResp {
int64 result = 1;
}
message AnchorTaskIsViewedReq {
// 主播uid
int64 uid = 1 [(gogoproto.moretags) = "form:\"uid\" validate:\"required\""];
}
message AnchorTaskIsViewedResp {
// 是否展示任务红点
int64 task_should_notice = 1;
// 是否展示奖励入口
int64 show_reward_entry = 5;
// 是否展示奖励红点
int64 reward_should_notice = 2;
// 任务状态, 0:没有,1:领取, 5:完成
int64 task_status = 3;
// 是否在首页黑名单中
int64 is_blacked = 4;
// 点击跳转h5链接
string url = 6;
}

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",
)
go_library(
name = "go_default_library",
srcs = [
"AnchorReward.bm.go",
"client.go",
],
embed = [":v1_go_proto"],
importpath = "go-common/app/service/live/xrewardcenter/api/grpc/v1",
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"],
)
proto_library(
name = "v1_proto",
srcs = ["AnchorReward.proto"],
tags = ["automanaged"],
deps = ["@gogo_special_proto//github.com/gogo/protobuf/gogoproto"],
)
go_proto_library(
name = "v1_go_proto",
compilers = ["@io_bazel_rules_go//proto:gogofast_grpc"],
importpath = "go-common/app/service/live/xrewardcenter/api/grpc/v1",
proto = ":v1_proto",
tags = ["automanaged"],
deps = ["@com_github_gogo_protobuf//gogoproto:go_default_library"],
)

View File

@@ -0,0 +1,24 @@
package v1
import (
"context"
"go-common/library/net/rpc/warden"
"google.golang.org/grpc"
)
// AppID unique app id for service discovery
const AppID = "live.xrewardcenter"
// NewClient new member grpc client
func NewClient(cfg *warden.ClientConfig, opts ...grpc.DialOption) (AnchorRewardClient, error) {
client := warden.NewClient(cfg, opts...)
conn, err := client.Dial(context.Background(), "discovery://default/"+AppID)
//conn, err := client.Dial(context.Background(), "127.0.0.1:9000")
if err != nil {
return nil, err
}
return NewAnchorRewardClient(conn), nil
}