youtu_grpc/app/ranking_service/ranking_service.proto
xiabin b20aae0d97
All checks were successful
/ build-services (app/ecpm_service/Dockerfile, ecpm, ecpm) (push) Successful in 36s
/ build-services (app/auth_service/Dockerfile, auth, auth) (push) Successful in 38s
/ build-services (app/user_service/Dockerfile, user, user) (push) Successful in 38s
/ build-services (app/ranking_service/Dockerfile, ranking, ranking) (push) Successful in 37s
/ start-services (push) Successful in 4s
修改结算排名逻辑
2025-02-19 17:01:16 +08:00

90 lines
2.0 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

syntax = "proto3";
package ranking_service;
option go_package = "./ranking";
message Request {
string ping = 1;
}
message Response {
string pong = 1;
}
// 定义SetUserGameScoreRequest消息类型
message SetUserGameScoreRequest {
uint32 score = 1; // 对应json的"score"
uint32 type = 2; // 对应json的"type", 带默认值0
uint64 userId = 3; // 用户id
uint32 appId = 4; // 小程序id
}
// 定义RankingData消息类型
message RankingList {
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; // 是否自我判断
}
message GetRankingListResponse {
repeated RankingList rankingData = 1;
}
message GetRankingListRequest {
uint32 appId = 1;
uint32 type = 2;
uint64 userId = 3;
}
// 定义Base响应结构
message BaseResult {
int32 error_code = 1; // 错误码
string error_msg = 2; // 错误信息
}
message AddUserGameScoreRequest{
uint32 type = 1;
uint32 appId = 2;
uint64 userId = 3;
uint32 score = 4;
}
message RemoveRankingRequest{
uint32 appId = 1;
uint32 type = 2;
}
message AtomicGetHigherUserRequest{
uint32 appId = 1;
uint32 score = 2;
uint32 type = 3;
uint64 userId = 4;
}
message SettlementResponse{
RankingList higher = 1;
RankingList mineMax = 2;
RankingList mine = 3;
}
service ranking_service {
rpc Ping(Request) returns(Response);
rpc SetUserGameScore (SetUserGameScoreRequest) returns (BaseResult);
rpc GetRankingList (GetRankingListRequest) returns (GetRankingListResponse);
rpc AddUserGameScore(AddUserGameScoreRequest) returns(BaseResult);
rpc RemoveRanking(RemoveRankingRequest) returns(BaseResult);
rpc AtomicGetHigherUser(AtomicGetHigherUserRequest) returns(RankingList);
rpc Settlement(AtomicGetHigherUserRequest) returns(SettlementResponse);
}