youtu_grpc/app/ranking_service/ranking_service.proto

90 lines
2.0 KiB
Protocol Buffer
Raw Normal View History

2025-02-05 18:45:49 +08:00
syntax = "proto3";
2025-02-14 17:36:17 +08:00
package ranking_service;
2025-02-14 10:30:15 +08:00
option go_package = "./ranking";
2025-02-05 18:45:49 +08:00
message Request {
string ping = 1;
}
message Response {
string pong = 1;
}
// 定义SetUserGameScoreRequest消息类型
message SetUserGameScoreRequest {
uint32 score = 1; // 对应json的"score"
2025-02-07 17:01:48 +08:00
uint32 type = 2; // 对应json的"type", 带默认值0
uint64 userId = 3; // 用户id
uint32 appId = 4; // 小程序id
2025-02-05 18:45:49 +08:00
}
// 定义RankingData消息类型
2025-02-07 17:01:48 +08:00
message RankingList {
2025-02-05 18:45:49 +08:00
string nickname = 1; // 昵称对应db:"nickname"
string avatar = 2; // 头像对应db:"avatar"
uint32 score = 3; // 得分对应db:"score"
uint64 user_id = 4; // 用户ID对应db:"app_user_id"
uint32 rank = 5; // 排名对应db:"rank"
bool self = 6; // 是否自我判断
}
2025-02-07 17:01:48 +08:00
message GetRankingListResponse {
repeated RankingList rankingData = 1;
}
message GetRankingListRequest {
uint32 appId = 1;
uint32 type = 2;
uint64 userId = 3;
2025-02-05 18:45:49 +08:00
}
// 定义Base响应结构
message BaseResult {
int32 error_code = 1; // 错误码
string error_msg = 2; // 错误信息
}
2025-02-17 16:44:44 +08:00
message AddUserGameScoreRequest{
uint32 type = 1;
uint32 appId = 2;
2025-02-18 09:56:10 +08:00
uint64 userId = 3;
2025-02-17 16:44:44 +08:00
uint32 score = 4;
}
message RemoveRankingRequest{
uint32 appId = 1;
uint32 type = 2;
}
2025-02-17 17:51:39 +08:00
message AtomicGetHigherUserRequest{
uint32 appId = 1;
uint32 score = 2;
uint32 type = 3;
2025-02-18 19:24:17 +08:00
uint64 userId = 4;
2025-02-17 17:51:39 +08:00
}
2025-02-19 17:01:16 +08:00
message SettlementResponse{
RankingList higher = 1;
RankingList mineMax = 2;
RankingList mine = 3;
}
2025-02-17 17:51:39 +08:00
2025-02-14 17:36:17 +08:00
service ranking_service {
2025-02-05 18:45:49 +08:00
rpc Ping(Request) returns(Response);
rpc SetUserGameScore (SetUserGameScoreRequest) returns (BaseResult);
2025-02-07 17:01:48 +08:00
rpc GetRankingList (GetRankingListRequest) returns (GetRankingListResponse);
2025-02-17 16:44:44 +08:00
rpc AddUserGameScore(AddUserGameScoreRequest) returns(BaseResult);
rpc RemoveRanking(RemoveRankingRequest) returns(BaseResult);
2025-02-17 17:51:39 +08:00
2025-02-19 17:01:16 +08:00
rpc AtomicGetHigherUser(AtomicGetHigherUserRequest) returns(RankingList);
rpc Settlement(AtomicGetHigherUserRequest) returns(SettlementResponse);
2025-02-05 18:45:49 +08:00
}