房间排行榜修改
This commit is contained in:
parent
08f7879a06
commit
b10f3e120b
@ -6531,6 +6531,75 @@ func (x *ListRoomFeedsRequest) GetRelatedUsers() []*RoomFeedRelatedUser {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ListRoomGiftLeaderboardRequest 查询当前 UTC 周期内的房间金币消耗榜。
|
||||||
|
type ListRoomGiftLeaderboardRequest struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
Meta *RequestMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"`
|
||||||
|
Period string `protobuf:"bytes,2,opt,name=period,proto3" json:"period,omitempty"`
|
||||||
|
Page int32 `protobuf:"varint,3,opt,name=page,proto3" json:"page,omitempty"`
|
||||||
|
PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ListRoomGiftLeaderboardRequest) Reset() {
|
||||||
|
*x = ListRoomGiftLeaderboardRequest{}
|
||||||
|
mi := &file_proto_room_v1_room_proto_msgTypes[88]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ListRoomGiftLeaderboardRequest) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*ListRoomGiftLeaderboardRequest) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *ListRoomGiftLeaderboardRequest) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_proto_room_v1_room_proto_msgTypes[88]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use ListRoomGiftLeaderboardRequest.ProtoReflect.Descriptor instead.
|
||||||
|
func (*ListRoomGiftLeaderboardRequest) Descriptor() ([]byte, []int) {
|
||||||
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{88}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ListRoomGiftLeaderboardRequest) GetMeta() *RequestMeta {
|
||||||
|
if x != nil {
|
||||||
|
return x.Meta
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ListRoomGiftLeaderboardRequest) GetPeriod() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Period
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ListRoomGiftLeaderboardRequest) GetPage() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Page
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ListRoomGiftLeaderboardRequest) GetPageSize() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.PageSize
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
// RoomFeedRelatedUser 是 Mine 关系房间流的排序输入,不让 room-service 持有好友/关注事实。
|
// RoomFeedRelatedUser 是 Mine 关系房间流的排序输入,不让 room-service 持有好友/关注事实。
|
||||||
type RoomFeedRelatedUser struct {
|
type RoomFeedRelatedUser struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
@ -6542,7 +6611,7 @@ type RoomFeedRelatedUser struct {
|
|||||||
|
|
||||||
func (x *RoomFeedRelatedUser) Reset() {
|
func (x *RoomFeedRelatedUser) Reset() {
|
||||||
*x = RoomFeedRelatedUser{}
|
*x = RoomFeedRelatedUser{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[88]
|
mi := &file_proto_room_v1_room_proto_msgTypes[89]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -6554,7 +6623,7 @@ func (x *RoomFeedRelatedUser) String() string {
|
|||||||
func (*RoomFeedRelatedUser) ProtoMessage() {}
|
func (*RoomFeedRelatedUser) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *RoomFeedRelatedUser) ProtoReflect() protoreflect.Message {
|
func (x *RoomFeedRelatedUser) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[88]
|
mi := &file_proto_room_v1_room_proto_msgTypes[89]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -6567,7 +6636,7 @@ func (x *RoomFeedRelatedUser) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use RoomFeedRelatedUser.ProtoReflect.Descriptor instead.
|
// Deprecated: Use RoomFeedRelatedUser.ProtoReflect.Descriptor instead.
|
||||||
func (*RoomFeedRelatedUser) Descriptor() ([]byte, []int) {
|
func (*RoomFeedRelatedUser) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{88}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{89}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *RoomFeedRelatedUser) GetUserId() int64 {
|
func (x *RoomFeedRelatedUser) GetUserId() int64 {
|
||||||
@ -6607,7 +6676,7 @@ type RoomListItem struct {
|
|||||||
|
|
||||||
func (x *RoomListItem) Reset() {
|
func (x *RoomListItem) Reset() {
|
||||||
*x = RoomListItem{}
|
*x = RoomListItem{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[89]
|
mi := &file_proto_room_v1_room_proto_msgTypes[90]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -6619,7 +6688,7 @@ func (x *RoomListItem) String() string {
|
|||||||
func (*RoomListItem) ProtoMessage() {}
|
func (*RoomListItem) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *RoomListItem) ProtoReflect() protoreflect.Message {
|
func (x *RoomListItem) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[89]
|
mi := &file_proto_room_v1_room_proto_msgTypes[90]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -6632,7 +6701,7 @@ func (x *RoomListItem) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use RoomListItem.ProtoReflect.Descriptor instead.
|
// Deprecated: Use RoomListItem.ProtoReflect.Descriptor instead.
|
||||||
func (*RoomListItem) Descriptor() ([]byte, []int) {
|
func (*RoomListItem) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{89}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{90}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *RoomListItem) GetRoomId() string {
|
func (x *RoomListItem) GetRoomId() string {
|
||||||
@ -6744,7 +6813,7 @@ type ListRoomsResponse struct {
|
|||||||
|
|
||||||
func (x *ListRoomsResponse) Reset() {
|
func (x *ListRoomsResponse) Reset() {
|
||||||
*x = ListRoomsResponse{}
|
*x = ListRoomsResponse{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[90]
|
mi := &file_proto_room_v1_room_proto_msgTypes[91]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -6756,7 +6825,7 @@ func (x *ListRoomsResponse) String() string {
|
|||||||
func (*ListRoomsResponse) ProtoMessage() {}
|
func (*ListRoomsResponse) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *ListRoomsResponse) ProtoReflect() protoreflect.Message {
|
func (x *ListRoomsResponse) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[90]
|
mi := &file_proto_room_v1_room_proto_msgTypes[91]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -6769,7 +6838,7 @@ func (x *ListRoomsResponse) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use ListRoomsResponse.ProtoReflect.Descriptor instead.
|
// Deprecated: Use ListRoomsResponse.ProtoReflect.Descriptor instead.
|
||||||
func (*ListRoomsResponse) Descriptor() ([]byte, []int) {
|
func (*ListRoomsResponse) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{90}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{91}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ListRoomsResponse) GetRooms() []*RoomListItem {
|
func (x *ListRoomsResponse) GetRooms() []*RoomListItem {
|
||||||
@ -6786,6 +6855,160 @@ func (x *ListRoomsResponse) GetNextCursor() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RoomGiftLeaderboardItem 是跨房间金币消耗榜卡片;score 只表达该周期房间礼物金币消耗。
|
||||||
|
type RoomGiftLeaderboardItem struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
Rank int64 `protobuf:"varint,1,opt,name=rank,proto3" json:"rank,omitempty"`
|
||||||
|
RoomId string `protobuf:"bytes,2,opt,name=room_id,json=roomId,proto3" json:"room_id,omitempty"`
|
||||||
|
CoinSpent int64 `protobuf:"varint,3,opt,name=coin_spent,json=coinSpent,proto3" json:"coin_spent,omitempty"`
|
||||||
|
Room *RoomListItem `protobuf:"bytes,4,opt,name=room,proto3" json:"room,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *RoomGiftLeaderboardItem) Reset() {
|
||||||
|
*x = RoomGiftLeaderboardItem{}
|
||||||
|
mi := &file_proto_room_v1_room_proto_msgTypes[92]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *RoomGiftLeaderboardItem) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*RoomGiftLeaderboardItem) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *RoomGiftLeaderboardItem) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_proto_room_v1_room_proto_msgTypes[92]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use RoomGiftLeaderboardItem.ProtoReflect.Descriptor instead.
|
||||||
|
func (*RoomGiftLeaderboardItem) Descriptor() ([]byte, []int) {
|
||||||
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{92}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *RoomGiftLeaderboardItem) GetRank() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Rank
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *RoomGiftLeaderboardItem) GetRoomId() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.RoomId
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *RoomGiftLeaderboardItem) GetCoinSpent() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.CoinSpent
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *RoomGiftLeaderboardItem) GetRoom() *RoomListItem {
|
||||||
|
if x != nil {
|
||||||
|
return x.Room
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ListRoomGiftLeaderboardResponse 返回当前 UTC 周期房间金币榜。
|
||||||
|
type ListRoomGiftLeaderboardResponse struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
Items []*RoomGiftLeaderboardItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
|
||||||
|
Total int64 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"`
|
||||||
|
Period string `protobuf:"bytes,3,opt,name=period,proto3" json:"period,omitempty"`
|
||||||
|
StartAtMs int64 `protobuf:"varint,4,opt,name=start_at_ms,json=startAtMs,proto3" json:"start_at_ms,omitempty"`
|
||||||
|
EndAtMs int64 `protobuf:"varint,5,opt,name=end_at_ms,json=endAtMs,proto3" json:"end_at_ms,omitempty"`
|
||||||
|
ServerTimeMs int64 `protobuf:"varint,6,opt,name=server_time_ms,json=serverTimeMs,proto3" json:"server_time_ms,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ListRoomGiftLeaderboardResponse) Reset() {
|
||||||
|
*x = ListRoomGiftLeaderboardResponse{}
|
||||||
|
mi := &file_proto_room_v1_room_proto_msgTypes[93]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ListRoomGiftLeaderboardResponse) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*ListRoomGiftLeaderboardResponse) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *ListRoomGiftLeaderboardResponse) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_proto_room_v1_room_proto_msgTypes[93]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use ListRoomGiftLeaderboardResponse.ProtoReflect.Descriptor instead.
|
||||||
|
func (*ListRoomGiftLeaderboardResponse) Descriptor() ([]byte, []int) {
|
||||||
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{93}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ListRoomGiftLeaderboardResponse) GetItems() []*RoomGiftLeaderboardItem {
|
||||||
|
if x != nil {
|
||||||
|
return x.Items
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ListRoomGiftLeaderboardResponse) GetTotal() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Total
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ListRoomGiftLeaderboardResponse) GetPeriod() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Period
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ListRoomGiftLeaderboardResponse) GetStartAtMs() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.StartAtMs
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ListRoomGiftLeaderboardResponse) GetEndAtMs() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.EndAtMs
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ListRoomGiftLeaderboardResponse) GetServerTimeMs() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.ServerTimeMs
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
// GetMyRoomRequest 查询当前用户自己创建的房间。
|
// GetMyRoomRequest 查询当前用户自己创建的房间。
|
||||||
// 该查询必须由 gateway 写入鉴权后的 owner_user_id,不能从客户端接收用户 ID。
|
// 该查询必须由 gateway 写入鉴权后的 owner_user_id,不能从客户端接收用户 ID。
|
||||||
type GetMyRoomRequest struct {
|
type GetMyRoomRequest struct {
|
||||||
@ -6798,7 +7021,7 @@ type GetMyRoomRequest struct {
|
|||||||
|
|
||||||
func (x *GetMyRoomRequest) Reset() {
|
func (x *GetMyRoomRequest) Reset() {
|
||||||
*x = GetMyRoomRequest{}
|
*x = GetMyRoomRequest{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[91]
|
mi := &file_proto_room_v1_room_proto_msgTypes[94]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -6810,7 +7033,7 @@ func (x *GetMyRoomRequest) String() string {
|
|||||||
func (*GetMyRoomRequest) ProtoMessage() {}
|
func (*GetMyRoomRequest) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *GetMyRoomRequest) ProtoReflect() protoreflect.Message {
|
func (x *GetMyRoomRequest) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[91]
|
mi := &file_proto_room_v1_room_proto_msgTypes[94]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -6823,7 +7046,7 @@ func (x *GetMyRoomRequest) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use GetMyRoomRequest.ProtoReflect.Descriptor instead.
|
// Deprecated: Use GetMyRoomRequest.ProtoReflect.Descriptor instead.
|
||||||
func (*GetMyRoomRequest) Descriptor() ([]byte, []int) {
|
func (*GetMyRoomRequest) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{91}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{94}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *GetMyRoomRequest) GetMeta() *RequestMeta {
|
func (x *GetMyRoomRequest) GetMeta() *RequestMeta {
|
||||||
@ -6853,7 +7076,7 @@ type GetMyRoomResponse struct {
|
|||||||
|
|
||||||
func (x *GetMyRoomResponse) Reset() {
|
func (x *GetMyRoomResponse) Reset() {
|
||||||
*x = GetMyRoomResponse{}
|
*x = GetMyRoomResponse{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[92]
|
mi := &file_proto_room_v1_room_proto_msgTypes[95]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -6865,7 +7088,7 @@ func (x *GetMyRoomResponse) String() string {
|
|||||||
func (*GetMyRoomResponse) ProtoMessage() {}
|
func (*GetMyRoomResponse) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *GetMyRoomResponse) ProtoReflect() protoreflect.Message {
|
func (x *GetMyRoomResponse) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[92]
|
mi := &file_proto_room_v1_room_proto_msgTypes[95]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -6878,7 +7101,7 @@ func (x *GetMyRoomResponse) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use GetMyRoomResponse.ProtoReflect.Descriptor instead.
|
// Deprecated: Use GetMyRoomResponse.ProtoReflect.Descriptor instead.
|
||||||
func (*GetMyRoomResponse) Descriptor() ([]byte, []int) {
|
func (*GetMyRoomResponse) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{92}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{95}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *GetMyRoomResponse) GetHasRoom() bool {
|
func (x *GetMyRoomResponse) GetHasRoom() bool {
|
||||||
@ -6914,7 +7137,7 @@ type GetCurrentRoomRequest struct {
|
|||||||
|
|
||||||
func (x *GetCurrentRoomRequest) Reset() {
|
func (x *GetCurrentRoomRequest) Reset() {
|
||||||
*x = GetCurrentRoomRequest{}
|
*x = GetCurrentRoomRequest{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[93]
|
mi := &file_proto_room_v1_room_proto_msgTypes[96]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -6926,7 +7149,7 @@ func (x *GetCurrentRoomRequest) String() string {
|
|||||||
func (*GetCurrentRoomRequest) ProtoMessage() {}
|
func (*GetCurrentRoomRequest) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *GetCurrentRoomRequest) ProtoReflect() protoreflect.Message {
|
func (x *GetCurrentRoomRequest) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[93]
|
mi := &file_proto_room_v1_room_proto_msgTypes[96]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -6939,7 +7162,7 @@ func (x *GetCurrentRoomRequest) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use GetCurrentRoomRequest.ProtoReflect.Descriptor instead.
|
// Deprecated: Use GetCurrentRoomRequest.ProtoReflect.Descriptor instead.
|
||||||
func (*GetCurrentRoomRequest) Descriptor() ([]byte, []int) {
|
func (*GetCurrentRoomRequest) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{93}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{96}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *GetCurrentRoomRequest) GetMeta() *RequestMeta {
|
func (x *GetCurrentRoomRequest) GetMeta() *RequestMeta {
|
||||||
@ -6975,7 +7198,7 @@ type GetCurrentRoomResponse struct {
|
|||||||
|
|
||||||
func (x *GetCurrentRoomResponse) Reset() {
|
func (x *GetCurrentRoomResponse) Reset() {
|
||||||
*x = GetCurrentRoomResponse{}
|
*x = GetCurrentRoomResponse{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[94]
|
mi := &file_proto_room_v1_room_proto_msgTypes[97]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -6987,7 +7210,7 @@ func (x *GetCurrentRoomResponse) String() string {
|
|||||||
func (*GetCurrentRoomResponse) ProtoMessage() {}
|
func (*GetCurrentRoomResponse) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *GetCurrentRoomResponse) ProtoReflect() protoreflect.Message {
|
func (x *GetCurrentRoomResponse) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[94]
|
mi := &file_proto_room_v1_room_proto_msgTypes[97]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -7000,7 +7223,7 @@ func (x *GetCurrentRoomResponse) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use GetCurrentRoomResponse.ProtoReflect.Descriptor instead.
|
// Deprecated: Use GetCurrentRoomResponse.ProtoReflect.Descriptor instead.
|
||||||
func (*GetCurrentRoomResponse) Descriptor() ([]byte, []int) {
|
func (*GetCurrentRoomResponse) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{94}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{97}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *GetCurrentRoomResponse) GetHasCurrentRoom() bool {
|
func (x *GetCurrentRoomResponse) GetHasCurrentRoom() bool {
|
||||||
@ -7079,7 +7302,7 @@ type GetRoomSnapshotRequest struct {
|
|||||||
|
|
||||||
func (x *GetRoomSnapshotRequest) Reset() {
|
func (x *GetRoomSnapshotRequest) Reset() {
|
||||||
*x = GetRoomSnapshotRequest{}
|
*x = GetRoomSnapshotRequest{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[95]
|
mi := &file_proto_room_v1_room_proto_msgTypes[98]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -7091,7 +7314,7 @@ func (x *GetRoomSnapshotRequest) String() string {
|
|||||||
func (*GetRoomSnapshotRequest) ProtoMessage() {}
|
func (*GetRoomSnapshotRequest) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *GetRoomSnapshotRequest) ProtoReflect() protoreflect.Message {
|
func (x *GetRoomSnapshotRequest) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[95]
|
mi := &file_proto_room_v1_room_proto_msgTypes[98]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -7104,7 +7327,7 @@ func (x *GetRoomSnapshotRequest) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use GetRoomSnapshotRequest.ProtoReflect.Descriptor instead.
|
// Deprecated: Use GetRoomSnapshotRequest.ProtoReflect.Descriptor instead.
|
||||||
func (*GetRoomSnapshotRequest) Descriptor() ([]byte, []int) {
|
func (*GetRoomSnapshotRequest) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{95}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{98}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *GetRoomSnapshotRequest) GetMeta() *RequestMeta {
|
func (x *GetRoomSnapshotRequest) GetMeta() *RequestMeta {
|
||||||
@ -7141,7 +7364,7 @@ type GetRoomSnapshotResponse struct {
|
|||||||
|
|
||||||
func (x *GetRoomSnapshotResponse) Reset() {
|
func (x *GetRoomSnapshotResponse) Reset() {
|
||||||
*x = GetRoomSnapshotResponse{}
|
*x = GetRoomSnapshotResponse{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[96]
|
mi := &file_proto_room_v1_room_proto_msgTypes[99]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -7153,7 +7376,7 @@ func (x *GetRoomSnapshotResponse) String() string {
|
|||||||
func (*GetRoomSnapshotResponse) ProtoMessage() {}
|
func (*GetRoomSnapshotResponse) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *GetRoomSnapshotResponse) ProtoReflect() protoreflect.Message {
|
func (x *GetRoomSnapshotResponse) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[96]
|
mi := &file_proto_room_v1_room_proto_msgTypes[99]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -7166,7 +7389,7 @@ func (x *GetRoomSnapshotResponse) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use GetRoomSnapshotResponse.ProtoReflect.Descriptor instead.
|
// Deprecated: Use GetRoomSnapshotResponse.ProtoReflect.Descriptor instead.
|
||||||
func (*GetRoomSnapshotResponse) Descriptor() ([]byte, []int) {
|
func (*GetRoomSnapshotResponse) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{96}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{99}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *GetRoomSnapshotResponse) GetRoom() *RoomSnapshot {
|
func (x *GetRoomSnapshotResponse) GetRoom() *RoomSnapshot {
|
||||||
@ -7203,7 +7426,7 @@ type GetRoomTreasureRequest struct {
|
|||||||
|
|
||||||
func (x *GetRoomTreasureRequest) Reset() {
|
func (x *GetRoomTreasureRequest) Reset() {
|
||||||
*x = GetRoomTreasureRequest{}
|
*x = GetRoomTreasureRequest{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[97]
|
mi := &file_proto_room_v1_room_proto_msgTypes[100]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -7215,7 +7438,7 @@ func (x *GetRoomTreasureRequest) String() string {
|
|||||||
func (*GetRoomTreasureRequest) ProtoMessage() {}
|
func (*GetRoomTreasureRequest) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *GetRoomTreasureRequest) ProtoReflect() protoreflect.Message {
|
func (x *GetRoomTreasureRequest) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[97]
|
mi := &file_proto_room_v1_room_proto_msgTypes[100]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -7228,7 +7451,7 @@ func (x *GetRoomTreasureRequest) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use GetRoomTreasureRequest.ProtoReflect.Descriptor instead.
|
// Deprecated: Use GetRoomTreasureRequest.ProtoReflect.Descriptor instead.
|
||||||
func (*GetRoomTreasureRequest) Descriptor() ([]byte, []int) {
|
func (*GetRoomTreasureRequest) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{97}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{100}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *GetRoomTreasureRequest) GetMeta() *RequestMeta {
|
func (x *GetRoomTreasureRequest) GetMeta() *RequestMeta {
|
||||||
@ -7262,7 +7485,7 @@ type GetRoomTreasureResponse struct {
|
|||||||
|
|
||||||
func (x *GetRoomTreasureResponse) Reset() {
|
func (x *GetRoomTreasureResponse) Reset() {
|
||||||
*x = GetRoomTreasureResponse{}
|
*x = GetRoomTreasureResponse{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[98]
|
mi := &file_proto_room_v1_room_proto_msgTypes[101]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -7274,7 +7497,7 @@ func (x *GetRoomTreasureResponse) String() string {
|
|||||||
func (*GetRoomTreasureResponse) ProtoMessage() {}
|
func (*GetRoomTreasureResponse) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *GetRoomTreasureResponse) ProtoReflect() protoreflect.Message {
|
func (x *GetRoomTreasureResponse) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[98]
|
mi := &file_proto_room_v1_room_proto_msgTypes[101]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -7287,7 +7510,7 @@ func (x *GetRoomTreasureResponse) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use GetRoomTreasureResponse.ProtoReflect.Descriptor instead.
|
// Deprecated: Use GetRoomTreasureResponse.ProtoReflect.Descriptor instead.
|
||||||
func (*GetRoomTreasureResponse) Descriptor() ([]byte, []int) {
|
func (*GetRoomTreasureResponse) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{98}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{101}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *GetRoomTreasureResponse) GetTreasure() *RoomTreasureInfo {
|
func (x *GetRoomTreasureResponse) GetTreasure() *RoomTreasureInfo {
|
||||||
@ -7318,7 +7541,7 @@ type ListRoomOnlineUsersRequest struct {
|
|||||||
|
|
||||||
func (x *ListRoomOnlineUsersRequest) Reset() {
|
func (x *ListRoomOnlineUsersRequest) Reset() {
|
||||||
*x = ListRoomOnlineUsersRequest{}
|
*x = ListRoomOnlineUsersRequest{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[99]
|
mi := &file_proto_room_v1_room_proto_msgTypes[102]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -7330,7 +7553,7 @@ func (x *ListRoomOnlineUsersRequest) String() string {
|
|||||||
func (*ListRoomOnlineUsersRequest) ProtoMessage() {}
|
func (*ListRoomOnlineUsersRequest) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *ListRoomOnlineUsersRequest) ProtoReflect() protoreflect.Message {
|
func (x *ListRoomOnlineUsersRequest) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[99]
|
mi := &file_proto_room_v1_room_proto_msgTypes[102]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -7343,7 +7566,7 @@ func (x *ListRoomOnlineUsersRequest) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use ListRoomOnlineUsersRequest.ProtoReflect.Descriptor instead.
|
// Deprecated: Use ListRoomOnlineUsersRequest.ProtoReflect.Descriptor instead.
|
||||||
func (*ListRoomOnlineUsersRequest) Descriptor() ([]byte, []int) {
|
func (*ListRoomOnlineUsersRequest) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{99}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{102}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ListRoomOnlineUsersRequest) GetMeta() *RequestMeta {
|
func (x *ListRoomOnlineUsersRequest) GetMeta() *RequestMeta {
|
||||||
@ -7394,7 +7617,7 @@ type ListRoomOnlineUsersResponse struct {
|
|||||||
|
|
||||||
func (x *ListRoomOnlineUsersResponse) Reset() {
|
func (x *ListRoomOnlineUsersResponse) Reset() {
|
||||||
*x = ListRoomOnlineUsersResponse{}
|
*x = ListRoomOnlineUsersResponse{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[100]
|
mi := &file_proto_room_v1_room_proto_msgTypes[103]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -7406,7 +7629,7 @@ func (x *ListRoomOnlineUsersResponse) String() string {
|
|||||||
func (*ListRoomOnlineUsersResponse) ProtoMessage() {}
|
func (*ListRoomOnlineUsersResponse) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *ListRoomOnlineUsersResponse) ProtoReflect() protoreflect.Message {
|
func (x *ListRoomOnlineUsersResponse) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[100]
|
mi := &file_proto_room_v1_room_proto_msgTypes[103]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -7419,7 +7642,7 @@ func (x *ListRoomOnlineUsersResponse) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use ListRoomOnlineUsersResponse.ProtoReflect.Descriptor instead.
|
// Deprecated: Use ListRoomOnlineUsersResponse.ProtoReflect.Descriptor instead.
|
||||||
func (*ListRoomOnlineUsersResponse) Descriptor() ([]byte, []int) {
|
func (*ListRoomOnlineUsersResponse) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{100}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{103}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ListRoomOnlineUsersResponse) GetUsers() []*RoomUser {
|
func (x *ListRoomOnlineUsersResponse) GetUsers() []*RoomUser {
|
||||||
@ -7470,7 +7693,7 @@ type FollowRoomRequest struct {
|
|||||||
|
|
||||||
func (x *FollowRoomRequest) Reset() {
|
func (x *FollowRoomRequest) Reset() {
|
||||||
*x = FollowRoomRequest{}
|
*x = FollowRoomRequest{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[101]
|
mi := &file_proto_room_v1_room_proto_msgTypes[104]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -7482,7 +7705,7 @@ func (x *FollowRoomRequest) String() string {
|
|||||||
func (*FollowRoomRequest) ProtoMessage() {}
|
func (*FollowRoomRequest) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *FollowRoomRequest) ProtoReflect() protoreflect.Message {
|
func (x *FollowRoomRequest) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[101]
|
mi := &file_proto_room_v1_room_proto_msgTypes[104]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -7495,7 +7718,7 @@ func (x *FollowRoomRequest) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use FollowRoomRequest.ProtoReflect.Descriptor instead.
|
// Deprecated: Use FollowRoomRequest.ProtoReflect.Descriptor instead.
|
||||||
func (*FollowRoomRequest) Descriptor() ([]byte, []int) {
|
func (*FollowRoomRequest) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{101}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{104}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *FollowRoomRequest) GetMeta() *RequestMeta {
|
func (x *FollowRoomRequest) GetMeta() *RequestMeta {
|
||||||
@ -7531,7 +7754,7 @@ type FollowRoomResponse struct {
|
|||||||
|
|
||||||
func (x *FollowRoomResponse) Reset() {
|
func (x *FollowRoomResponse) Reset() {
|
||||||
*x = FollowRoomResponse{}
|
*x = FollowRoomResponse{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[102]
|
mi := &file_proto_room_v1_room_proto_msgTypes[105]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -7543,7 +7766,7 @@ func (x *FollowRoomResponse) String() string {
|
|||||||
func (*FollowRoomResponse) ProtoMessage() {}
|
func (*FollowRoomResponse) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *FollowRoomResponse) ProtoReflect() protoreflect.Message {
|
func (x *FollowRoomResponse) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[102]
|
mi := &file_proto_room_v1_room_proto_msgTypes[105]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -7556,7 +7779,7 @@ func (x *FollowRoomResponse) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use FollowRoomResponse.ProtoReflect.Descriptor instead.
|
// Deprecated: Use FollowRoomResponse.ProtoReflect.Descriptor instead.
|
||||||
func (*FollowRoomResponse) Descriptor() ([]byte, []int) {
|
func (*FollowRoomResponse) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{102}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{105}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *FollowRoomResponse) GetRoomId() string {
|
func (x *FollowRoomResponse) GetRoomId() string {
|
||||||
@ -7599,7 +7822,7 @@ type UnfollowRoomRequest struct {
|
|||||||
|
|
||||||
func (x *UnfollowRoomRequest) Reset() {
|
func (x *UnfollowRoomRequest) Reset() {
|
||||||
*x = UnfollowRoomRequest{}
|
*x = UnfollowRoomRequest{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[103]
|
mi := &file_proto_room_v1_room_proto_msgTypes[106]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -7611,7 +7834,7 @@ func (x *UnfollowRoomRequest) String() string {
|
|||||||
func (*UnfollowRoomRequest) ProtoMessage() {}
|
func (*UnfollowRoomRequest) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *UnfollowRoomRequest) ProtoReflect() protoreflect.Message {
|
func (x *UnfollowRoomRequest) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[103]
|
mi := &file_proto_room_v1_room_proto_msgTypes[106]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -7624,7 +7847,7 @@ func (x *UnfollowRoomRequest) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use UnfollowRoomRequest.ProtoReflect.Descriptor instead.
|
// Deprecated: Use UnfollowRoomRequest.ProtoReflect.Descriptor instead.
|
||||||
func (*UnfollowRoomRequest) Descriptor() ([]byte, []int) {
|
func (*UnfollowRoomRequest) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{103}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{106}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *UnfollowRoomRequest) GetMeta() *RequestMeta {
|
func (x *UnfollowRoomRequest) GetMeta() *RequestMeta {
|
||||||
@ -7659,7 +7882,7 @@ type UnfollowRoomResponse struct {
|
|||||||
|
|
||||||
func (x *UnfollowRoomResponse) Reset() {
|
func (x *UnfollowRoomResponse) Reset() {
|
||||||
*x = UnfollowRoomResponse{}
|
*x = UnfollowRoomResponse{}
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[104]
|
mi := &file_proto_room_v1_room_proto_msgTypes[107]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@ -7671,7 +7894,7 @@ func (x *UnfollowRoomResponse) String() string {
|
|||||||
func (*UnfollowRoomResponse) ProtoMessage() {}
|
func (*UnfollowRoomResponse) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *UnfollowRoomResponse) ProtoReflect() protoreflect.Message {
|
func (x *UnfollowRoomResponse) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_proto_room_v1_room_proto_msgTypes[104]
|
mi := &file_proto_room_v1_room_proto_msgTypes[107]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@ -7684,7 +7907,7 @@ func (x *UnfollowRoomResponse) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use UnfollowRoomResponse.ProtoReflect.Descriptor instead.
|
// Deprecated: Use UnfollowRoomResponse.ProtoReflect.Descriptor instead.
|
||||||
func (*UnfollowRoomResponse) Descriptor() ([]byte, []int) {
|
func (*UnfollowRoomResponse) Descriptor() ([]byte, []int) {
|
||||||
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{104}
|
return file_proto_room_v1_room_proto_rawDescGZIP(), []int{107}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *UnfollowRoomResponse) GetRoomId() string {
|
func (x *UnfollowRoomResponse) GetRoomId() string {
|
||||||
@ -8259,7 +8482,12 @@ const file_proto_room_v1_room_proto_rawDesc = "" +
|
|||||||
"\x06cursor\x18\x05 \x01(\tR\x06cursor\x12\x14\n" +
|
"\x06cursor\x18\x05 \x01(\tR\x06cursor\x12\x14\n" +
|
||||||
"\x05limit\x18\x06 \x01(\x05R\x05limit\x12\x14\n" +
|
"\x05limit\x18\x06 \x01(\x05R\x05limit\x12\x14\n" +
|
||||||
"\x05query\x18\a \x01(\tR\x05query\x12G\n" +
|
"\x05query\x18\a \x01(\tR\x05query\x12G\n" +
|
||||||
"\rrelated_users\x18\b \x03(\v2\".hyapp.room.v1.RoomFeedRelatedUserR\frelatedUsers\"c\n" +
|
"\rrelated_users\x18\b \x03(\v2\".hyapp.room.v1.RoomFeedRelatedUserR\frelatedUsers\"\x99\x01\n" +
|
||||||
|
"\x1eListRoomGiftLeaderboardRequest\x12.\n" +
|
||||||
|
"\x04meta\x18\x01 \x01(\v2\x1a.hyapp.room.v1.RequestMetaR\x04meta\x12\x16\n" +
|
||||||
|
"\x06period\x18\x02 \x01(\tR\x06period\x12\x12\n" +
|
||||||
|
"\x04page\x18\x03 \x01(\x05R\x04page\x12\x1b\n" +
|
||||||
|
"\tpage_size\x18\x04 \x01(\x05R\bpageSize\"c\n" +
|
||||||
"\x13RoomFeedRelatedUser\x12\x17\n" +
|
"\x13RoomFeedRelatedUser\x12\x17\n" +
|
||||||
"\auser_id\x18\x01 \x01(\x03R\x06userId\x123\n" +
|
"\auser_id\x18\x01 \x01(\x03R\x06userId\x123\n" +
|
||||||
"\x16relation_updated_at_ms\x18\x02 \x01(\x03R\x13relationUpdatedAtMs\"\xb3\x03\n" +
|
"\x16relation_updated_at_ms\x18\x02 \x01(\x03R\x13relationUpdatedAtMs\"\xb3\x03\n" +
|
||||||
@ -8283,7 +8511,20 @@ const file_proto_room_v1_room_proto_rawDesc = "" +
|
|||||||
"\x11ListRoomsResponse\x121\n" +
|
"\x11ListRoomsResponse\x121\n" +
|
||||||
"\x05rooms\x18\x01 \x03(\v2\x1b.hyapp.room.v1.RoomListItemR\x05rooms\x12\x1f\n" +
|
"\x05rooms\x18\x01 \x03(\v2\x1b.hyapp.room.v1.RoomListItemR\x05rooms\x12\x1f\n" +
|
||||||
"\vnext_cursor\x18\x02 \x01(\tR\n" +
|
"\vnext_cursor\x18\x02 \x01(\tR\n" +
|
||||||
"nextCursor\"f\n" +
|
"nextCursor\"\x96\x01\n" +
|
||||||
|
"\x17RoomGiftLeaderboardItem\x12\x12\n" +
|
||||||
|
"\x04rank\x18\x01 \x01(\x03R\x04rank\x12\x17\n" +
|
||||||
|
"\aroom_id\x18\x02 \x01(\tR\x06roomId\x12\x1d\n" +
|
||||||
|
"\n" +
|
||||||
|
"coin_spent\x18\x03 \x01(\x03R\tcoinSpent\x12/\n" +
|
||||||
|
"\x04room\x18\x04 \x01(\v2\x1b.hyapp.room.v1.RoomListItemR\x04room\"\xef\x01\n" +
|
||||||
|
"\x1fListRoomGiftLeaderboardResponse\x12<\n" +
|
||||||
|
"\x05items\x18\x01 \x03(\v2&.hyapp.room.v1.RoomGiftLeaderboardItemR\x05items\x12\x14\n" +
|
||||||
|
"\x05total\x18\x02 \x01(\x03R\x05total\x12\x16\n" +
|
||||||
|
"\x06period\x18\x03 \x01(\tR\x06period\x12\x1e\n" +
|
||||||
|
"\vstart_at_ms\x18\x04 \x01(\x03R\tstartAtMs\x12\x1a\n" +
|
||||||
|
"\tend_at_ms\x18\x05 \x01(\x03R\aendAtMs\x12$\n" +
|
||||||
|
"\x0eserver_time_ms\x18\x06 \x01(\x03R\fserverTimeMs\"f\n" +
|
||||||
"\x10GetMyRoomRequest\x12.\n" +
|
"\x10GetMyRoomRequest\x12.\n" +
|
||||||
"\x04meta\x18\x01 \x01(\v2\x1a.hyapp.room.v1.RequestMetaR\x04meta\x12\"\n" +
|
"\x04meta\x18\x01 \x01(\v2\x1a.hyapp.room.v1.RequestMetaR\x04meta\x12\"\n" +
|
||||||
"\rowner_user_id\x18\x02 \x01(\x03R\vownerUserId\"\x85\x01\n" +
|
"\rowner_user_id\x18\x02 \x01(\x03R\vownerUserId\"\x85\x01\n" +
|
||||||
@ -8384,7 +8625,8 @@ const file_proto_room_v1_room_proto_rawDesc = "" +
|
|||||||
"\fUnfollowRoom\x12\".hyapp.room.v1.UnfollowRoomRequest\x1a#.hyapp.room.v1.UnfollowRoomResponse2\xee\x01\n" +
|
"\fUnfollowRoom\x12\".hyapp.room.v1.UnfollowRoomRequest\x1a#.hyapp.room.v1.UnfollowRoomResponse2\xee\x01\n" +
|
||||||
"\x10RoomGuardService\x12o\n" +
|
"\x10RoomGuardService\x12o\n" +
|
||||||
"\x14CheckSpeakPermission\x12*.hyapp.room.v1.CheckSpeakPermissionRequest\x1a+.hyapp.room.v1.CheckSpeakPermissionResponse\x12i\n" +
|
"\x14CheckSpeakPermission\x12*.hyapp.room.v1.CheckSpeakPermissionRequest\x1a+.hyapp.room.v1.CheckSpeakPermissionResponse\x12i\n" +
|
||||||
"\x12VerifyRoomPresence\x12(.hyapp.room.v1.VerifyRoomPresenceRequest\x1a).hyapp.room.v1.VerifyRoomPresenceResponse2\xb6\t\n" +
|
"\x12VerifyRoomPresence\x12(.hyapp.room.v1.VerifyRoomPresenceRequest\x1a).hyapp.room.v1.VerifyRoomPresenceResponse2\xb0\n" +
|
||||||
|
"\n" +
|
||||||
"\x10RoomQueryService\x12]\n" +
|
"\x10RoomQueryService\x12]\n" +
|
||||||
"\x0eAdminListRooms\x12$.hyapp.room.v1.AdminListRoomsRequest\x1a%.hyapp.room.v1.AdminListRoomsResponse\x12W\n" +
|
"\x0eAdminListRooms\x12$.hyapp.room.v1.AdminListRoomsRequest\x1a%.hyapp.room.v1.AdminListRoomsResponse\x12W\n" +
|
||||||
"\fAdminGetRoom\x12\".hyapp.room.v1.AdminGetRoomRequest\x1a#.hyapp.room.v1.AdminGetRoomResponse\x12\x81\x01\n" +
|
"\fAdminGetRoom\x12\".hyapp.room.v1.AdminGetRoomRequest\x1a#.hyapp.room.v1.AdminGetRoomResponse\x12\x81\x01\n" +
|
||||||
@ -8392,7 +8634,8 @@ const file_proto_room_v1_room_proto_rawDesc = "" +
|
|||||||
"\x16AdminGetRoomSeatConfig\x12,.hyapp.room.v1.AdminGetRoomSeatConfigRequest\x1a-.hyapp.room.v1.AdminGetRoomSeatConfigResponse\x12f\n" +
|
"\x16AdminGetRoomSeatConfig\x12,.hyapp.room.v1.AdminGetRoomSeatConfigRequest\x1a-.hyapp.room.v1.AdminGetRoomSeatConfigResponse\x12f\n" +
|
||||||
"\x11AdminListRoomPins\x12'.hyapp.room.v1.AdminListRoomPinsRequest\x1a(.hyapp.room.v1.AdminListRoomPinsResponse\x12N\n" +
|
"\x11AdminListRoomPins\x12'.hyapp.room.v1.AdminListRoomPinsRequest\x1a(.hyapp.room.v1.AdminListRoomPinsResponse\x12N\n" +
|
||||||
"\tListRooms\x12\x1f.hyapp.room.v1.ListRoomsRequest\x1a .hyapp.room.v1.ListRoomsResponse\x12V\n" +
|
"\tListRooms\x12\x1f.hyapp.room.v1.ListRoomsRequest\x1a .hyapp.room.v1.ListRoomsResponse\x12V\n" +
|
||||||
"\rListRoomFeeds\x12#.hyapp.room.v1.ListRoomFeedsRequest\x1a .hyapp.room.v1.ListRoomsResponse\x12N\n" +
|
"\rListRoomFeeds\x12#.hyapp.room.v1.ListRoomFeedsRequest\x1a .hyapp.room.v1.ListRoomsResponse\x12x\n" +
|
||||||
|
"\x17ListRoomGiftLeaderboard\x12-.hyapp.room.v1.ListRoomGiftLeaderboardRequest\x1a..hyapp.room.v1.ListRoomGiftLeaderboardResponse\x12N\n" +
|
||||||
"\tGetMyRoom\x12\x1f.hyapp.room.v1.GetMyRoomRequest\x1a .hyapp.room.v1.GetMyRoomResponse\x12]\n" +
|
"\tGetMyRoom\x12\x1f.hyapp.room.v1.GetMyRoomRequest\x1a .hyapp.room.v1.GetMyRoomResponse\x12]\n" +
|
||||||
"\x0eGetCurrentRoom\x12$.hyapp.room.v1.GetCurrentRoomRequest\x1a%.hyapp.room.v1.GetCurrentRoomResponse\x12`\n" +
|
"\x0eGetCurrentRoom\x12$.hyapp.room.v1.GetCurrentRoomRequest\x1a%.hyapp.room.v1.GetCurrentRoomResponse\x12`\n" +
|
||||||
"\x0fGetRoomSnapshot\x12%.hyapp.room.v1.GetRoomSnapshotRequest\x1a&.hyapp.room.v1.GetRoomSnapshotResponse\x12`\n" +
|
"\x0fGetRoomSnapshot\x12%.hyapp.room.v1.GetRoomSnapshotRequest\x1a&.hyapp.room.v1.GetRoomSnapshotResponse\x12`\n" +
|
||||||
@ -8411,7 +8654,7 @@ func file_proto_room_v1_room_proto_rawDescGZIP() []byte {
|
|||||||
return file_proto_room_v1_room_proto_rawDescData
|
return file_proto_room_v1_room_proto_rawDescData
|
||||||
}
|
}
|
||||||
|
|
||||||
var file_proto_room_v1_room_proto_msgTypes = make([]protoimpl.MessageInfo, 106)
|
var file_proto_room_v1_room_proto_msgTypes = make([]protoimpl.MessageInfo, 109)
|
||||||
var file_proto_room_v1_room_proto_goTypes = []any{
|
var file_proto_room_v1_room_proto_goTypes = []any{
|
||||||
(*RequestMeta)(nil), // 0: hyapp.room.v1.RequestMeta
|
(*RequestMeta)(nil), // 0: hyapp.room.v1.RequestMeta
|
||||||
(*CommandResult)(nil), // 1: hyapp.room.v1.CommandResult
|
(*CommandResult)(nil), // 1: hyapp.room.v1.CommandResult
|
||||||
@ -8501,24 +8744,27 @@ var file_proto_room_v1_room_proto_goTypes = []any{
|
|||||||
(*VerifyRoomPresenceResponse)(nil), // 85: hyapp.room.v1.VerifyRoomPresenceResponse
|
(*VerifyRoomPresenceResponse)(nil), // 85: hyapp.room.v1.VerifyRoomPresenceResponse
|
||||||
(*ListRoomsRequest)(nil), // 86: hyapp.room.v1.ListRoomsRequest
|
(*ListRoomsRequest)(nil), // 86: hyapp.room.v1.ListRoomsRequest
|
||||||
(*ListRoomFeedsRequest)(nil), // 87: hyapp.room.v1.ListRoomFeedsRequest
|
(*ListRoomFeedsRequest)(nil), // 87: hyapp.room.v1.ListRoomFeedsRequest
|
||||||
(*RoomFeedRelatedUser)(nil), // 88: hyapp.room.v1.RoomFeedRelatedUser
|
(*ListRoomGiftLeaderboardRequest)(nil), // 88: hyapp.room.v1.ListRoomGiftLeaderboardRequest
|
||||||
(*RoomListItem)(nil), // 89: hyapp.room.v1.RoomListItem
|
(*RoomFeedRelatedUser)(nil), // 89: hyapp.room.v1.RoomFeedRelatedUser
|
||||||
(*ListRoomsResponse)(nil), // 90: hyapp.room.v1.ListRoomsResponse
|
(*RoomListItem)(nil), // 90: hyapp.room.v1.RoomListItem
|
||||||
(*GetMyRoomRequest)(nil), // 91: hyapp.room.v1.GetMyRoomRequest
|
(*ListRoomsResponse)(nil), // 91: hyapp.room.v1.ListRoomsResponse
|
||||||
(*GetMyRoomResponse)(nil), // 92: hyapp.room.v1.GetMyRoomResponse
|
(*RoomGiftLeaderboardItem)(nil), // 92: hyapp.room.v1.RoomGiftLeaderboardItem
|
||||||
(*GetCurrentRoomRequest)(nil), // 93: hyapp.room.v1.GetCurrentRoomRequest
|
(*ListRoomGiftLeaderboardResponse)(nil), // 93: hyapp.room.v1.ListRoomGiftLeaderboardResponse
|
||||||
(*GetCurrentRoomResponse)(nil), // 94: hyapp.room.v1.GetCurrentRoomResponse
|
(*GetMyRoomRequest)(nil), // 94: hyapp.room.v1.GetMyRoomRequest
|
||||||
(*GetRoomSnapshotRequest)(nil), // 95: hyapp.room.v1.GetRoomSnapshotRequest
|
(*GetMyRoomResponse)(nil), // 95: hyapp.room.v1.GetMyRoomResponse
|
||||||
(*GetRoomSnapshotResponse)(nil), // 96: hyapp.room.v1.GetRoomSnapshotResponse
|
(*GetCurrentRoomRequest)(nil), // 96: hyapp.room.v1.GetCurrentRoomRequest
|
||||||
(*GetRoomTreasureRequest)(nil), // 97: hyapp.room.v1.GetRoomTreasureRequest
|
(*GetCurrentRoomResponse)(nil), // 97: hyapp.room.v1.GetCurrentRoomResponse
|
||||||
(*GetRoomTreasureResponse)(nil), // 98: hyapp.room.v1.GetRoomTreasureResponse
|
(*GetRoomSnapshotRequest)(nil), // 98: hyapp.room.v1.GetRoomSnapshotRequest
|
||||||
(*ListRoomOnlineUsersRequest)(nil), // 99: hyapp.room.v1.ListRoomOnlineUsersRequest
|
(*GetRoomSnapshotResponse)(nil), // 99: hyapp.room.v1.GetRoomSnapshotResponse
|
||||||
(*ListRoomOnlineUsersResponse)(nil), // 100: hyapp.room.v1.ListRoomOnlineUsersResponse
|
(*GetRoomTreasureRequest)(nil), // 100: hyapp.room.v1.GetRoomTreasureRequest
|
||||||
(*FollowRoomRequest)(nil), // 101: hyapp.room.v1.FollowRoomRequest
|
(*GetRoomTreasureResponse)(nil), // 101: hyapp.room.v1.GetRoomTreasureResponse
|
||||||
(*FollowRoomResponse)(nil), // 102: hyapp.room.v1.FollowRoomResponse
|
(*ListRoomOnlineUsersRequest)(nil), // 102: hyapp.room.v1.ListRoomOnlineUsersRequest
|
||||||
(*UnfollowRoomRequest)(nil), // 103: hyapp.room.v1.UnfollowRoomRequest
|
(*ListRoomOnlineUsersResponse)(nil), // 103: hyapp.room.v1.ListRoomOnlineUsersResponse
|
||||||
(*UnfollowRoomResponse)(nil), // 104: hyapp.room.v1.UnfollowRoomResponse
|
(*FollowRoomRequest)(nil), // 104: hyapp.room.v1.FollowRoomRequest
|
||||||
nil, // 105: hyapp.room.v1.RoomSnapshot.RoomExtEntry
|
(*FollowRoomResponse)(nil), // 105: hyapp.room.v1.FollowRoomResponse
|
||||||
|
(*UnfollowRoomRequest)(nil), // 106: hyapp.room.v1.UnfollowRoomRequest
|
||||||
|
(*UnfollowRoomResponse)(nil), // 107: hyapp.room.v1.UnfollowRoomResponse
|
||||||
|
nil, // 108: hyapp.room.v1.RoomSnapshot.RoomExtEntry
|
||||||
}
|
}
|
||||||
var file_proto_room_v1_room_proto_depIdxs = []int32{
|
var file_proto_room_v1_room_proto_depIdxs = []int32{
|
||||||
6, // 0: hyapp.room.v1.RoomTreasureLevel.in_room_rewards:type_name -> hyapp.room.v1.RoomTreasureRewardItem
|
6, // 0: hyapp.room.v1.RoomTreasureLevel.in_room_rewards:type_name -> hyapp.room.v1.RoomTreasureRewardItem
|
||||||
@ -8548,7 +8794,7 @@ var file_proto_room_v1_room_proto_depIdxs = []int32{
|
|||||||
3, // 24: hyapp.room.v1.RoomSnapshot.mic_seats:type_name -> hyapp.room.v1.SeatState
|
3, // 24: hyapp.room.v1.RoomSnapshot.mic_seats:type_name -> hyapp.room.v1.SeatState
|
||||||
2, // 25: hyapp.room.v1.RoomSnapshot.online_users:type_name -> hyapp.room.v1.RoomUser
|
2, // 25: hyapp.room.v1.RoomSnapshot.online_users:type_name -> hyapp.room.v1.RoomUser
|
||||||
4, // 26: hyapp.room.v1.RoomSnapshot.gift_rank:type_name -> hyapp.room.v1.RankItem
|
4, // 26: hyapp.room.v1.RoomSnapshot.gift_rank:type_name -> hyapp.room.v1.RankItem
|
||||||
105, // 27: hyapp.room.v1.RoomSnapshot.room_ext:type_name -> hyapp.room.v1.RoomSnapshot.RoomExtEntry
|
108, // 27: hyapp.room.v1.RoomSnapshot.room_ext:type_name -> hyapp.room.v1.RoomSnapshot.RoomExtEntry
|
||||||
9, // 28: hyapp.room.v1.RoomSnapshot.treasure:type_name -> hyapp.room.v1.RoomTreasureState
|
9, // 28: hyapp.room.v1.RoomSnapshot.treasure:type_name -> hyapp.room.v1.RoomTreasureState
|
||||||
0, // 29: hyapp.room.v1.CreateRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
0, // 29: hyapp.room.v1.CreateRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
||||||
1, // 30: hyapp.room.v1.CreateRoomResponse.result:type_name -> hyapp.room.v1.CommandResult
|
1, // 30: hyapp.room.v1.CreateRoomResponse.result:type_name -> hyapp.room.v1.CommandResult
|
||||||
@ -8630,110 +8876,115 @@ var file_proto_room_v1_room_proto_depIdxs = []int32{
|
|||||||
5, // 106: hyapp.room.v1.SendGiftResponse.lucky_gift:type_name -> hyapp.room.v1.LuckyGiftDrawResult
|
5, // 106: hyapp.room.v1.SendGiftResponse.lucky_gift:type_name -> hyapp.room.v1.LuckyGiftDrawResult
|
||||||
0, // 107: hyapp.room.v1.ListRoomsRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
0, // 107: hyapp.room.v1.ListRoomsRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
||||||
0, // 108: hyapp.room.v1.ListRoomFeedsRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
0, // 108: hyapp.room.v1.ListRoomFeedsRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
||||||
88, // 109: hyapp.room.v1.ListRoomFeedsRequest.related_users:type_name -> hyapp.room.v1.RoomFeedRelatedUser
|
89, // 109: hyapp.room.v1.ListRoomFeedsRequest.related_users:type_name -> hyapp.room.v1.RoomFeedRelatedUser
|
||||||
89, // 110: hyapp.room.v1.ListRoomsResponse.rooms:type_name -> hyapp.room.v1.RoomListItem
|
0, // 110: hyapp.room.v1.ListRoomGiftLeaderboardRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
||||||
0, // 111: hyapp.room.v1.GetMyRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
90, // 111: hyapp.room.v1.ListRoomsResponse.rooms:type_name -> hyapp.room.v1.RoomListItem
|
||||||
89, // 112: hyapp.room.v1.GetMyRoomResponse.room:type_name -> hyapp.room.v1.RoomListItem
|
90, // 112: hyapp.room.v1.RoomGiftLeaderboardItem.room:type_name -> hyapp.room.v1.RoomListItem
|
||||||
0, // 113: hyapp.room.v1.GetCurrentRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
92, // 113: hyapp.room.v1.ListRoomGiftLeaderboardResponse.items:type_name -> hyapp.room.v1.RoomGiftLeaderboardItem
|
||||||
0, // 114: hyapp.room.v1.GetRoomSnapshotRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
0, // 114: hyapp.room.v1.GetMyRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
||||||
30, // 115: hyapp.room.v1.GetRoomSnapshotResponse.room:type_name -> hyapp.room.v1.RoomSnapshot
|
90, // 115: hyapp.room.v1.GetMyRoomResponse.room:type_name -> hyapp.room.v1.RoomListItem
|
||||||
0, // 116: hyapp.room.v1.GetRoomTreasureRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
0, // 116: hyapp.room.v1.GetCurrentRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
||||||
10, // 117: hyapp.room.v1.GetRoomTreasureResponse.treasure:type_name -> hyapp.room.v1.RoomTreasureInfo
|
0, // 117: hyapp.room.v1.GetRoomSnapshotRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
||||||
0, // 118: hyapp.room.v1.ListRoomOnlineUsersRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
30, // 118: hyapp.room.v1.GetRoomSnapshotResponse.room:type_name -> hyapp.room.v1.RoomSnapshot
|
||||||
2, // 119: hyapp.room.v1.ListRoomOnlineUsersResponse.users:type_name -> hyapp.room.v1.RoomUser
|
0, // 119: hyapp.room.v1.GetRoomTreasureRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
||||||
0, // 120: hyapp.room.v1.FollowRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
10, // 120: hyapp.room.v1.GetRoomTreasureResponse.treasure:type_name -> hyapp.room.v1.RoomTreasureInfo
|
||||||
0, // 121: hyapp.room.v1.UnfollowRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
0, // 121: hyapp.room.v1.ListRoomOnlineUsersRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
||||||
31, // 122: hyapp.room.v1.RoomCommandService.CreateRoom:input_type -> hyapp.room.v1.CreateRoomRequest
|
2, // 122: hyapp.room.v1.ListRoomOnlineUsersResponse.users:type_name -> hyapp.room.v1.RoomUser
|
||||||
33, // 123: hyapp.room.v1.RoomCommandService.UpdateRoomProfile:input_type -> hyapp.room.v1.UpdateRoomProfileRequest
|
0, // 123: hyapp.room.v1.FollowRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
||||||
35, // 124: hyapp.room.v1.RoomCommandService.JoinRoom:input_type -> hyapp.room.v1.JoinRoomRequest
|
0, // 124: hyapp.room.v1.UnfollowRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta
|
||||||
37, // 125: hyapp.room.v1.RoomCommandService.RoomHeartbeat:input_type -> hyapp.room.v1.RoomHeartbeatRequest
|
31, // 125: hyapp.room.v1.RoomCommandService.CreateRoom:input_type -> hyapp.room.v1.CreateRoomRequest
|
||||||
39, // 126: hyapp.room.v1.RoomCommandService.LeaveRoom:input_type -> hyapp.room.v1.LeaveRoomRequest
|
33, // 126: hyapp.room.v1.RoomCommandService.UpdateRoomProfile:input_type -> hyapp.room.v1.UpdateRoomProfileRequest
|
||||||
41, // 127: hyapp.room.v1.RoomCommandService.CloseRoom:input_type -> hyapp.room.v1.CloseRoomRequest
|
35, // 127: hyapp.room.v1.RoomCommandService.JoinRoom:input_type -> hyapp.room.v1.JoinRoomRequest
|
||||||
48, // 128: hyapp.room.v1.RoomCommandService.AdminUpdateRoom:input_type -> hyapp.room.v1.AdminUpdateRoomRequest
|
37, // 128: hyapp.room.v1.RoomCommandService.RoomHeartbeat:input_type -> hyapp.room.v1.RoomHeartbeatRequest
|
||||||
50, // 129: hyapp.room.v1.RoomCommandService.AdminDeleteRoom:input_type -> hyapp.room.v1.AdminDeleteRoomRequest
|
39, // 129: hyapp.room.v1.RoomCommandService.LeaveRoom:input_type -> hyapp.room.v1.LeaveRoomRequest
|
||||||
15, // 130: hyapp.room.v1.RoomCommandService.AdminUpdateRoomTreasureConfig:input_type -> hyapp.room.v1.AdminUpdateRoomTreasureConfigRequest
|
41, // 130: hyapp.room.v1.RoomCommandService.CloseRoom:input_type -> hyapp.room.v1.CloseRoomRequest
|
||||||
20, // 131: hyapp.room.v1.RoomCommandService.AdminUpdateRoomSeatConfig:input_type -> hyapp.room.v1.AdminUpdateRoomSeatConfigRequest
|
48, // 131: hyapp.room.v1.RoomCommandService.AdminUpdateRoom:input_type -> hyapp.room.v1.AdminUpdateRoomRequest
|
||||||
26, // 132: hyapp.room.v1.RoomCommandService.AdminCreateRoomPin:input_type -> hyapp.room.v1.AdminCreateRoomPinRequest
|
50, // 132: hyapp.room.v1.RoomCommandService.AdminDeleteRoom:input_type -> hyapp.room.v1.AdminDeleteRoomRequest
|
||||||
28, // 133: hyapp.room.v1.RoomCommandService.AdminCancelRoomPin:input_type -> hyapp.room.v1.AdminCancelRoomPinRequest
|
15, // 133: hyapp.room.v1.RoomCommandService.AdminUpdateRoomTreasureConfig:input_type -> hyapp.room.v1.AdminUpdateRoomTreasureConfigRequest
|
||||||
52, // 134: hyapp.room.v1.RoomCommandService.MicUp:input_type -> hyapp.room.v1.MicUpRequest
|
20, // 134: hyapp.room.v1.RoomCommandService.AdminUpdateRoomSeatConfig:input_type -> hyapp.room.v1.AdminUpdateRoomSeatConfigRequest
|
||||||
54, // 135: hyapp.room.v1.RoomCommandService.MicDown:input_type -> hyapp.room.v1.MicDownRequest
|
26, // 135: hyapp.room.v1.RoomCommandService.AdminCreateRoomPin:input_type -> hyapp.room.v1.AdminCreateRoomPinRequest
|
||||||
56, // 136: hyapp.room.v1.RoomCommandService.ChangeMicSeat:input_type -> hyapp.room.v1.ChangeMicSeatRequest
|
28, // 136: hyapp.room.v1.RoomCommandService.AdminCancelRoomPin:input_type -> hyapp.room.v1.AdminCancelRoomPinRequest
|
||||||
58, // 137: hyapp.room.v1.RoomCommandService.ConfirmMicPublishing:input_type -> hyapp.room.v1.ConfirmMicPublishingRequest
|
52, // 137: hyapp.room.v1.RoomCommandService.MicUp:input_type -> hyapp.room.v1.MicUpRequest
|
||||||
60, // 138: hyapp.room.v1.RoomCommandService.SetMicMute:input_type -> hyapp.room.v1.SetMicMuteRequest
|
54, // 138: hyapp.room.v1.RoomCommandService.MicDown:input_type -> hyapp.room.v1.MicDownRequest
|
||||||
62, // 139: hyapp.room.v1.RoomCommandService.ApplyRTCEvent:input_type -> hyapp.room.v1.ApplyRTCEventRequest
|
56, // 139: hyapp.room.v1.RoomCommandService.ChangeMicSeat:input_type -> hyapp.room.v1.ChangeMicSeatRequest
|
||||||
64, // 140: hyapp.room.v1.RoomCommandService.SetMicSeatLock:input_type -> hyapp.room.v1.SetMicSeatLockRequest
|
58, // 140: hyapp.room.v1.RoomCommandService.ConfirmMicPublishing:input_type -> hyapp.room.v1.ConfirmMicPublishingRequest
|
||||||
66, // 141: hyapp.room.v1.RoomCommandService.SetChatEnabled:input_type -> hyapp.room.v1.SetChatEnabledRequest
|
60, // 141: hyapp.room.v1.RoomCommandService.SetMicMute:input_type -> hyapp.room.v1.SetMicMuteRequest
|
||||||
68, // 142: hyapp.room.v1.RoomCommandService.SetRoomPassword:input_type -> hyapp.room.v1.SetRoomPasswordRequest
|
62, // 142: hyapp.room.v1.RoomCommandService.ApplyRTCEvent:input_type -> hyapp.room.v1.ApplyRTCEventRequest
|
||||||
70, // 143: hyapp.room.v1.RoomCommandService.SetRoomAdmin:input_type -> hyapp.room.v1.SetRoomAdminRequest
|
64, // 143: hyapp.room.v1.RoomCommandService.SetMicSeatLock:input_type -> hyapp.room.v1.SetMicSeatLockRequest
|
||||||
72, // 144: hyapp.room.v1.RoomCommandService.MuteUser:input_type -> hyapp.room.v1.MuteUserRequest
|
66, // 144: hyapp.room.v1.RoomCommandService.SetChatEnabled:input_type -> hyapp.room.v1.SetChatEnabledRequest
|
||||||
74, // 145: hyapp.room.v1.RoomCommandService.KickUser:input_type -> hyapp.room.v1.KickUserRequest
|
68, // 145: hyapp.room.v1.RoomCommandService.SetRoomPassword:input_type -> hyapp.room.v1.SetRoomPasswordRequest
|
||||||
76, // 146: hyapp.room.v1.RoomCommandService.UnbanUser:input_type -> hyapp.room.v1.UnbanUserRequest
|
70, // 146: hyapp.room.v1.RoomCommandService.SetRoomAdmin:input_type -> hyapp.room.v1.SetRoomAdminRequest
|
||||||
78, // 147: hyapp.room.v1.RoomCommandService.SystemEvictUser:input_type -> hyapp.room.v1.SystemEvictUserRequest
|
72, // 147: hyapp.room.v1.RoomCommandService.MuteUser:input_type -> hyapp.room.v1.MuteUserRequest
|
||||||
80, // 148: hyapp.room.v1.RoomCommandService.SendGift:input_type -> hyapp.room.v1.SendGiftRequest
|
74, // 148: hyapp.room.v1.RoomCommandService.KickUser:input_type -> hyapp.room.v1.KickUserRequest
|
||||||
101, // 149: hyapp.room.v1.RoomCommandService.FollowRoom:input_type -> hyapp.room.v1.FollowRoomRequest
|
76, // 149: hyapp.room.v1.RoomCommandService.UnbanUser:input_type -> hyapp.room.v1.UnbanUserRequest
|
||||||
103, // 150: hyapp.room.v1.RoomCommandService.UnfollowRoom:input_type -> hyapp.room.v1.UnfollowRoomRequest
|
78, // 150: hyapp.room.v1.RoomCommandService.SystemEvictUser:input_type -> hyapp.room.v1.SystemEvictUserRequest
|
||||||
82, // 151: hyapp.room.v1.RoomGuardService.CheckSpeakPermission:input_type -> hyapp.room.v1.CheckSpeakPermissionRequest
|
80, // 151: hyapp.room.v1.RoomCommandService.SendGift:input_type -> hyapp.room.v1.SendGiftRequest
|
||||||
84, // 152: hyapp.room.v1.RoomGuardService.VerifyRoomPresence:input_type -> hyapp.room.v1.VerifyRoomPresenceRequest
|
104, // 152: hyapp.room.v1.RoomCommandService.FollowRoom:input_type -> hyapp.room.v1.FollowRoomRequest
|
||||||
44, // 153: hyapp.room.v1.RoomQueryService.AdminListRooms:input_type -> hyapp.room.v1.AdminListRoomsRequest
|
106, // 153: hyapp.room.v1.RoomCommandService.UnfollowRoom:input_type -> hyapp.room.v1.UnfollowRoomRequest
|
||||||
46, // 154: hyapp.room.v1.RoomQueryService.AdminGetRoom:input_type -> hyapp.room.v1.AdminGetRoomRequest
|
82, // 154: hyapp.room.v1.RoomGuardService.CheckSpeakPermission:input_type -> hyapp.room.v1.CheckSpeakPermissionRequest
|
||||||
13, // 155: hyapp.room.v1.RoomQueryService.AdminGetRoomTreasureConfig:input_type -> hyapp.room.v1.AdminGetRoomTreasureConfigRequest
|
84, // 155: hyapp.room.v1.RoomGuardService.VerifyRoomPresence:input_type -> hyapp.room.v1.VerifyRoomPresenceRequest
|
||||||
18, // 156: hyapp.room.v1.RoomQueryService.AdminGetRoomSeatConfig:input_type -> hyapp.room.v1.AdminGetRoomSeatConfigRequest
|
44, // 156: hyapp.room.v1.RoomQueryService.AdminListRooms:input_type -> hyapp.room.v1.AdminListRoomsRequest
|
||||||
24, // 157: hyapp.room.v1.RoomQueryService.AdminListRoomPins:input_type -> hyapp.room.v1.AdminListRoomPinsRequest
|
46, // 157: hyapp.room.v1.RoomQueryService.AdminGetRoom:input_type -> hyapp.room.v1.AdminGetRoomRequest
|
||||||
86, // 158: hyapp.room.v1.RoomQueryService.ListRooms:input_type -> hyapp.room.v1.ListRoomsRequest
|
13, // 158: hyapp.room.v1.RoomQueryService.AdminGetRoomTreasureConfig:input_type -> hyapp.room.v1.AdminGetRoomTreasureConfigRequest
|
||||||
87, // 159: hyapp.room.v1.RoomQueryService.ListRoomFeeds:input_type -> hyapp.room.v1.ListRoomFeedsRequest
|
18, // 159: hyapp.room.v1.RoomQueryService.AdminGetRoomSeatConfig:input_type -> hyapp.room.v1.AdminGetRoomSeatConfigRequest
|
||||||
91, // 160: hyapp.room.v1.RoomQueryService.GetMyRoom:input_type -> hyapp.room.v1.GetMyRoomRequest
|
24, // 160: hyapp.room.v1.RoomQueryService.AdminListRoomPins:input_type -> hyapp.room.v1.AdminListRoomPinsRequest
|
||||||
93, // 161: hyapp.room.v1.RoomQueryService.GetCurrentRoom:input_type -> hyapp.room.v1.GetCurrentRoomRequest
|
86, // 161: hyapp.room.v1.RoomQueryService.ListRooms:input_type -> hyapp.room.v1.ListRoomsRequest
|
||||||
95, // 162: hyapp.room.v1.RoomQueryService.GetRoomSnapshot:input_type -> hyapp.room.v1.GetRoomSnapshotRequest
|
87, // 162: hyapp.room.v1.RoomQueryService.ListRoomFeeds:input_type -> hyapp.room.v1.ListRoomFeedsRequest
|
||||||
97, // 163: hyapp.room.v1.RoomQueryService.GetRoomTreasure:input_type -> hyapp.room.v1.GetRoomTreasureRequest
|
88, // 163: hyapp.room.v1.RoomQueryService.ListRoomGiftLeaderboard:input_type -> hyapp.room.v1.ListRoomGiftLeaderboardRequest
|
||||||
99, // 164: hyapp.room.v1.RoomQueryService.ListRoomOnlineUsers:input_type -> hyapp.room.v1.ListRoomOnlineUsersRequest
|
94, // 164: hyapp.room.v1.RoomQueryService.GetMyRoom:input_type -> hyapp.room.v1.GetMyRoomRequest
|
||||||
32, // 165: hyapp.room.v1.RoomCommandService.CreateRoom:output_type -> hyapp.room.v1.CreateRoomResponse
|
96, // 165: hyapp.room.v1.RoomQueryService.GetCurrentRoom:input_type -> hyapp.room.v1.GetCurrentRoomRequest
|
||||||
34, // 166: hyapp.room.v1.RoomCommandService.UpdateRoomProfile:output_type -> hyapp.room.v1.UpdateRoomProfileResponse
|
98, // 166: hyapp.room.v1.RoomQueryService.GetRoomSnapshot:input_type -> hyapp.room.v1.GetRoomSnapshotRequest
|
||||||
36, // 167: hyapp.room.v1.RoomCommandService.JoinRoom:output_type -> hyapp.room.v1.JoinRoomResponse
|
100, // 167: hyapp.room.v1.RoomQueryService.GetRoomTreasure:input_type -> hyapp.room.v1.GetRoomTreasureRequest
|
||||||
38, // 168: hyapp.room.v1.RoomCommandService.RoomHeartbeat:output_type -> hyapp.room.v1.RoomHeartbeatResponse
|
102, // 168: hyapp.room.v1.RoomQueryService.ListRoomOnlineUsers:input_type -> hyapp.room.v1.ListRoomOnlineUsersRequest
|
||||||
40, // 169: hyapp.room.v1.RoomCommandService.LeaveRoom:output_type -> hyapp.room.v1.LeaveRoomResponse
|
32, // 169: hyapp.room.v1.RoomCommandService.CreateRoom:output_type -> hyapp.room.v1.CreateRoomResponse
|
||||||
42, // 170: hyapp.room.v1.RoomCommandService.CloseRoom:output_type -> hyapp.room.v1.CloseRoomResponse
|
34, // 170: hyapp.room.v1.RoomCommandService.UpdateRoomProfile:output_type -> hyapp.room.v1.UpdateRoomProfileResponse
|
||||||
49, // 171: hyapp.room.v1.RoomCommandService.AdminUpdateRoom:output_type -> hyapp.room.v1.AdminUpdateRoomResponse
|
36, // 171: hyapp.room.v1.RoomCommandService.JoinRoom:output_type -> hyapp.room.v1.JoinRoomResponse
|
||||||
51, // 172: hyapp.room.v1.RoomCommandService.AdminDeleteRoom:output_type -> hyapp.room.v1.AdminDeleteRoomResponse
|
38, // 172: hyapp.room.v1.RoomCommandService.RoomHeartbeat:output_type -> hyapp.room.v1.RoomHeartbeatResponse
|
||||||
16, // 173: hyapp.room.v1.RoomCommandService.AdminUpdateRoomTreasureConfig:output_type -> hyapp.room.v1.AdminUpdateRoomTreasureConfigResponse
|
40, // 173: hyapp.room.v1.RoomCommandService.LeaveRoom:output_type -> hyapp.room.v1.LeaveRoomResponse
|
||||||
21, // 174: hyapp.room.v1.RoomCommandService.AdminUpdateRoomSeatConfig:output_type -> hyapp.room.v1.AdminUpdateRoomSeatConfigResponse
|
42, // 174: hyapp.room.v1.RoomCommandService.CloseRoom:output_type -> hyapp.room.v1.CloseRoomResponse
|
||||||
27, // 175: hyapp.room.v1.RoomCommandService.AdminCreateRoomPin:output_type -> hyapp.room.v1.AdminCreateRoomPinResponse
|
49, // 175: hyapp.room.v1.RoomCommandService.AdminUpdateRoom:output_type -> hyapp.room.v1.AdminUpdateRoomResponse
|
||||||
29, // 176: hyapp.room.v1.RoomCommandService.AdminCancelRoomPin:output_type -> hyapp.room.v1.AdminCancelRoomPinResponse
|
51, // 176: hyapp.room.v1.RoomCommandService.AdminDeleteRoom:output_type -> hyapp.room.v1.AdminDeleteRoomResponse
|
||||||
53, // 177: hyapp.room.v1.RoomCommandService.MicUp:output_type -> hyapp.room.v1.MicUpResponse
|
16, // 177: hyapp.room.v1.RoomCommandService.AdminUpdateRoomTreasureConfig:output_type -> hyapp.room.v1.AdminUpdateRoomTreasureConfigResponse
|
||||||
55, // 178: hyapp.room.v1.RoomCommandService.MicDown:output_type -> hyapp.room.v1.MicDownResponse
|
21, // 178: hyapp.room.v1.RoomCommandService.AdminUpdateRoomSeatConfig:output_type -> hyapp.room.v1.AdminUpdateRoomSeatConfigResponse
|
||||||
57, // 179: hyapp.room.v1.RoomCommandService.ChangeMicSeat:output_type -> hyapp.room.v1.ChangeMicSeatResponse
|
27, // 179: hyapp.room.v1.RoomCommandService.AdminCreateRoomPin:output_type -> hyapp.room.v1.AdminCreateRoomPinResponse
|
||||||
59, // 180: hyapp.room.v1.RoomCommandService.ConfirmMicPublishing:output_type -> hyapp.room.v1.ConfirmMicPublishingResponse
|
29, // 180: hyapp.room.v1.RoomCommandService.AdminCancelRoomPin:output_type -> hyapp.room.v1.AdminCancelRoomPinResponse
|
||||||
61, // 181: hyapp.room.v1.RoomCommandService.SetMicMute:output_type -> hyapp.room.v1.SetMicMuteResponse
|
53, // 181: hyapp.room.v1.RoomCommandService.MicUp:output_type -> hyapp.room.v1.MicUpResponse
|
||||||
63, // 182: hyapp.room.v1.RoomCommandService.ApplyRTCEvent:output_type -> hyapp.room.v1.ApplyRTCEventResponse
|
55, // 182: hyapp.room.v1.RoomCommandService.MicDown:output_type -> hyapp.room.v1.MicDownResponse
|
||||||
65, // 183: hyapp.room.v1.RoomCommandService.SetMicSeatLock:output_type -> hyapp.room.v1.SetMicSeatLockResponse
|
57, // 183: hyapp.room.v1.RoomCommandService.ChangeMicSeat:output_type -> hyapp.room.v1.ChangeMicSeatResponse
|
||||||
67, // 184: hyapp.room.v1.RoomCommandService.SetChatEnabled:output_type -> hyapp.room.v1.SetChatEnabledResponse
|
59, // 184: hyapp.room.v1.RoomCommandService.ConfirmMicPublishing:output_type -> hyapp.room.v1.ConfirmMicPublishingResponse
|
||||||
69, // 185: hyapp.room.v1.RoomCommandService.SetRoomPassword:output_type -> hyapp.room.v1.SetRoomPasswordResponse
|
61, // 185: hyapp.room.v1.RoomCommandService.SetMicMute:output_type -> hyapp.room.v1.SetMicMuteResponse
|
||||||
71, // 186: hyapp.room.v1.RoomCommandService.SetRoomAdmin:output_type -> hyapp.room.v1.SetRoomAdminResponse
|
63, // 186: hyapp.room.v1.RoomCommandService.ApplyRTCEvent:output_type -> hyapp.room.v1.ApplyRTCEventResponse
|
||||||
73, // 187: hyapp.room.v1.RoomCommandService.MuteUser:output_type -> hyapp.room.v1.MuteUserResponse
|
65, // 187: hyapp.room.v1.RoomCommandService.SetMicSeatLock:output_type -> hyapp.room.v1.SetMicSeatLockResponse
|
||||||
75, // 188: hyapp.room.v1.RoomCommandService.KickUser:output_type -> hyapp.room.v1.KickUserResponse
|
67, // 188: hyapp.room.v1.RoomCommandService.SetChatEnabled:output_type -> hyapp.room.v1.SetChatEnabledResponse
|
||||||
77, // 189: hyapp.room.v1.RoomCommandService.UnbanUser:output_type -> hyapp.room.v1.UnbanUserResponse
|
69, // 189: hyapp.room.v1.RoomCommandService.SetRoomPassword:output_type -> hyapp.room.v1.SetRoomPasswordResponse
|
||||||
79, // 190: hyapp.room.v1.RoomCommandService.SystemEvictUser:output_type -> hyapp.room.v1.SystemEvictUserResponse
|
71, // 190: hyapp.room.v1.RoomCommandService.SetRoomAdmin:output_type -> hyapp.room.v1.SetRoomAdminResponse
|
||||||
81, // 191: hyapp.room.v1.RoomCommandService.SendGift:output_type -> hyapp.room.v1.SendGiftResponse
|
73, // 191: hyapp.room.v1.RoomCommandService.MuteUser:output_type -> hyapp.room.v1.MuteUserResponse
|
||||||
102, // 192: hyapp.room.v1.RoomCommandService.FollowRoom:output_type -> hyapp.room.v1.FollowRoomResponse
|
75, // 192: hyapp.room.v1.RoomCommandService.KickUser:output_type -> hyapp.room.v1.KickUserResponse
|
||||||
104, // 193: hyapp.room.v1.RoomCommandService.UnfollowRoom:output_type -> hyapp.room.v1.UnfollowRoomResponse
|
77, // 193: hyapp.room.v1.RoomCommandService.UnbanUser:output_type -> hyapp.room.v1.UnbanUserResponse
|
||||||
83, // 194: hyapp.room.v1.RoomGuardService.CheckSpeakPermission:output_type -> hyapp.room.v1.CheckSpeakPermissionResponse
|
79, // 194: hyapp.room.v1.RoomCommandService.SystemEvictUser:output_type -> hyapp.room.v1.SystemEvictUserResponse
|
||||||
85, // 195: hyapp.room.v1.RoomGuardService.VerifyRoomPresence:output_type -> hyapp.room.v1.VerifyRoomPresenceResponse
|
81, // 195: hyapp.room.v1.RoomCommandService.SendGift:output_type -> hyapp.room.v1.SendGiftResponse
|
||||||
45, // 196: hyapp.room.v1.RoomQueryService.AdminListRooms:output_type -> hyapp.room.v1.AdminListRoomsResponse
|
105, // 196: hyapp.room.v1.RoomCommandService.FollowRoom:output_type -> hyapp.room.v1.FollowRoomResponse
|
||||||
47, // 197: hyapp.room.v1.RoomQueryService.AdminGetRoom:output_type -> hyapp.room.v1.AdminGetRoomResponse
|
107, // 197: hyapp.room.v1.RoomCommandService.UnfollowRoom:output_type -> hyapp.room.v1.UnfollowRoomResponse
|
||||||
14, // 198: hyapp.room.v1.RoomQueryService.AdminGetRoomTreasureConfig:output_type -> hyapp.room.v1.AdminGetRoomTreasureConfigResponse
|
83, // 198: hyapp.room.v1.RoomGuardService.CheckSpeakPermission:output_type -> hyapp.room.v1.CheckSpeakPermissionResponse
|
||||||
19, // 199: hyapp.room.v1.RoomQueryService.AdminGetRoomSeatConfig:output_type -> hyapp.room.v1.AdminGetRoomSeatConfigResponse
|
85, // 199: hyapp.room.v1.RoomGuardService.VerifyRoomPresence:output_type -> hyapp.room.v1.VerifyRoomPresenceResponse
|
||||||
25, // 200: hyapp.room.v1.RoomQueryService.AdminListRoomPins:output_type -> hyapp.room.v1.AdminListRoomPinsResponse
|
45, // 200: hyapp.room.v1.RoomQueryService.AdminListRooms:output_type -> hyapp.room.v1.AdminListRoomsResponse
|
||||||
90, // 201: hyapp.room.v1.RoomQueryService.ListRooms:output_type -> hyapp.room.v1.ListRoomsResponse
|
47, // 201: hyapp.room.v1.RoomQueryService.AdminGetRoom:output_type -> hyapp.room.v1.AdminGetRoomResponse
|
||||||
90, // 202: hyapp.room.v1.RoomQueryService.ListRoomFeeds:output_type -> hyapp.room.v1.ListRoomsResponse
|
14, // 202: hyapp.room.v1.RoomQueryService.AdminGetRoomTreasureConfig:output_type -> hyapp.room.v1.AdminGetRoomTreasureConfigResponse
|
||||||
92, // 203: hyapp.room.v1.RoomQueryService.GetMyRoom:output_type -> hyapp.room.v1.GetMyRoomResponse
|
19, // 203: hyapp.room.v1.RoomQueryService.AdminGetRoomSeatConfig:output_type -> hyapp.room.v1.AdminGetRoomSeatConfigResponse
|
||||||
94, // 204: hyapp.room.v1.RoomQueryService.GetCurrentRoom:output_type -> hyapp.room.v1.GetCurrentRoomResponse
|
25, // 204: hyapp.room.v1.RoomQueryService.AdminListRoomPins:output_type -> hyapp.room.v1.AdminListRoomPinsResponse
|
||||||
96, // 205: hyapp.room.v1.RoomQueryService.GetRoomSnapshot:output_type -> hyapp.room.v1.GetRoomSnapshotResponse
|
91, // 205: hyapp.room.v1.RoomQueryService.ListRooms:output_type -> hyapp.room.v1.ListRoomsResponse
|
||||||
98, // 206: hyapp.room.v1.RoomQueryService.GetRoomTreasure:output_type -> hyapp.room.v1.GetRoomTreasureResponse
|
91, // 206: hyapp.room.v1.RoomQueryService.ListRoomFeeds:output_type -> hyapp.room.v1.ListRoomsResponse
|
||||||
100, // 207: hyapp.room.v1.RoomQueryService.ListRoomOnlineUsers:output_type -> hyapp.room.v1.ListRoomOnlineUsersResponse
|
93, // 207: hyapp.room.v1.RoomQueryService.ListRoomGiftLeaderboard:output_type -> hyapp.room.v1.ListRoomGiftLeaderboardResponse
|
||||||
165, // [165:208] is the sub-list for method output_type
|
95, // 208: hyapp.room.v1.RoomQueryService.GetMyRoom:output_type -> hyapp.room.v1.GetMyRoomResponse
|
||||||
122, // [122:165] is the sub-list for method input_type
|
97, // 209: hyapp.room.v1.RoomQueryService.GetCurrentRoom:output_type -> hyapp.room.v1.GetCurrentRoomResponse
|
||||||
122, // [122:122] is the sub-list for extension type_name
|
99, // 210: hyapp.room.v1.RoomQueryService.GetRoomSnapshot:output_type -> hyapp.room.v1.GetRoomSnapshotResponse
|
||||||
122, // [122:122] is the sub-list for extension extendee
|
101, // 211: hyapp.room.v1.RoomQueryService.GetRoomTreasure:output_type -> hyapp.room.v1.GetRoomTreasureResponse
|
||||||
0, // [0:122] is the sub-list for field type_name
|
103, // 212: hyapp.room.v1.RoomQueryService.ListRoomOnlineUsers:output_type -> hyapp.room.v1.ListRoomOnlineUsersResponse
|
||||||
|
169, // [169:213] is the sub-list for method output_type
|
||||||
|
125, // [125:169] is the sub-list for method input_type
|
||||||
|
125, // [125:125] is the sub-list for extension type_name
|
||||||
|
125, // [125:125] is the sub-list for extension extendee
|
||||||
|
0, // [0:125] is the sub-list for field type_name
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { file_proto_room_v1_room_proto_init() }
|
func init() { file_proto_room_v1_room_proto_init() }
|
||||||
@ -8749,7 +9000,7 @@ func file_proto_room_v1_room_proto_init() {
|
|||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: unsafe.Slice(unsafe.StringData(file_proto_room_v1_room_proto_rawDesc), len(file_proto_room_v1_room_proto_rawDesc)),
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_proto_room_v1_room_proto_rawDesc), len(file_proto_room_v1_room_proto_rawDesc)),
|
||||||
NumEnums: 0,
|
NumEnums: 0,
|
||||||
NumMessages: 106,
|
NumMessages: 109,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
NumServices: 3,
|
NumServices: 3,
|
||||||
},
|
},
|
||||||
|
|||||||
@ -775,6 +775,14 @@ message ListRoomFeedsRequest {
|
|||||||
repeated RoomFeedRelatedUser related_users = 8;
|
repeated RoomFeedRelatedUser related_users = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ListRoomGiftLeaderboardRequest 查询当前 UTC 周期内的房间金币消耗榜。
|
||||||
|
message ListRoomGiftLeaderboardRequest {
|
||||||
|
RequestMeta meta = 1;
|
||||||
|
string period = 2;
|
||||||
|
int32 page = 3;
|
||||||
|
int32 page_size = 4;
|
||||||
|
}
|
||||||
|
|
||||||
// RoomFeedRelatedUser 是 Mine 关系房间流的排序输入,不让 room-service 持有好友/关注事实。
|
// RoomFeedRelatedUser 是 Mine 关系房间流的排序输入,不让 room-service 持有好友/关注事实。
|
||||||
message RoomFeedRelatedUser {
|
message RoomFeedRelatedUser {
|
||||||
int64 user_id = 1;
|
int64 user_id = 1;
|
||||||
@ -805,6 +813,24 @@ message ListRoomsResponse {
|
|||||||
string next_cursor = 2;
|
string next_cursor = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RoomGiftLeaderboardItem 是跨房间金币消耗榜卡片;score 只表达该周期房间礼物金币消耗。
|
||||||
|
message RoomGiftLeaderboardItem {
|
||||||
|
int64 rank = 1;
|
||||||
|
string room_id = 2;
|
||||||
|
int64 coin_spent = 3;
|
||||||
|
RoomListItem room = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ListRoomGiftLeaderboardResponse 返回当前 UTC 周期房间金币榜。
|
||||||
|
message ListRoomGiftLeaderboardResponse {
|
||||||
|
repeated RoomGiftLeaderboardItem items = 1;
|
||||||
|
int64 total = 2;
|
||||||
|
string period = 3;
|
||||||
|
int64 start_at_ms = 4;
|
||||||
|
int64 end_at_ms = 5;
|
||||||
|
int64 server_time_ms = 6;
|
||||||
|
}
|
||||||
|
|
||||||
// GetMyRoomRequest 查询当前用户自己创建的房间。
|
// GetMyRoomRequest 查询当前用户自己创建的房间。
|
||||||
// 该查询必须由 gateway 写入鉴权后的 owner_user_id,不能从客户端接收用户 ID。
|
// 该查询必须由 gateway 写入鉴权后的 owner_user_id,不能从客户端接收用户 ID。
|
||||||
message GetMyRoomRequest {
|
message GetMyRoomRequest {
|
||||||
@ -963,6 +989,7 @@ service RoomQueryService {
|
|||||||
rpc AdminListRoomPins(AdminListRoomPinsRequest) returns (AdminListRoomPinsResponse);
|
rpc AdminListRoomPins(AdminListRoomPinsRequest) returns (AdminListRoomPinsResponse);
|
||||||
rpc ListRooms(ListRoomsRequest) returns (ListRoomsResponse);
|
rpc ListRooms(ListRoomsRequest) returns (ListRoomsResponse);
|
||||||
rpc ListRoomFeeds(ListRoomFeedsRequest) returns (ListRoomsResponse);
|
rpc ListRoomFeeds(ListRoomFeedsRequest) returns (ListRoomsResponse);
|
||||||
|
rpc ListRoomGiftLeaderboard(ListRoomGiftLeaderboardRequest) returns (ListRoomGiftLeaderboardResponse);
|
||||||
rpc GetMyRoom(GetMyRoomRequest) returns (GetMyRoomResponse);
|
rpc GetMyRoom(GetMyRoomRequest) returns (GetMyRoomResponse);
|
||||||
rpc GetCurrentRoom(GetCurrentRoomRequest) returns (GetCurrentRoomResponse);
|
rpc GetCurrentRoom(GetCurrentRoomRequest) returns (GetCurrentRoomResponse);
|
||||||
rpc GetRoomSnapshot(GetRoomSnapshotRequest) returns (GetRoomSnapshotResponse);
|
rpc GetRoomSnapshot(GetRoomSnapshotRequest) returns (GetRoomSnapshotResponse);
|
||||||
|
|||||||
@ -1340,6 +1340,7 @@ const (
|
|||||||
RoomQueryService_AdminListRoomPins_FullMethodName = "/hyapp.room.v1.RoomQueryService/AdminListRoomPins"
|
RoomQueryService_AdminListRoomPins_FullMethodName = "/hyapp.room.v1.RoomQueryService/AdminListRoomPins"
|
||||||
RoomQueryService_ListRooms_FullMethodName = "/hyapp.room.v1.RoomQueryService/ListRooms"
|
RoomQueryService_ListRooms_FullMethodName = "/hyapp.room.v1.RoomQueryService/ListRooms"
|
||||||
RoomQueryService_ListRoomFeeds_FullMethodName = "/hyapp.room.v1.RoomQueryService/ListRoomFeeds"
|
RoomQueryService_ListRoomFeeds_FullMethodName = "/hyapp.room.v1.RoomQueryService/ListRoomFeeds"
|
||||||
|
RoomQueryService_ListRoomGiftLeaderboard_FullMethodName = "/hyapp.room.v1.RoomQueryService/ListRoomGiftLeaderboard"
|
||||||
RoomQueryService_GetMyRoom_FullMethodName = "/hyapp.room.v1.RoomQueryService/GetMyRoom"
|
RoomQueryService_GetMyRoom_FullMethodName = "/hyapp.room.v1.RoomQueryService/GetMyRoom"
|
||||||
RoomQueryService_GetCurrentRoom_FullMethodName = "/hyapp.room.v1.RoomQueryService/GetCurrentRoom"
|
RoomQueryService_GetCurrentRoom_FullMethodName = "/hyapp.room.v1.RoomQueryService/GetCurrentRoom"
|
||||||
RoomQueryService_GetRoomSnapshot_FullMethodName = "/hyapp.room.v1.RoomQueryService/GetRoomSnapshot"
|
RoomQueryService_GetRoomSnapshot_FullMethodName = "/hyapp.room.v1.RoomQueryService/GetRoomSnapshot"
|
||||||
@ -1360,6 +1361,7 @@ type RoomQueryServiceClient interface {
|
|||||||
AdminListRoomPins(ctx context.Context, in *AdminListRoomPinsRequest, opts ...grpc.CallOption) (*AdminListRoomPinsResponse, error)
|
AdminListRoomPins(ctx context.Context, in *AdminListRoomPinsRequest, opts ...grpc.CallOption) (*AdminListRoomPinsResponse, error)
|
||||||
ListRooms(ctx context.Context, in *ListRoomsRequest, opts ...grpc.CallOption) (*ListRoomsResponse, error)
|
ListRooms(ctx context.Context, in *ListRoomsRequest, opts ...grpc.CallOption) (*ListRoomsResponse, error)
|
||||||
ListRoomFeeds(ctx context.Context, in *ListRoomFeedsRequest, opts ...grpc.CallOption) (*ListRoomsResponse, error)
|
ListRoomFeeds(ctx context.Context, in *ListRoomFeedsRequest, opts ...grpc.CallOption) (*ListRoomsResponse, error)
|
||||||
|
ListRoomGiftLeaderboard(ctx context.Context, in *ListRoomGiftLeaderboardRequest, opts ...grpc.CallOption) (*ListRoomGiftLeaderboardResponse, error)
|
||||||
GetMyRoom(ctx context.Context, in *GetMyRoomRequest, opts ...grpc.CallOption) (*GetMyRoomResponse, error)
|
GetMyRoom(ctx context.Context, in *GetMyRoomRequest, opts ...grpc.CallOption) (*GetMyRoomResponse, error)
|
||||||
GetCurrentRoom(ctx context.Context, in *GetCurrentRoomRequest, opts ...grpc.CallOption) (*GetCurrentRoomResponse, error)
|
GetCurrentRoom(ctx context.Context, in *GetCurrentRoomRequest, opts ...grpc.CallOption) (*GetCurrentRoomResponse, error)
|
||||||
GetRoomSnapshot(ctx context.Context, in *GetRoomSnapshotRequest, opts ...grpc.CallOption) (*GetRoomSnapshotResponse, error)
|
GetRoomSnapshot(ctx context.Context, in *GetRoomSnapshotRequest, opts ...grpc.CallOption) (*GetRoomSnapshotResponse, error)
|
||||||
@ -1445,6 +1447,16 @@ func (c *roomQueryServiceClient) ListRoomFeeds(ctx context.Context, in *ListRoom
|
|||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *roomQueryServiceClient) ListRoomGiftLeaderboard(ctx context.Context, in *ListRoomGiftLeaderboardRequest, opts ...grpc.CallOption) (*ListRoomGiftLeaderboardResponse, error) {
|
||||||
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
|
out := new(ListRoomGiftLeaderboardResponse)
|
||||||
|
err := c.cc.Invoke(ctx, RoomQueryService_ListRoomGiftLeaderboard_FullMethodName, in, out, cOpts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return out, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (c *roomQueryServiceClient) GetMyRoom(ctx context.Context, in *GetMyRoomRequest, opts ...grpc.CallOption) (*GetMyRoomResponse, error) {
|
func (c *roomQueryServiceClient) GetMyRoom(ctx context.Context, in *GetMyRoomRequest, opts ...grpc.CallOption) (*GetMyRoomResponse, error) {
|
||||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
out := new(GetMyRoomResponse)
|
out := new(GetMyRoomResponse)
|
||||||
@ -1508,6 +1520,7 @@ type RoomQueryServiceServer interface {
|
|||||||
AdminListRoomPins(context.Context, *AdminListRoomPinsRequest) (*AdminListRoomPinsResponse, error)
|
AdminListRoomPins(context.Context, *AdminListRoomPinsRequest) (*AdminListRoomPinsResponse, error)
|
||||||
ListRooms(context.Context, *ListRoomsRequest) (*ListRoomsResponse, error)
|
ListRooms(context.Context, *ListRoomsRequest) (*ListRoomsResponse, error)
|
||||||
ListRoomFeeds(context.Context, *ListRoomFeedsRequest) (*ListRoomsResponse, error)
|
ListRoomFeeds(context.Context, *ListRoomFeedsRequest) (*ListRoomsResponse, error)
|
||||||
|
ListRoomGiftLeaderboard(context.Context, *ListRoomGiftLeaderboardRequest) (*ListRoomGiftLeaderboardResponse, error)
|
||||||
GetMyRoom(context.Context, *GetMyRoomRequest) (*GetMyRoomResponse, error)
|
GetMyRoom(context.Context, *GetMyRoomRequest) (*GetMyRoomResponse, error)
|
||||||
GetCurrentRoom(context.Context, *GetCurrentRoomRequest) (*GetCurrentRoomResponse, error)
|
GetCurrentRoom(context.Context, *GetCurrentRoomRequest) (*GetCurrentRoomResponse, error)
|
||||||
GetRoomSnapshot(context.Context, *GetRoomSnapshotRequest) (*GetRoomSnapshotResponse, error)
|
GetRoomSnapshot(context.Context, *GetRoomSnapshotRequest) (*GetRoomSnapshotResponse, error)
|
||||||
@ -1544,6 +1557,9 @@ func (UnimplementedRoomQueryServiceServer) ListRooms(context.Context, *ListRooms
|
|||||||
func (UnimplementedRoomQueryServiceServer) ListRoomFeeds(context.Context, *ListRoomFeedsRequest) (*ListRoomsResponse, error) {
|
func (UnimplementedRoomQueryServiceServer) ListRoomFeeds(context.Context, *ListRoomFeedsRequest) (*ListRoomsResponse, error) {
|
||||||
return nil, status.Error(codes.Unimplemented, "method ListRoomFeeds not implemented")
|
return nil, status.Error(codes.Unimplemented, "method ListRoomFeeds not implemented")
|
||||||
}
|
}
|
||||||
|
func (UnimplementedRoomQueryServiceServer) ListRoomGiftLeaderboard(context.Context, *ListRoomGiftLeaderboardRequest) (*ListRoomGiftLeaderboardResponse, error) {
|
||||||
|
return nil, status.Error(codes.Unimplemented, "method ListRoomGiftLeaderboard not implemented")
|
||||||
|
}
|
||||||
func (UnimplementedRoomQueryServiceServer) GetMyRoom(context.Context, *GetMyRoomRequest) (*GetMyRoomResponse, error) {
|
func (UnimplementedRoomQueryServiceServer) GetMyRoom(context.Context, *GetMyRoomRequest) (*GetMyRoomResponse, error) {
|
||||||
return nil, status.Error(codes.Unimplemented, "method GetMyRoom not implemented")
|
return nil, status.Error(codes.Unimplemented, "method GetMyRoom not implemented")
|
||||||
}
|
}
|
||||||
@ -1706,6 +1722,24 @@ func _RoomQueryService_ListRoomFeeds_Handler(srv interface{}, ctx context.Contex
|
|||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func _RoomQueryService_ListRoomGiftLeaderboard_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(ListRoomGiftLeaderboardRequest)
|
||||||
|
if err := dec(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if interceptor == nil {
|
||||||
|
return srv.(RoomQueryServiceServer).ListRoomGiftLeaderboard(ctx, in)
|
||||||
|
}
|
||||||
|
info := &grpc.UnaryServerInfo{
|
||||||
|
Server: srv,
|
||||||
|
FullMethod: RoomQueryService_ListRoomGiftLeaderboard_FullMethodName,
|
||||||
|
}
|
||||||
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
|
return srv.(RoomQueryServiceServer).ListRoomGiftLeaderboard(ctx, req.(*ListRoomGiftLeaderboardRequest))
|
||||||
|
}
|
||||||
|
return interceptor(ctx, in, info, handler)
|
||||||
|
}
|
||||||
|
|
||||||
func _RoomQueryService_GetMyRoom_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
func _RoomQueryService_GetMyRoom_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
in := new(GetMyRoomRequest)
|
in := new(GetMyRoomRequest)
|
||||||
if err := dec(in); err != nil {
|
if err := dec(in); err != nil {
|
||||||
@ -1831,6 +1865,10 @@ var RoomQueryService_ServiceDesc = grpc.ServiceDesc{
|
|||||||
MethodName: "ListRoomFeeds",
|
MethodName: "ListRoomFeeds",
|
||||||
Handler: _RoomQueryService_ListRoomFeeds_Handler,
|
Handler: _RoomQueryService_ListRoomFeeds_Handler,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
MethodName: "ListRoomGiftLeaderboard",
|
||||||
|
Handler: _RoomQueryService_ListRoomGiftLeaderboard_Handler,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
MethodName: "GetMyRoom",
|
MethodName: "GetMyRoom",
|
||||||
Handler: _RoomQueryService_GetMyRoom_Handler,
|
Handler: _RoomQueryService_GetMyRoom_Handler,
|
||||||
|
|||||||
@ -43,6 +43,7 @@ type RoomGuardClient interface {
|
|||||||
type RoomQueryClient interface {
|
type RoomQueryClient interface {
|
||||||
ListRooms(ctx context.Context, req *roomv1.ListRoomsRequest) (*roomv1.ListRoomsResponse, error)
|
ListRooms(ctx context.Context, req *roomv1.ListRoomsRequest) (*roomv1.ListRoomsResponse, error)
|
||||||
ListRoomFeeds(ctx context.Context, req *roomv1.ListRoomFeedsRequest) (*roomv1.ListRoomsResponse, error)
|
ListRoomFeeds(ctx context.Context, req *roomv1.ListRoomFeedsRequest) (*roomv1.ListRoomsResponse, error)
|
||||||
|
ListRoomGiftLeaderboard(ctx context.Context, req *roomv1.ListRoomGiftLeaderboardRequest) (*roomv1.ListRoomGiftLeaderboardResponse, error)
|
||||||
GetMyRoom(ctx context.Context, req *roomv1.GetMyRoomRequest) (*roomv1.GetMyRoomResponse, error)
|
GetMyRoom(ctx context.Context, req *roomv1.GetMyRoomRequest) (*roomv1.GetMyRoomResponse, error)
|
||||||
GetCurrentRoom(ctx context.Context, req *roomv1.GetCurrentRoomRequest) (*roomv1.GetCurrentRoomResponse, error)
|
GetCurrentRoom(ctx context.Context, req *roomv1.GetCurrentRoomRequest) (*roomv1.GetCurrentRoomResponse, error)
|
||||||
GetRoomSnapshot(ctx context.Context, req *roomv1.GetRoomSnapshotRequest) (*roomv1.GetRoomSnapshotResponse, error)
|
GetRoomSnapshot(ctx context.Context, req *roomv1.GetRoomSnapshotRequest) (*roomv1.GetRoomSnapshotResponse, error)
|
||||||
@ -183,6 +184,10 @@ func (c *grpcRoomQueryClient) ListRoomFeeds(ctx context.Context, req *roomv1.Lis
|
|||||||
return c.client.ListRoomFeeds(ctx, req)
|
return c.client.ListRoomFeeds(ctx, req)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *grpcRoomQueryClient) ListRoomGiftLeaderboard(ctx context.Context, req *roomv1.ListRoomGiftLeaderboardRequest) (*roomv1.ListRoomGiftLeaderboardResponse, error) {
|
||||||
|
return c.client.ListRoomGiftLeaderboard(ctx, req)
|
||||||
|
}
|
||||||
|
|
||||||
func (c *grpcRoomQueryClient) GetMyRoom(ctx context.Context, req *roomv1.GetMyRoomRequest) (*roomv1.GetMyRoomResponse, error) {
|
func (c *grpcRoomQueryClient) GetMyRoom(ctx context.Context, req *roomv1.GetMyRoomRequest) (*roomv1.GetMyRoomResponse, error) {
|
||||||
return c.client.GetMyRoom(ctx, req)
|
return c.client.GetMyRoom(ctx, req)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -71,11 +71,6 @@ type userLeaderboardRoom struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (h *Handler) listUserLeaderboards(writer http.ResponseWriter, request *http.Request) {
|
func (h *Handler) listUserLeaderboards(writer http.ResponseWriter, request *http.Request) {
|
||||||
if h.walletDB == nil {
|
|
||||||
httpkit.WriteError(writer, request, http.StatusServiceUnavailable, httpkit.CodeUpstreamError, "upstream service error")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
boardType := normalizeUserLeaderboardType(request.URL.Query().Get("board_type"))
|
boardType := normalizeUserLeaderboardType(request.URL.Query().Get("board_type"))
|
||||||
if boardType == "" {
|
if boardType == "" {
|
||||||
httpkit.WriteError(writer, request, http.StatusBadRequest, httpkit.CodeInvalidArgument, "invalid argument")
|
httpkit.WriteError(writer, request, http.StatusBadRequest, httpkit.CodeInvalidArgument, "invalid argument")
|
||||||
@ -99,6 +94,14 @@ func (h *Handler) listUserLeaderboards(writer http.ResponseWriter, request *http
|
|||||||
if pageSize > userLeaderboardMaxPageSize {
|
if pageSize > userLeaderboardMaxPageSize {
|
||||||
pageSize = userLeaderboardMaxPageSize
|
pageSize = userLeaderboardMaxPageSize
|
||||||
}
|
}
|
||||||
|
if boardType == leaderboardTypeRoom {
|
||||||
|
h.listRoomGiftLeaderboards(writer, request, period, page, pageSize)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if h.walletDB == nil {
|
||||||
|
httpkit.WriteError(writer, request, http.StatusServiceUnavailable, httpkit.CodeUpstreamError, "upstream service error")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
now := time.Now().UTC()
|
now := time.Now().UTC()
|
||||||
start, end := userLeaderboardPeriodWindow(period, now)
|
start, end := userLeaderboardPeriodWindow(period, now)
|
||||||
@ -147,6 +150,34 @@ func (h *Handler) listUserLeaderboards(writer http.ResponseWriter, request *http
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h *Handler) listRoomGiftLeaderboards(writer http.ResponseWriter, request *http.Request, period string, page int32, pageSize int32) {
|
||||||
|
if h.roomQueryClient == nil {
|
||||||
|
httpkit.WriteError(writer, request, http.StatusBadGateway, httpkit.CodeUpstreamError, "upstream service error")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
resp, err := h.roomQueryClient.ListRoomGiftLeaderboard(request.Context(), &roomv1.ListRoomGiftLeaderboardRequest{
|
||||||
|
Meta: httpkit.RoomMeta(request, "", ""),
|
||||||
|
Period: period,
|
||||||
|
Page: page,
|
||||||
|
PageSize: pageSize,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
httpkit.WriteRPCError(writer, request, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
httpkit.WriteOK(writer, request, userLeaderboardResponse{
|
||||||
|
Items: userLeaderboardItemsFromRoomGiftLeaderboard(resp.GetItems()),
|
||||||
|
Total: resp.GetTotal(),
|
||||||
|
Page: page,
|
||||||
|
PageSize: pageSize,
|
||||||
|
BoardType: leaderboardTypeRoom,
|
||||||
|
Period: resp.GetPeriod(),
|
||||||
|
StartAtMS: resp.GetStartAtMs(),
|
||||||
|
EndAtMS: resp.GetEndAtMs(),
|
||||||
|
ServerTimeMS: resp.GetServerTimeMs(),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func normalizeUserLeaderboardType(raw string) string {
|
func normalizeUserLeaderboardType(raw string) string {
|
||||||
switch strings.ToLower(strings.TrimSpace(raw)) {
|
switch strings.ToLower(strings.TrimSpace(raw)) {
|
||||||
case "", "sent", "send", "sender", "gift_sent", "user_sent":
|
case "", "sent", "send", "sender", "gift_sent", "user_sent":
|
||||||
@ -367,7 +398,8 @@ func userLeaderboardDimension(boardType string) (string, string) {
|
|||||||
|
|
||||||
func (h *Handler) enrichUserLeaderboardItems(request *http.Request, boardType string, items []userLeaderboardItem, myRank *userLeaderboardItem) error {
|
func (h *Handler) enrichUserLeaderboardItems(request *http.Request, boardType string, items []userLeaderboardItem, myRank *userLeaderboardItem) error {
|
||||||
if boardType == leaderboardTypeRoom {
|
if boardType == leaderboardTypeRoom {
|
||||||
return h.enrichRoomLeaderboardItems(request, items)
|
// room 榜已经由 room-service 的 zset + room_list_entries 返回卡片,不再读取完整 RoomSnapshot。
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
userIDs := make([]int64, 0, len(items)+1)
|
userIDs := make([]int64, 0, len(items)+1)
|
||||||
for _, item := range items {
|
for _, item := range items {
|
||||||
@ -393,32 +425,42 @@ func (h *Handler) enrichUserLeaderboardItems(request *http.Request, boardType st
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Handler) enrichRoomLeaderboardItems(request *http.Request, items []userLeaderboardItem) error {
|
func userLeaderboardItemsFromRoomGiftLeaderboard(items []*roomv1.RoomGiftLeaderboardItem) []userLeaderboardItem {
|
||||||
if h.roomQueryClient == nil || len(items) == 0 {
|
out := make([]userLeaderboardItem, 0, len(items))
|
||||||
return nil
|
for _, item := range items {
|
||||||
}
|
if item == nil {
|
||||||
seen := make(map[string]*userLeaderboardRoom, len(items))
|
|
||||||
for i := range items {
|
|
||||||
roomID := strings.TrimSpace(items[i].RoomID)
|
|
||||||
if roomID == "" {
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
room, ok := seen[roomID]
|
roomID := item.GetRoomId()
|
||||||
if !ok {
|
room := userLeaderboardRoomFromListItem(item.GetRoom())
|
||||||
resp, err := h.roomQueryClient.GetRoomSnapshot(request.Context(), &roomv1.GetRoomSnapshotRequest{
|
if room == nil {
|
||||||
Meta: httpkit.RoomMeta(request, roomID, ""),
|
room = &userLeaderboardRoom{RoomID: roomID}
|
||||||
RoomId: roomID,
|
|
||||||
ViewerUserId: auth.UserIDFromContext(request.Context()),
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
room = roomLeaderboardRoomFromSnapshot(roomID, resp.GetRoom())
|
|
||||||
seen[roomID] = room
|
|
||||||
}
|
}
|
||||||
items[i].Room = room
|
out = append(out, userLeaderboardItem{
|
||||||
|
Rank: item.GetRank(),
|
||||||
|
RoomID: roomID,
|
||||||
|
GiftValue: item.GetCoinSpent(),
|
||||||
|
Room: room,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
func userLeaderboardRoomFromListItem(room *roomv1.RoomListItem) *userLeaderboardRoom {
|
||||||
|
if room == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
roomID := room.GetRoomId()
|
||||||
|
if roomID == "" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return &userLeaderboardRoom{
|
||||||
|
RoomID: roomID,
|
||||||
|
RoomShortID: room.GetRoomShortId(),
|
||||||
|
Title: room.GetTitle(),
|
||||||
|
CoverURL: room.GetCoverUrl(),
|
||||||
|
RoomAvatar: room.GetCoverUrl(),
|
||||||
}
|
}
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func roomLeaderboardRoomFromSnapshot(roomID string, snapshot *roomv1.RoomSnapshot) *userLeaderboardRoom {
|
func roomLeaderboardRoomFromSnapshot(roomID string, snapshot *roomv1.RoomSnapshot) *userLeaderboardRoom {
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package activityapi
|
package activityapi
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -58,3 +59,67 @@ func TestRoomLeaderboardRoomFromSnapshotIncludesAvatar(t *testing.T) {
|
|||||||
t.Fatalf("room avatar fields mismatch: %+v", room)
|
t.Fatalf("room avatar fields mismatch: %+v", room)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestUserLeaderboardItemsFromRoomGiftLeaderboardUsesRoomCard(t *testing.T) {
|
||||||
|
items := userLeaderboardItemsFromRoomGiftLeaderboard([]*roomv1.RoomGiftLeaderboardItem{{
|
||||||
|
Rank: 1,
|
||||||
|
RoomId: "room_1",
|
||||||
|
CoinSpent: 900,
|
||||||
|
Room: &roomv1.RoomListItem{
|
||||||
|
RoomId: "room_1",
|
||||||
|
RoomShortId: "1001",
|
||||||
|
Title: "Music Room",
|
||||||
|
CoverUrl: "https://cdn.example/room.png",
|
||||||
|
},
|
||||||
|
}})
|
||||||
|
|
||||||
|
if len(items) != 1 || items[0].RoomID != "room_1" || items[0].GiftValue != 900 {
|
||||||
|
t.Fatalf("room leaderboard item mismatch: %+v", items)
|
||||||
|
}
|
||||||
|
if items[0].Room == nil || items[0].Room.RoomShortID != "1001" || items[0].Room.RoomAvatar != "https://cdn.example/room.png" {
|
||||||
|
t.Fatalf("room leaderboard card mismatch: %+v", items[0].Room)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type fakeUserLeaderboardRoomQueryClient struct {
|
||||||
|
snapshotResp *roomv1.GetRoomSnapshotResponse
|
||||||
|
snapshotErr error
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *fakeUserLeaderboardRoomQueryClient) ListRooms(context.Context, *roomv1.ListRoomsRequest) (*roomv1.ListRoomsResponse, error) {
|
||||||
|
return &roomv1.ListRoomsResponse{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *fakeUserLeaderboardRoomQueryClient) ListRoomFeeds(context.Context, *roomv1.ListRoomFeedsRequest) (*roomv1.ListRoomsResponse, error) {
|
||||||
|
return &roomv1.ListRoomsResponse{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *fakeUserLeaderboardRoomQueryClient) ListRoomGiftLeaderboard(context.Context, *roomv1.ListRoomGiftLeaderboardRequest) (*roomv1.ListRoomGiftLeaderboardResponse, error) {
|
||||||
|
return &roomv1.ListRoomGiftLeaderboardResponse{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *fakeUserLeaderboardRoomQueryClient) GetMyRoom(context.Context, *roomv1.GetMyRoomRequest) (*roomv1.GetMyRoomResponse, error) {
|
||||||
|
return &roomv1.GetMyRoomResponse{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *fakeUserLeaderboardRoomQueryClient) GetCurrentRoom(context.Context, *roomv1.GetCurrentRoomRequest) (*roomv1.GetCurrentRoomResponse, error) {
|
||||||
|
return &roomv1.GetCurrentRoomResponse{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *fakeUserLeaderboardRoomQueryClient) GetRoomSnapshot(context.Context, *roomv1.GetRoomSnapshotRequest) (*roomv1.GetRoomSnapshotResponse, error) {
|
||||||
|
if f.snapshotErr != nil {
|
||||||
|
return nil, f.snapshotErr
|
||||||
|
}
|
||||||
|
if f.snapshotResp != nil {
|
||||||
|
return f.snapshotResp, nil
|
||||||
|
}
|
||||||
|
return &roomv1.GetRoomSnapshotResponse{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *fakeUserLeaderboardRoomQueryClient) GetRoomTreasure(context.Context, *roomv1.GetRoomTreasureRequest) (*roomv1.GetRoomTreasureResponse, error) {
|
||||||
|
return &roomv1.GetRoomTreasureResponse{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *fakeUserLeaderboardRoomQueryClient) ListRoomOnlineUsers(context.Context, *roomv1.ListRoomOnlineUsersRequest) (*roomv1.ListRoomOnlineUsersResponse, error) {
|
||||||
|
return &roomv1.ListRoomOnlineUsersResponse{}, nil
|
||||||
|
}
|
||||||
|
|||||||
@ -721,6 +721,10 @@ func (f *fakeRoomQueryClient) ListRoomFeeds(_ context.Context, req *roomv1.ListR
|
|||||||
return &roomv1.ListRoomsResponse{}, nil
|
return &roomv1.ListRoomsResponse{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (f *fakeRoomQueryClient) ListRoomGiftLeaderboard(context.Context, *roomv1.ListRoomGiftLeaderboardRequest) (*roomv1.ListRoomGiftLeaderboardResponse, error) {
|
||||||
|
return &roomv1.ListRoomGiftLeaderboardResponse{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (f *fakeRoomQueryClient) GetMyRoom(_ context.Context, req *roomv1.GetMyRoomRequest) (*roomv1.GetMyRoomResponse, error) {
|
func (f *fakeRoomQueryClient) GetMyRoom(_ context.Context, req *roomv1.GetMyRoomRequest) (*roomv1.GetMyRoomResponse, error) {
|
||||||
f.lastMyRoom = req
|
f.lastMyRoom = req
|
||||||
if f.myRoomErr != nil {
|
if f.myRoomErr != nil {
|
||||||
|
|||||||
@ -204,6 +204,7 @@ func New(cfg config.Config) (*App, error) {
|
|||||||
MicPublishTimeout: cfg.MicPublishTimeout,
|
MicPublishTimeout: cfg.MicPublishTimeout,
|
||||||
RTCUserRemover: rtcUserRemover,
|
RTCUserRemover: rtcUserRemover,
|
||||||
RoomTreasureOpenScheduler: treasureOpenScheduler,
|
RoomTreasureOpenScheduler: treasureOpenScheduler,
|
||||||
|
RoomGiftLeaderboard: roomservice.NewRedisRoomGiftLeaderboardStore(redisClient),
|
||||||
}, directory, repository, integration.NewGRPCWalletClient(walletConn), roomPublisher, outboxPublisher, luckyGiftClient)
|
}, directory, repository, integration.NewGRPCWalletClient(walletConn), roomPublisher, outboxPublisher, luckyGiftClient)
|
||||||
if cfg.RocketMQ.TreasureOpen.Enabled {
|
if cfg.RocketMQ.TreasureOpen.Enabled {
|
||||||
treasureConsumer, err := rocketmqx.NewConsumer(rocketMQConsumerConfig(cfg.RocketMQ, cfg.RocketMQ.TreasureOpen.ConsumerGroup, cfg.RocketMQ.TreasureOpen.ConsumerMaxReconsumeTimes))
|
treasureConsumer, err := rocketmqx.NewConsumer(rocketMQConsumerConfig(cfg.RocketMQ, cfg.RocketMQ.TreasureOpen.ConsumerGroup, cfg.RocketMQ.TreasureOpen.ConsumerMaxReconsumeTimes))
|
||||||
|
|||||||
@ -221,6 +221,12 @@ func (s *Service) SendGift(ctx context.Context, req *roomv1.SendGiftRequest) (*r
|
|||||||
luckyGift: luckyGift,
|
luckyGift: luckyGift,
|
||||||
commandPayload: commandPayload,
|
commandPayload: commandPayload,
|
||||||
walletDebitMS: walletDebitMS,
|
walletDebitMS: walletDebitMS,
|
||||||
|
roomGiftLeaderboard: &RoomGiftLeaderboardIncrement{
|
||||||
|
AppCode: appcode.FromContext(ctx),
|
||||||
|
RoomID: current.RoomID,
|
||||||
|
CoinSpent: roomGiftLeaderboardCoinSpent(billing),
|
||||||
|
OccurredAtMS: now.UnixMilli(),
|
||||||
|
},
|
||||||
syncEvent: &tencentim.RoomEvent{
|
syncEvent: &tencentim.RoomEvent{
|
||||||
// 同步广播只选 GiftSent 主事件作为客户端房间系统消息,Heat/Rank 通过字段携带。
|
// 同步广播只选 GiftSent 主事件作为客户端房间系统消息,Heat/Rank 通过字段携带。
|
||||||
EventID: giftEvent.EventID,
|
EventID: giftEvent.EventID,
|
||||||
@ -258,6 +264,16 @@ func (s *Service) SendGift(ctx context.Context, req *roomv1.SendGiftRequest) (*r
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func roomGiftLeaderboardCoinSpent(billing *walletv1.DebitGiftResponse) int64 {
|
||||||
|
if billing == nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
if billing.GetCoinSpent() > 0 {
|
||||||
|
return billing.GetCoinSpent()
|
||||||
|
}
|
||||||
|
return billing.GetChargeAmount()
|
||||||
|
}
|
||||||
|
|
||||||
func (s *Service) shouldDrawLuckyGift(poolID string, giftTypeCode string) bool {
|
func (s *Service) shouldDrawLuckyGift(poolID string, giftTypeCode string) bool {
|
||||||
if s.luckyGift == nil {
|
if s.luckyGift == nil {
|
||||||
return false
|
return false
|
||||||
|
|||||||
@ -158,6 +158,8 @@ func (s *Service) mutateRoom(ctx context.Context, cmd command.Command, replayabl
|
|||||||
s.projectRoomListBestEffort(ctx, result.snapshot)
|
s.projectRoomListBestEffort(ctx, result.snapshot)
|
||||||
// 当前房间恢复读模型同样最终一致;权威校验仍以 Room Cell 快照为准。
|
// 当前房间恢复读模型同样最终一致;权威校验仍以 Room Cell 快照为准。
|
||||||
s.projectRoomPresenceBestEffort(ctx, result.snapshot)
|
s.projectRoomPresenceBestEffort(ctx, result.snapshot)
|
||||||
|
// 跨房间金币榜是 Redis 轻量读模型,不能影响已提交的房间状态和账务事实。
|
||||||
|
s.recordRoomGiftLeaderboardBestEffort(ctx, result.roomGiftLeaderboard)
|
||||||
projectionMS = elapsedMS(projectionStartedAt)
|
projectionMS = elapsedMS(projectionStartedAt)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -347,6 +347,14 @@ type RoomListQuery struct {
|
|||||||
NowMS int64
|
NowMS int64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RoomListEntriesByIDQuery 是榜单等定向补全房间卡片时的批量读取条件。
|
||||||
|
type RoomListEntriesByIDQuery struct {
|
||||||
|
// AppCode 限定 App 边界,避免一个榜单读到其他 App 的同名 room_id。
|
||||||
|
AppCode string
|
||||||
|
// RoomIDs 是榜单已经命中的房间集合;repository 必须按这些 key 精确读取。
|
||||||
|
RoomIDs []string
|
||||||
|
}
|
||||||
|
|
||||||
// RoomUserFeedEntry 是“访问过/好友/关注”房间流的读模型索引。
|
// RoomUserFeedEntry 是“访问过/好友/关注”房间流的读模型索引。
|
||||||
// 它只保存用户到房间的列表关系,不复制房间卡片字段,卡片内容仍来自 room_list_entries。
|
// 它只保存用户到房间的列表关系,不复制房间卡片字段,卡片内容仍来自 room_list_entries。
|
||||||
type RoomUserFeedEntry struct {
|
type RoomUserFeedEntry struct {
|
||||||
@ -492,6 +500,8 @@ type Repository interface {
|
|||||||
UpsertRoomListEntry(ctx context.Context, entry RoomListEntry) error
|
UpsertRoomListEntry(ctx context.Context, entry RoomListEntry) error
|
||||||
// ListRoomListEntries 按区域和 tab 查询房间列表,不访问 Room Cell 内存。
|
// ListRoomListEntries 按区域和 tab 查询房间列表,不访问 Room Cell 内存。
|
||||||
ListRoomListEntries(ctx context.Context, query RoomListQuery) ([]RoomListEntry, error)
|
ListRoomListEntries(ctx context.Context, query RoomListQuery) ([]RoomListEntry, error)
|
||||||
|
// ListRoomListEntriesByIDs 按房间 ID 精确读取列表卡片,用于榜单展示补全。
|
||||||
|
ListRoomListEntriesByIDs(ctx context.Context, query RoomListEntriesByIDQuery) (map[string]RoomListEntry, error)
|
||||||
// UpsertRoomUserFeedEntry 写入用户房间关系流读模型;失败不应影响房间主链路。
|
// UpsertRoomUserFeedEntry 写入用户房间关系流读模型;失败不应影响房间主链路。
|
||||||
UpsertRoomUserFeedEntry(ctx context.Context, entry RoomUserFeedEntry) error
|
UpsertRoomUserFeedEntry(ctx context.Context, entry RoomUserFeedEntry) error
|
||||||
// ListRoomUserFeedEntries 按用户关系流读取房间卡片,不访问 Room Cell 内存集合。
|
// ListRoomUserFeedEntries 按用户关系流读取房间卡片,不访问 Room Cell 内存集合。
|
||||||
|
|||||||
@ -0,0 +1,290 @@
|
|||||||
|
package service
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"log/slog"
|
||||||
|
"math"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/redis/go-redis/v9"
|
||||||
|
roomv1 "hyapp.local/api/proto/room/v1"
|
||||||
|
"hyapp/pkg/appcode"
|
||||||
|
"hyapp/pkg/logx"
|
||||||
|
"hyapp/pkg/xerr"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
roomGiftLeaderboardPeriodToday = "today"
|
||||||
|
roomGiftLeaderboardPeriodWeek = "week"
|
||||||
|
roomGiftLeaderboardPeriodMonth = "month"
|
||||||
|
|
||||||
|
defaultRoomGiftLeaderboardPageSize = 20
|
||||||
|
maxRoomGiftLeaderboardPageSize = 100
|
||||||
|
)
|
||||||
|
|
||||||
|
// RoomGiftLeaderboardStore 是房间金币榜的轻量读模型边界;生产实现使用 Redis zset。
|
||||||
|
type RoomGiftLeaderboardStore interface {
|
||||||
|
IncrementRoomGift(ctx context.Context, input RoomGiftLeaderboardIncrement) error
|
||||||
|
ListRoomGiftLeaderboard(ctx context.Context, query RoomGiftLeaderboardQuery) (RoomGiftLeaderboardPage, error)
|
||||||
|
}
|
||||||
|
|
||||||
|
type RoomGiftLeaderboardIncrement struct {
|
||||||
|
AppCode string
|
||||||
|
RoomID string
|
||||||
|
CoinSpent int64
|
||||||
|
OccurredAtMS int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type RoomGiftLeaderboardQuery struct {
|
||||||
|
AppCode string
|
||||||
|
Period string
|
||||||
|
Page int
|
||||||
|
PageSize int
|
||||||
|
NowMS int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type RoomGiftLeaderboardPage struct {
|
||||||
|
Items []RoomGiftLeaderboardEntry
|
||||||
|
Total int64
|
||||||
|
Period string
|
||||||
|
StartAtMS int64
|
||||||
|
EndAtMS int64
|
||||||
|
ServerTimeMS int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type RoomGiftLeaderboardEntry struct {
|
||||||
|
Rank int64
|
||||||
|
RoomID string
|
||||||
|
CoinSpent int64
|
||||||
|
}
|
||||||
|
|
||||||
|
// RedisRoomGiftLeaderboardStore 只在 zset 中保存 room_id -> 周期金币消耗分。
|
||||||
|
type RedisRoomGiftLeaderboardStore struct {
|
||||||
|
client *redis.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewRedisRoomGiftLeaderboardStore(client *redis.Client) *RedisRoomGiftLeaderboardStore {
|
||||||
|
return &RedisRoomGiftLeaderboardStore{client: client}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *RedisRoomGiftLeaderboardStore) IncrementRoomGift(ctx context.Context, input RoomGiftLeaderboardIncrement) error {
|
||||||
|
if s == nil || s.client == nil {
|
||||||
|
return xerr.New(xerr.Unavailable, "room gift leaderboard store is not configured")
|
||||||
|
}
|
||||||
|
app := appcode.Normalize(input.AppCode)
|
||||||
|
roomID := strings.TrimSpace(input.RoomID)
|
||||||
|
if roomID == "" || input.CoinSpent <= 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
occurredAt := time.UnixMilli(input.OccurredAtMS).UTC()
|
||||||
|
if input.OccurredAtMS <= 0 {
|
||||||
|
occurredAt = time.Now().UTC()
|
||||||
|
}
|
||||||
|
|
||||||
|
pipe := s.client.Pipeline()
|
||||||
|
for _, period := range []string{roomGiftLeaderboardPeriodToday, roomGiftLeaderboardPeriodWeek, roomGiftLeaderboardPeriodMonth} {
|
||||||
|
start, end := roomGiftLeaderboardWindow(period, occurredAt)
|
||||||
|
key := roomGiftLeaderboardKey(app, period, start)
|
||||||
|
pipe.ZIncrBy(ctx, key, float64(input.CoinSpent), roomID)
|
||||||
|
// Redis 榜单是可重建读模型,TTL 只需要覆盖当前周期和排查窗口。
|
||||||
|
pipe.Expire(ctx, key, roomGiftLeaderboardTTL(period, start, end))
|
||||||
|
}
|
||||||
|
_, err := pipe.Exec(ctx)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *RedisRoomGiftLeaderboardStore) ListRoomGiftLeaderboard(ctx context.Context, query RoomGiftLeaderboardQuery) (RoomGiftLeaderboardPage, error) {
|
||||||
|
if s == nil || s.client == nil {
|
||||||
|
return RoomGiftLeaderboardPage{}, xerr.New(xerr.Unavailable, "room gift leaderboard store is not configured")
|
||||||
|
}
|
||||||
|
query = normalizeRoomGiftLeaderboardQuery(query)
|
||||||
|
now := time.UnixMilli(query.NowMS).UTC()
|
||||||
|
start, end := roomGiftLeaderboardWindow(query.Period, now)
|
||||||
|
key := roomGiftLeaderboardKey(appcode.Normalize(query.AppCode), query.Period, start)
|
||||||
|
offset := int64((query.Page - 1) * query.PageSize)
|
||||||
|
stop := offset + int64(query.PageSize) - 1
|
||||||
|
|
||||||
|
total, err := s.client.ZCard(ctx, key).Result()
|
||||||
|
if err != nil {
|
||||||
|
return RoomGiftLeaderboardPage{}, err
|
||||||
|
}
|
||||||
|
rows, err := s.client.ZRevRangeWithScores(ctx, key, offset, stop).Result()
|
||||||
|
if err != nil {
|
||||||
|
return RoomGiftLeaderboardPage{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
items := make([]RoomGiftLeaderboardEntry, 0, len(rows))
|
||||||
|
for i, row := range rows {
|
||||||
|
roomID, ok := row.Member.(string)
|
||||||
|
if !ok || strings.TrimSpace(roomID) == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
items = append(items, RoomGiftLeaderboardEntry{
|
||||||
|
Rank: offset + int64(i) + 1,
|
||||||
|
RoomID: roomID,
|
||||||
|
CoinSpent: int64(math.Round(row.Score)),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return RoomGiftLeaderboardPage{
|
||||||
|
Items: items,
|
||||||
|
Total: total,
|
||||||
|
Period: query.Period,
|
||||||
|
StartAtMS: start.UnixMilli(),
|
||||||
|
EndAtMS: end.UnixMilli(),
|
||||||
|
ServerTimeMS: now.UnixMilli(),
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Service) ListRoomGiftLeaderboard(ctx context.Context, req *roomv1.ListRoomGiftLeaderboardRequest) (*roomv1.ListRoomGiftLeaderboardResponse, error) {
|
||||||
|
ctx = appcode.WithContext(ctx, req.GetMeta().GetAppCode())
|
||||||
|
if s.roomGiftLeaderboard == nil {
|
||||||
|
return nil, xerr.New(xerr.Unavailable, "room gift leaderboard store is not configured")
|
||||||
|
}
|
||||||
|
period := normalizeRoomGiftLeaderboardPeriod(req.GetPeriod())
|
||||||
|
if period == "" {
|
||||||
|
return nil, xerr.New(xerr.InvalidArgument, "period is invalid")
|
||||||
|
}
|
||||||
|
page := int(req.GetPage())
|
||||||
|
if page <= 0 {
|
||||||
|
page = 1
|
||||||
|
}
|
||||||
|
pageSize := int(req.GetPageSize())
|
||||||
|
if pageSize <= 0 {
|
||||||
|
pageSize = defaultRoomGiftLeaderboardPageSize
|
||||||
|
}
|
||||||
|
if pageSize > maxRoomGiftLeaderboardPageSize {
|
||||||
|
pageSize = maxRoomGiftLeaderboardPageSize
|
||||||
|
}
|
||||||
|
|
||||||
|
result, err := s.roomGiftLeaderboard.ListRoomGiftLeaderboard(ctx, RoomGiftLeaderboardQuery{
|
||||||
|
AppCode: appcode.FromContext(ctx),
|
||||||
|
Period: period,
|
||||||
|
Page: page,
|
||||||
|
PageSize: pageSize,
|
||||||
|
NowMS: s.clock.Now().UnixMilli(),
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
roomIDs := make([]string, 0, len(result.Items))
|
||||||
|
for _, item := range result.Items {
|
||||||
|
roomIDs = append(roomIDs, item.RoomID)
|
||||||
|
}
|
||||||
|
cards, err := s.repository.ListRoomListEntriesByIDs(ctx, RoomListEntriesByIDQuery{
|
||||||
|
AppCode: appcode.FromContext(ctx),
|
||||||
|
RoomIDs: roomIDs,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
items := make([]*roomv1.RoomGiftLeaderboardItem, 0, len(result.Items))
|
||||||
|
for _, item := range result.Items {
|
||||||
|
protoItem := &roomv1.RoomGiftLeaderboardItem{
|
||||||
|
Rank: item.Rank,
|
||||||
|
RoomId: item.RoomID,
|
||||||
|
CoinSpent: item.CoinSpent,
|
||||||
|
}
|
||||||
|
if card, ok := cards[item.RoomID]; ok {
|
||||||
|
protoItem.Room = roomListItemToProto(card)
|
||||||
|
}
|
||||||
|
items = append(items, protoItem)
|
||||||
|
}
|
||||||
|
return &roomv1.ListRoomGiftLeaderboardResponse{
|
||||||
|
Items: items,
|
||||||
|
Total: result.Total,
|
||||||
|
Period: result.Period,
|
||||||
|
StartAtMs: result.StartAtMS,
|
||||||
|
EndAtMs: result.EndAtMS,
|
||||||
|
ServerTimeMs: result.ServerTimeMS,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Service) recordRoomGiftLeaderboardBestEffort(ctx context.Context, input *RoomGiftLeaderboardIncrement) {
|
||||||
|
if s == nil || s.roomGiftLeaderboard == nil || input == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err := s.roomGiftLeaderboard.IncrementRoomGift(ctx, *input); err != nil {
|
||||||
|
// 榜单 zset 是可重建读模型,失败不能回滚已提交房间命令和账务事实。
|
||||||
|
logx.Warn(ctx, "room_gift_leaderboard_update_failed", slog.String("room_id", input.RoomID), slog.Int64("coin_spent", input.CoinSpent), slog.String("error", err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func normalizeRoomGiftLeaderboardQuery(query RoomGiftLeaderboardQuery) RoomGiftLeaderboardQuery {
|
||||||
|
query.AppCode = appcode.Normalize(query.AppCode)
|
||||||
|
query.Period = normalizeRoomGiftLeaderboardPeriod(query.Period)
|
||||||
|
if query.Period == "" {
|
||||||
|
query.Period = roomGiftLeaderboardPeriodToday
|
||||||
|
}
|
||||||
|
if query.Page <= 0 {
|
||||||
|
query.Page = 1
|
||||||
|
}
|
||||||
|
if query.PageSize <= 0 {
|
||||||
|
query.PageSize = defaultRoomGiftLeaderboardPageSize
|
||||||
|
}
|
||||||
|
if query.PageSize > maxRoomGiftLeaderboardPageSize {
|
||||||
|
query.PageSize = maxRoomGiftLeaderboardPageSize
|
||||||
|
}
|
||||||
|
if query.NowMS <= 0 {
|
||||||
|
query.NowMS = time.Now().UTC().UnixMilli()
|
||||||
|
}
|
||||||
|
return query
|
||||||
|
}
|
||||||
|
|
||||||
|
func normalizeRoomGiftLeaderboardPeriod(raw string) string {
|
||||||
|
switch strings.ToLower(strings.TrimSpace(raw)) {
|
||||||
|
case "", roomGiftLeaderboardPeriodToday, "day", "daily":
|
||||||
|
return roomGiftLeaderboardPeriodToday
|
||||||
|
case roomGiftLeaderboardPeriodWeek, "weekly":
|
||||||
|
return roomGiftLeaderboardPeriodWeek
|
||||||
|
case roomGiftLeaderboardPeriodMonth, "monthly":
|
||||||
|
return roomGiftLeaderboardPeriodMonth
|
||||||
|
default:
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func roomGiftLeaderboardWindow(period string, now time.Time) (time.Time, time.Time) {
|
||||||
|
dayStart := time.Date(now.UTC().Year(), now.UTC().Month(), now.UTC().Day(), 0, 0, 0, 0, time.UTC)
|
||||||
|
switch period {
|
||||||
|
case roomGiftLeaderboardPeriodWeek:
|
||||||
|
weekday := int(dayStart.Weekday())
|
||||||
|
if weekday == 0 {
|
||||||
|
weekday = 7
|
||||||
|
}
|
||||||
|
start := dayStart.AddDate(0, 0, 1-weekday)
|
||||||
|
return start, start.AddDate(0, 0, 7)
|
||||||
|
case roomGiftLeaderboardPeriodMonth:
|
||||||
|
start := time.Date(dayStart.Year(), dayStart.Month(), 1, 0, 0, 0, 0, time.UTC)
|
||||||
|
return start, start.AddDate(0, 1, 0)
|
||||||
|
default:
|
||||||
|
return dayStart, dayStart.AddDate(0, 0, 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func roomGiftLeaderboardKey(app string, period string, start time.Time) string {
|
||||||
|
switch period {
|
||||||
|
case roomGiftLeaderboardPeriodWeek:
|
||||||
|
year, week := start.ISOWeek()
|
||||||
|
return fmt.Sprintf("room:gift_leaderboard:%s:week:%04d%02d", appcode.Normalize(app), year, week)
|
||||||
|
case roomGiftLeaderboardPeriodMonth:
|
||||||
|
return fmt.Sprintf("room:gift_leaderboard:%s:month:%04d%02d", appcode.Normalize(app), start.Year(), int(start.Month()))
|
||||||
|
default:
|
||||||
|
return fmt.Sprintf("room:gift_leaderboard:%s:day:%s", appcode.Normalize(app), start.Format("20060102"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func roomGiftLeaderboardTTL(period string, start time.Time, end time.Time) time.Duration {
|
||||||
|
switch period {
|
||||||
|
case roomGiftLeaderboardPeriodMonth:
|
||||||
|
return end.Sub(start) + 35*24*time.Hour
|
||||||
|
case roomGiftLeaderboardPeriodWeek:
|
||||||
|
return end.Sub(start) + 21*24*time.Hour
|
||||||
|
default:
|
||||||
|
return end.Sub(start) + 7*24*time.Hour
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -34,6 +34,8 @@ type Config struct {
|
|||||||
RTCUserRemover integration.RTCUserRemover
|
RTCUserRemover integration.RTCUserRemover
|
||||||
// RoomTreasureOpenScheduler 把倒计时开箱唤醒交给外部延迟消息,避免只靠已加载 Cell 扫描。
|
// RoomTreasureOpenScheduler 把倒计时开箱唤醒交给外部延迟消息,避免只靠已加载 Cell 扫描。
|
||||||
RoomTreasureOpenScheduler integration.RoomTreasureOpenScheduler
|
RoomTreasureOpenScheduler integration.RoomTreasureOpenScheduler
|
||||||
|
// RoomGiftLeaderboard 是跨房间金币榜读模型,SendGift 提交后 best-effort 写入。
|
||||||
|
RoomGiftLeaderboard RoomGiftLeaderboardStore
|
||||||
// Clock 允许测试注入稳定时间,生产默认使用系统时钟。
|
// Clock 允许测试注入稳定时间,生产默认使用系统时钟。
|
||||||
Clock clock.Clock
|
Clock clock.Clock
|
||||||
}
|
}
|
||||||
@ -68,6 +70,8 @@ type Service struct {
|
|||||||
outboxPublisher integration.OutboxPublisher
|
outboxPublisher integration.OutboxPublisher
|
||||||
// roomTreasureOpenScheduler 在 countdown outbox 投递成功后安排 open_at_ms 唤醒。
|
// roomTreasureOpenScheduler 在 countdown outbox 投递成功后安排 open_at_ms 唤醒。
|
||||||
roomTreasureOpenScheduler integration.RoomTreasureOpenScheduler
|
roomTreasureOpenScheduler integration.RoomTreasureOpenScheduler
|
||||||
|
// roomGiftLeaderboard 只保存房间维度金币消耗 zset,不承载 Room Cell 核心状态。
|
||||||
|
roomGiftLeaderboard RoomGiftLeaderboardStore
|
||||||
// rtcUserRemover 在 Room Cell 提交驱逐后同步移除实时音频房连接。
|
// rtcUserRemover 在 Room Cell 提交驱逐后同步移除实时音频房连接。
|
||||||
rtcUserRemover integration.RTCUserRemover
|
rtcUserRemover integration.RTCUserRemover
|
||||||
// draining 表示当前节点正在下线,只允许已经进入执行链路的命令收尾。
|
// draining 表示当前节点正在下线,只允许已经进入执行链路的命令收尾。
|
||||||
@ -118,6 +122,8 @@ type mutationResult struct {
|
|||||||
closeInfo *RoomCloseInfo
|
closeInfo *RoomCloseInfo
|
||||||
// walletDebitMS 记录 SendGift 同步扣费耗时;非钱包命令保持 0。
|
// walletDebitMS 记录 SendGift 同步扣费耗时;非钱包命令保持 0。
|
||||||
walletDebitMS int64
|
walletDebitMS int64
|
||||||
|
// roomGiftLeaderboard 是 SendGift 成功后写入跨房间金币榜的轻量增量。
|
||||||
|
roomGiftLeaderboard *RoomGiftLeaderboardIncrement
|
||||||
}
|
}
|
||||||
|
|
||||||
// New 初始化 room-service 领域服务。
|
// New 初始化 room-service 领域服务。
|
||||||
@ -172,6 +178,7 @@ func New(cfg Config, directory router.Directory, repository Repository, wallet i
|
|||||||
syncPublisher: syncPublisher,
|
syncPublisher: syncPublisher,
|
||||||
outboxPublisher: outboxPublisher,
|
outboxPublisher: outboxPublisher,
|
||||||
roomTreasureOpenScheduler: cfg.RoomTreasureOpenScheduler,
|
roomTreasureOpenScheduler: cfg.RoomTreasureOpenScheduler,
|
||||||
|
roomGiftLeaderboard: cfg.RoomGiftLeaderboard,
|
||||||
rtcUserRemover: cfg.RTCUserRemover,
|
rtcUserRemover: cfg.RTCUserRemover,
|
||||||
cells: make(map[string]*cell.RoomCell),
|
cells: make(map[string]*cell.RoomCell),
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1323,6 +1323,79 @@ func (r *Repository) ListRoomListEntries(ctx context.Context, query roomservice.
|
|||||||
return entries, nil
|
return entries, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ListRoomListEntriesByIDs 按榜单已命中的 room_id 批量读取列表卡片。
|
||||||
|
func (r *Repository) ListRoomListEntriesByIDs(ctx context.Context, query roomservice.RoomListEntriesByIDQuery) (map[string]roomservice.RoomListEntry, error) {
|
||||||
|
appCode := normalizedRecordAppCode(ctx, query.AppCode)
|
||||||
|
roomIDs := uniqueRoomListIDs(query.RoomIDs)
|
||||||
|
result := make(map[string]roomservice.RoomListEntry, len(roomIDs))
|
||||||
|
if len(roomIDs) == 0 {
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
placeholders := strings.TrimRight(strings.Repeat("?,", len(roomIDs)), ",")
|
||||||
|
args := make([]any, 0, len(roomIDs)+1)
|
||||||
|
args = append(args, appCode)
|
||||||
|
for _, roomID := range roomIDs {
|
||||||
|
args = append(args, roomID)
|
||||||
|
}
|
||||||
|
rows, err := r.db.QueryContext(ctx, `
|
||||||
|
SELECT app_code, room_id, room_short_id, visible_region_id, owner_user_id, title, cover_url, mode, status, locked,
|
||||||
|
heat, online_count, seat_count, occupied_seat_count, sort_score, created_at_ms, updated_at_ms
|
||||||
|
FROM room_list_entries
|
||||||
|
WHERE app_code = ? AND room_id IN (`+placeholders+`)`, args...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
|
||||||
|
for rows.Next() {
|
||||||
|
var entry roomservice.RoomListEntry
|
||||||
|
if err := rows.Scan(
|
||||||
|
&entry.AppCode,
|
||||||
|
&entry.RoomID,
|
||||||
|
&entry.RoomShortID,
|
||||||
|
&entry.VisibleRegionID,
|
||||||
|
&entry.OwnerUserID,
|
||||||
|
&entry.Title,
|
||||||
|
&entry.CoverURL,
|
||||||
|
&entry.Mode,
|
||||||
|
&entry.Status,
|
||||||
|
&entry.Locked,
|
||||||
|
&entry.Heat,
|
||||||
|
&entry.OnlineCount,
|
||||||
|
&entry.SeatCount,
|
||||||
|
&entry.OccupiedSeatCount,
|
||||||
|
&entry.SortScore,
|
||||||
|
&entry.CreatedAtMS,
|
||||||
|
&entry.UpdatedAtMS,
|
||||||
|
); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
result[entry.RoomID] = entry
|
||||||
|
}
|
||||||
|
if err := rows.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func uniqueRoomListIDs(values []string) []string {
|
||||||
|
seen := make(map[string]struct{}, len(values))
|
||||||
|
out := make([]string, 0, len(values))
|
||||||
|
for _, value := range values {
|
||||||
|
value = strings.TrimSpace(value)
|
||||||
|
if value == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if _, ok := seen[value]; ok {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
seen[value] = struct{}{}
|
||||||
|
out = append(out, value)
|
||||||
|
}
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
// UpsertRoomUserFeedEntry 写入用户房间关系流索引。
|
// UpsertRoomUserFeedEntry 写入用户房间关系流索引。
|
||||||
func (r *Repository) UpsertRoomUserFeedEntry(ctx context.Context, entry roomservice.RoomUserFeedEntry) error {
|
func (r *Repository) UpsertRoomUserFeedEntry(ctx context.Context, entry roomservice.RoomUserFeedEntry) error {
|
||||||
// feed 只保存用户到房间的索引;房间卡片字段仍以 room_list_entries 为准,避免复制不一致。
|
// feed 只保存用户到房间的索引;房间卡片字段仍以 room_list_entries 为准,避免复制不一致。
|
||||||
|
|||||||
@ -430,6 +430,13 @@ func (s *Server) ListRoomFeeds(ctx context.Context, req *roomv1.ListRoomFeedsReq
|
|||||||
return mapServiceResult(s.svc.ListRoomFeeds(ctx, req))
|
return mapServiceResult(s.svc.ListRoomFeeds(ctx, req))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ListRoomGiftLeaderboard 代理到 Redis zset 房间金币榜读模型。
|
||||||
|
func (s *Server) ListRoomGiftLeaderboard(ctx context.Context, req *roomv1.ListRoomGiftLeaderboardRequest) (*roomv1.ListRoomGiftLeaderboardResponse, error) {
|
||||||
|
// 房间榜只读 room-service 维护的金币 zset,并用 room_list_entries 批量补卡片。
|
||||||
|
ctx = contextWithMetaApp(ctx, req.GetMeta())
|
||||||
|
return mapServiceResult(s.svc.ListRoomGiftLeaderboard(ctx, req))
|
||||||
|
}
|
||||||
|
|
||||||
// GetMyRoom 代理到 Mine 顶部“我的房间”权威查询。
|
// GetMyRoom 代理到 Mine 顶部“我的房间”权威查询。
|
||||||
func (s *Server) GetMyRoom(ctx context.Context, req *roomv1.GetMyRoomRequest) (*roomv1.GetMyRoomResponse, error) {
|
func (s *Server) GetMyRoom(ctx context.Context, req *roomv1.GetMyRoomRequest) (*roomv1.GetMyRoomResponse, error) {
|
||||||
// 我的房间查询直接读取 rooms 元数据,并用快照补齐实时卡片字段,不依赖发现页投影。
|
// 我的房间查询直接读取 rooms 元数据,并用快照补齐实时卡片字段,不依赖发现页投影。
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user