go-common/app/service/live/xuser/api/grpc/v1/exp.proto
2019-04-22 18:49:16 +08:00

93 lines
3.4 KiB
Protocol Buffer

syntax = "proto3";
package live.xuser.v1;
option go_package = "v1";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
// UserExp 相关服务
service UserExp {
// GetUserExpMulti 获取用户经验与等级信息,支持批量
rpc GetUserExp(GetUserExpReq) returns (GetUserExpResp);
// AddUserExp 增加用户经验,不支持批量
rpc AddUserExp(AddUserExpReq) returns (AddUserExpResp);
}
message AddUserExpReq {
UserExpChunk userInfo = 1 [(gogoproto.moretags) = 'form:"userInfo" validate:"required"'];
}
message UserExpChunk {
int64 uid = 1 [(gogoproto.moretags) = 'form:"uid" validate:"gt=0,required"'];
int64 req_biz = 2 [(gogoproto.moretags) = 'form:"req_biz" validate:"required"'];
int64 type = 3 [(gogoproto.moretags) = 'form:"type" validate:"gt=0,required"'];
int64 num = 4 [(gogoproto.moretags) = 'form:"num" validate:"gt=0,required"'];
}
message AddUserExpResp{
}
// GetUserExpReq 请求
message GetUserExpReq {
repeated int64 uids = 1 [(gogoproto.moretags) = 'form:"uids" validate:"gt=0,required"'];
}
// GetUserExpResp 响应
message GetUserExpResp {
map<int64, LevelInfo> data = 1 [(gogoproto.jsontag) = "data"];
}
message LevelInfo {
int64 uid = 1 [(gogoproto.jsontag) = "uid"];
UserLevelInfo userLevel = 2 [(gogoproto.jsontag) = "userLevel"];
AnchorLevelInfo anchorLevel = 3 [(gogoproto.jsontag) = "anchorLevel"];
}
message UserLevelInfo {
// 当前用户等级
int64 level = 1 [(gogoproto.jsontag) = "level"];
// 下一等级
int64 nextLevel = 2 [(gogoproto.jsontag) = "nextLevel"];
// 当前等级对应的经验
int64 userExpLeft = 3 [(gogoproto.jsontag) = "userExpLeft"];
// 下一等级对应的经验
int64 userExpRight = 4 [(gogoproto.jsontag) = "userExpRight"];
// 用户当前经验
int64 userExp = 5 [(gogoproto.jsontag) = "userExp"];
// 升级到下一等级对应的经验
int64 userExpNextLevel = 6 [(gogoproto.jsontag) = "userExpNextLevel"];
// 当前等级颜色
int64 color = 7 [(gogoproto.jsontag) = "color"];
// 下一等级左侧对应的经验
int64 userExpNextLeft = 8 [(gogoproto.jsontag) = "userExpNextLeft"];
// 下一等级右侧对应的经验
int64 userExpNextRight = 9 [(gogoproto.jsontag) = "userExpNextRight"];
int64 isLevelTop = 10 [(gogoproto.jsontag) = "isLevelTop"];
}
message AnchorLevelInfo {
// 当前用户等级
int64 level = 1 [(gogoproto.jsontag) = "level"];
// 下一等级
int64 nextLevel = 2 [(gogoproto.jsontag) = "nextLevel"];
// 当前等级对应的经验
int64 userExpLeft = 3 [(gogoproto.jsontag) = "userExpLeft"];
// 下一等级对应的经验
int64 userExpRight = 4 [(gogoproto.jsontag) = "userExpRight"];
// 用户当前经验
int64 userExp = 5 [(gogoproto.jsontag) = "userExp"];
// 升级到下一等级对应的经验
int64 userExpNextLevel = 6 [(gogoproto.jsontag) = "userExpNextLevel"];
// 当前等级颜色
int64 color = 7 [(gogoproto.jsontag) = "color"];
// 下一等级左侧对应的经验
int64 userExpNextLeft = 8 [(gogoproto.jsontag) = "userExpNextLeft"];
// 下一等级右侧对应的经验
int64 userExpNextRight = 9 [(gogoproto.jsontag) = "userExpNextRight"];
// 主播积分,userExp/100
int64 anchorScore = 10 [(gogoproto.jsontag) = "anchorScore"];
int64 isLevelTop = 11 [(gogoproto.jsontag) = "isLevelTop"];
}