syntax="proto3"; package live.webucenter.v1; option go_package ="v1"; import "github.com/gogo/protobuf/gogoproto/gogo.proto"; // History 相关服务 service history { // 根据uid查询直播关键历史记录 // `midware:"auth"` rpc get_history_by_uid (GetHistoryReq) returns (GetHistoryResp); // 删除直播历史记录 // `method:"POST" midware:"auth"` rpc del_history (DelHistoryReq) returns (DelHistoryResp); } service Capsule{ // `midware:"auth"` rpc get_detail(CapsuleGetDetailReq) returns (CapsuleGetDetailResp); // `method:"POST" midware:"auth"` rpc open_capsule(CapsuleOpenCapsuleReq) returns (CapsuleOpenCapsuleResp); // `midware:"guest"` rpc get_capsule_info (CapsuleGetCapsuleInfoReq) returns (CapsuleGetCapsuleInfoResp); // `method:"POST" midware:"auth"` rpc open_capsule_by_type (CapsuleOpenCapsuleByTypeReq) returns (CapsuleOpenCapsuleByTypeResp); } // 历史记录请求参数定义 message GetHistoryReq { } // 获取接口返回响应 message GetHistoryResp { string title = 1 [(gogoproto.jsontag) = 'title']; int32 count = 4 [(gogoproto.jsontag) = 'count']; repeated List list = 5 [(gogoproto.jsontag) = 'list']; message List { int64 roomid = 1 [(gogoproto.jsontag) = 'roomid']; int32 uid = 2 [(gogoproto.jsontag) = 'uid']; string uname =3; string user_cover = 4 [(gogoproto.jsontag) = 'user_cover']; string title = 5 [(gogoproto.jsontag) = 'title']; string face = 6 [(gogoproto.jsontag) = 'face']; string tags = 7 [(gogoproto.jsontag) = 'tags']; int32 live_status = 9 [(gogoproto.jsontag) = 'live_status']; int32 fans_num = 10 [(gogoproto.jsontag) = 'fans_num']; int32 is_attention = 12 [(gogoproto.jsontag) = 'is_attention']; int32 area_v2_id = 13; string area_v2_name = 14 [(gogoproto.jsontag) = 'area_v2_name']; string area_v2_parent_name = 15 [(gogoproto.jsontag) = 'area_v2_parent_name']; int32 area_v2_parent_id = 16; } } // 删除历史记录参数定义 message DelHistoryReq { } // 删除直播历史记录响应 message DelHistoryResp { } service AnchorTask { // (主播侧)-我的主播奖励(登录态) // `midware:"auth"` rpc myReward (AnchorTaskMyRewardReq) returns (AnchorTaskMyRewardResp); // (主播侧)-奖励使用记录(登录态) // `midware:"auth"` rpc useRecord (AnchorTaskUseRecordReq) returns (AnchorTaskUseRecordResp); // (主播侧)-使用奖励(登录态) // `method:"POST" midware:"auth"` rpc useReward (AnchorTaskUseRewardReq) returns (AnchorTaskUseRewardResp); // (主播侧)-奖励和任务红点(登录态) // `midware:"auth"` 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:小时榜 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\""]; } message AnchorTaskAddRewardResp { int64 result = 1 [(gogoproto.jsontag) = 'result']; } message AnchorTaskMyRewardReq { // 页数 int64 page = 1 [(gogoproto.moretags) = "form:\"page\""]; } message AnchorTaskMyRewardResp { // repeated RewardObj data = 1 [(gogoproto.jsontag) = 'data']; // Page page = 2 [(gogoproto.jsontag) = 'page']; // 过期奖励数量 int64 expire_count = 3 [(gogoproto.jsontag) = 'expire_count']; message RewardObj { // id int64 id = 1 [(gogoproto.jsontag) = 'id']; // 奖励类型 1:ss推荐卡 2:s推荐卡、任意门 int64 reward_type = 2 [(gogoproto.jsontag) = 'reward_type']; // 1:未使用,3:已使用,5:已过期 int64 status = 3 [(gogoproto.jsontag) = 'status']; // 奖励id int64 reward_id = 4 [(gogoproto.jsontag) = 'reward_id']; // 奖励名称 string name = 5 [(gogoproto.jsontag) = 'name']; // 奖励图标 string icon = 6 [(gogoproto.jsontag) = 'icon']; // 获得时间datetime string achieve_time = 7 [(gogoproto.jsontag) = 'achieve_time']; // 过期时间datetime string expire_time = 8 [(gogoproto.jsontag) = 'expire_time']; // 来源,1:主播任务,2:小时榜 int64 source = 9 [(gogoproto.jsontag) = 'source']; // 奖励简介 string reward_intro = 10 [(gogoproto.jsontag) = 'reward_intro']; } message Page { // 当前页码 int64 page = 1 [(gogoproto.jsontag) = 'page']; // 每页大小 int64 page_size = 2 [(gogoproto.jsontag) = 'page_size']; // 总页数 int64 total_page = 3 [(gogoproto.jsontag) = 'total_page']; // 总记录数 int64 total_count = 4 [(gogoproto.jsontag) = 'total_count']; } } message AnchorTaskUseRecordReq { // 页数 int64 page = 1 [(gogoproto.moretags) = "form:\"page\""]; } message AnchorTaskUseRecordResp { message RewardObj { // id int64 id = 1 [(gogoproto.jsontag) = 'id']; // 奖励id int64 reward_id = 2 [(gogoproto.jsontag) = 'reward_id']; // 1:未使用,3:已使用,5:已过期 int64 status = 3 [(gogoproto.jsontag) = 'status']; // 奖励名称 string name = 4 [(gogoproto.jsontag) = 'name']; // 奖励图标 string icon = 5 [(gogoproto.jsontag) = 'icon']; // 获得时间datetime string achieve_time = 6 [(gogoproto.jsontag) = 'achieve_time']; // 过期时间datetime string expire_time = 7 [(gogoproto.jsontag) = 'expire_time']; // 来源,1:主播任务,2:小时榜 int64 source = 8 [(gogoproto.jsontag) = 'source']; // 奖励简介 string reward_intro = 9 [(gogoproto.jsontag) = 'reward_intro']; // 获得时间datetime string use_time = 10 [(gogoproto.jsontag) = 'use_time']; } message Page { // 当前页码 int64 page = 1 [(gogoproto.jsontag) = 'page']; // 每页大小 int64 page_size = 2 [(gogoproto.jsontag) = 'page_size']; // 总页数 int64 total_page = 3 [(gogoproto.jsontag) = 'total_page']; // 总记录数 int64 total_count = 4 [(gogoproto.jsontag) = 'total_count']; } // repeated RewardObj data = 1 [(gogoproto.jsontag) = 'data']; // Page page = 2 [(gogoproto.jsontag) = 'page']; } message AnchorTaskUseRewardReq { // 奖励列表id int64 id = 1 [(gogoproto.moretags) = "form:\"id\" validate:\"required\""]; // 使用平台 string platform = 2 [(gogoproto.moretags) = "form:\"platform\""]; } message AnchorTaskUseRewardResp { int64 result = 1 [(gogoproto.jsontag) = 'result']; } message AnchorTaskIsViewedReq { } message AnchorTaskIsViewedResp { // 是否展示任务红点 int64 task_should_notice = 1 [(gogoproto.jsontag) = 'task_should_notice']; // 是否展示奖励入口 int64 show_reward_entry = 5 [(gogoproto.jsontag) = 'show_reward_entry']; // 是否展示奖励红点 int64 reward_should_notice = 2 [(gogoproto.jsontag) = 'reward_should_notice']; // 任务状态, 0:没有,1:领取, 5:完成 int64 task_status = 3 [(gogoproto.jsontag) = 'task_status']; // 是否在首页黑名单中 int64 is_blacked = 4 [(gogoproto.jsontag) = 'is_blacked']; // 点击跳转h5链接 string url = 6 [(gogoproto.jsontag) = 'url']; } message CapsuleGetDetailReq { // 来源 h5 web room string from = 2 [(gogoproto.moretags) = 'form:"from"']; } message Usage { // 用法描述 string text = 1 [(gogoproto.jsontag) = "text"]; // 跳转链接 string url = 2 [(gogoproto.jsontag) = "url"]; } message Progress { // 当前进度 int64 now = 1 [(gogoproto.jsontag) = "now"]; // 最大进度 int64 max = 2 [(gogoproto.jsontag) = "max"]; } message CapsuleGetDetailResp { // 普通扭蛋信息 CapsuleInfo normal = 1 [(gogoproto.jsontag) = "normal"]; // 梦幻扭蛋信息,若梦幻扭蛋status=false,则无coin、change、process、gift、list字段 CapsuleInfo colorful = 2 [(gogoproto.jsontag) = "colorful"]; message Gift { // 礼物名称 string name = 2 [(gogoproto.jsontag) = "name"]; // 礼物图片 string image = 3 [(gogoproto.jsontag) = "image"]; // 用法 Usage usage = 4 [(gogoproto.jsontag) = "usage"]; // web礼物图片 string web_image = 5 [(gogoproto.jsontag) = "web_image"]; // mobile礼物图片 string mobile_image = 6 [(gogoproto.jsontag) = "mobile_image"]; } message List { // 数量 int64 num = 1 [(gogoproto.jsontag) = "num"]; // 礼物名称 string gift = 2 [(gogoproto.jsontag) = "gift"]; // 时间 string date = 3 [(gogoproto.jsontag) = "date"]; // 用户名 string name = 4 [(gogoproto.jsontag) = "name"]; } message CapsuleInfo { // bool status = 1 [(gogoproto.jsontag) = "status"]; // 扭蛋数量 int64 coin = 2 [(gogoproto.jsontag) = "coin"]; // 变化值 int64 change = 3 [(gogoproto.jsontag) = "change"]; // 进度 Progress progress = 4 [(gogoproto.jsontag) = "progress"]; // 规则 string rule = 5 [(gogoproto.jsontag) = "rule"]; // 奖品列表 repeated Gift gift = 6 [(gogoproto.jsontag) = "gift"]; // 历史获奖列表 repeated List list = 7 [(gogoproto.jsontag) = "list"]; } } message CapsuleOpenCapsuleReq { // 扭蛋类型 string type = 2 [(gogoproto.moretags) = 'form:"type" validate:"required"']; // 扭的个数 int64 count = 3 [(gogoproto.moretags) = 'form:"count" validate:"required"']; string platform = 4 [(gogoproto.moretags) = 'form:"platform"']; } message CapsuleOpenCapsuleResp { // 扭蛋币扣除状态 bool status = 1 [(gogoproto.jsontag) = "status"]; // 奖品文案 repeated string text = 2 [(gogoproto.jsontag) = "text"]; // 是否包含实物奖品 bool isEntity = 3 [(gogoproto.jsontag) = "isEntity"]; // 用户扭蛋币拥有状态 Info info = 4 [(gogoproto.jsontag) = "info"]; // 头衔? 恒为空字符串, 忽略之 string showTitle = 5 [(gogoproto.jsontag) = "showTitle"]; // 奖品列表 repeated Award awards = 6 [(gogoproto.jsontag) = "awards"]; message CapsuleInfo { // 拥有的币 int64 coin = 1 [(gogoproto.jsontag) = "coin"]; // 变化值 int64 change = 2 [(gogoproto.jsontag) = "change"]; // 进度 Progress progress = 3 [(gogoproto.jsontag) = "progress"]; } message Info { // 普通扭蛋币 CapsuleInfo normal = 1 [(gogoproto.jsontag) = "normal"]; // 梦幻扭蛋币 CapsuleInfo colorful = 2 [(gogoproto.jsontag) = "colorful"]; } message Award { // 奖品名字 string name = 2 [(gogoproto.jsontag) = "name"]; // 奖品数量 int64 num = 3 [(gogoproto.jsontag) = "num"]; // 奖品 X 数量 string text = 4 [(gogoproto.jsontag) = "text"]; // 奖品图片 string img = 5 [(gogoproto.jsontag) = "img"]; // 奖品用法说明 Usage usage = 6 [(gogoproto.jsontag) = "usage"]; // web礼物图片 string web_image = 7 [(gogoproto.jsontag) = "web_image"]; // mobile礼物图片 string mobile_image = 8 [(gogoproto.jsontag) = "mobile_image"]; } } message CapsuleGetCapsuleInfoReq { // 扭蛋类型 string type = 2 [(gogoproto.moretags) = 'form:"type" validate:"required"']; // 来源 h5 web room string from = 3 [(gogoproto.moretags) = 'form:"from" validate:"required"']; } message CapsuleGetCapsuleInfoResp { message GiftList { // 礼物id int64 id = 1 [(gogoproto.jsontag) = "id"]; // 礼物名称 string name = 2 [(gogoproto.jsontag) = "name"]; // 礼物数量 int64 num = 3 [(gogoproto.jsontag) = "num"]; // 礼物图片 string web_url = 5 [(gogoproto.jsontag) = "web_url"]; // 礼物图片 string mobile_url = 6 [(gogoproto.jsontag) = "mobile_url"]; // 用法 Usage usage = 7 [(gogoproto.jsontag) = "usage"]; // 奖品类型 2 头衔 int64 type = 8 [(gogoproto.jsontag) = "type"]; // 过期时间 string expire = 9 [(gogoproto.jsontag) = "expire"]; } message GiftFilter { // 礼物id int64 id = 1 [(gogoproto.jsontag) = "id"]; // 礼物名称 string name = 2 [(gogoproto.jsontag) = "name"]; // 礼物图片 string web_url = 3 [(gogoproto.jsontag) = "web_url"]; // 礼物图片 string mobile_url = 4 [(gogoproto.jsontag) = "mobile_url"]; // 用法 Usage usage = 5 [(gogoproto.jsontag) = "usage"]; } // 扭蛋数量 int64 coin = 1 [(gogoproto.jsontag) = "coin"]; // 规则 string rule = 2 [(gogoproto.jsontag) = "rule"]; // 奖品列表,包含数量 repeated GiftList gift_list = 3 [(gogoproto.jsontag) = "gift_list"]; // 奖品列表,不包含数量,同一类别只有一条 repeated GiftFilter gift_filter = 4 [(gogoproto.jsontag) = "gift_filter"]; } message CapsuleOpenCapsuleByTypeReq { // 扭蛋类型 string type = 2 [(gogoproto.moretags) = 'form:"type" validate:"required"']; // 扭的个数 int64 count = 3 [(gogoproto.moretags) = 'form:"count" validate:"required"']; string platform = 4 [(gogoproto.moretags) = 'form:"platform"']; } message CapsuleOpenCapsuleByTypeResp { message CapsuleInfo { // 拥有的币 int64 coin = 1 [(gogoproto.jsontag) = "coin"]; } message Award { // 奖品id int64 id = 1 [(gogoproto.jsontag) = "id"]; // 奖品名字 string name = 2 [(gogoproto.jsontag) = "name"]; // 奖品数量 int64 num = 3 [(gogoproto.jsontag) = "num"]; // 奖品 X 数量 string text = 4 [(gogoproto.jsontag) = "text"]; // 礼物图片 string web_url = 5 [(gogoproto.jsontag) = "web_url"]; // 礼物图片 string mobile_url = 6 [(gogoproto.jsontag) = "mobile_url"]; // 奖品用法说明 Usage usage = 7 [(gogoproto.jsontag) = "usage"]; // 奖品类型 2 头衔 int64 type = 8 [(gogoproto.jsontag) = "type"]; // 过期时间 string expire = 9 [(gogoproto.jsontag) = "expire"]; } // 扭蛋币扣除状态 bool status = 1 [(gogoproto.jsontag) = "status"]; // 是否包含实物奖品 bool isEntity = 2 [(gogoproto.jsontag) = "isEntity"]; // 用户扭蛋币拥有状态 CapsuleInfo info = 3 [(gogoproto.jsontag) = "info"]; // 奖品列表 repeated Award awards = 4 [(gogoproto.jsontag) = "awards"]; // 奖品列表 repeated string text = 5 [(gogoproto.jsontag) = "text"]; }