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
90 lines
2.0 KiB
Protocol Buffer
90 lines
2.0 KiB
Protocol Buffer
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);
|
||
}
|