syntax = "proto3"; package pb; option go_package = "./pb"; // model message User { int64 id = 1; string username = 2; // platform string platform = 3; string pUid = 4; string pUname = 5; string pAvatar = 6; int32 nobilityLevel = 7; // 贵族等级 int64 integral = 8; // 用户积分(充值) } message Empty {} // req message PlatformUserReq { string platform = 1; string pUid = 2; } message PlatformUserResp { User user = 1; } // 用户ID请求 message UserIdReq { int64 userId = 1; } // 用户ID回复 message UserIdResp { int64 userId = 1; } // 变更积分请求 message ChangeIntegralReq { int64 userId = 1; // 系统用户ID int64 change = 2; // 变更数量 } // 变更积分回复 message ChangeIntegralResp { int64 userId = 1; // 系统用户ID int64 change = 2; // 本次变更积分数量,负数为扣减 int64 integral = 3; // 用户当前总积分 } // 用户积分回复 message UserIntegralResp { int64 userId = 1; // 用户ID int64 integral = 2; // 用户当前总积分 } // 用户打卡(签到)回复 message UserCheckInResp { bool success = 1; // 成功与否 string msg = 2; // 消息 int64 integralChange = 3; // 积分变动量 int64 integral = 4; // 变动后的积分量 bool isCritical = 5; // 是否发生了暴击奖励 } // 用户送礼请求 message UserSendGiftReq { string platform = 1; // 平台 int64 userId = 2; // 系统用户ID string pUid = 3; // 平台用户ID string roomId = 4; // 直播间ID int64 giftId = 5; // 礼物ID string giftName = 6; // 礼物名 int64 num = 7; // 赠送数量 int64 price = 8; // 礼物单价(系统不存在对应礼物数据时使用) bool isPaid = 9; // 是否收费礼物 } // 用户送礼回复 message UserSendGiftResp { ChangeIntegralResp integral = 10; // 积分变动 } // 用户购买舰长请求 message UserBuyNobilityReq { string platform = 1; // 平台 string pUid = 2; // 平台用户ID string roomId = 3; // 直播间ID int64 giftId = 4; // 礼物ID string giftName = 5; // 礼物名 int64 num = 6; // 赠送数量 int64 price = 7; // 礼物单价(系统不存在对应礼物数据时使用) int64 level = 8; // 贵族等级 int64 startTime = 9; // 开始时间 int64 endTime = 10; // 结束时间 } // 用户购买舰长回复 message UserBuyNobilityResp { User user = 1; // 系统用户信息 ChangeIntegralResp integral = 10; // 积分变动 } // 通知-PvP杀兵营(人) statistics.pvp.kill message StatPvPKillReq { int64 uid = 1; // 用户ID int64 targetUid = 2; // 目标用户 bool isGeneral = 3; // targetUid是否名将 } // 通知-PvP一血 statistics.pvp.first message StatPvPFirstBloodReq { int64 uid = 1; // 用户ID int32 type = 2; // 1-拿到一血 2-被破一血 } // 通知-PvP战报 statistics.pvp.report message StatPvPReportReq { message Item { int64 uid = 1; // 用户ID string uname = 2; // 用户名 int64 damage = 3; // 伤害量 int64 deDamage = 4; // 承受伤害 int64 killUnit = 5; // 击杀单位数量 int64 deKillUnit = 6; // 被杀单位数量 } message General { int64 uid = 1; // 名将UID string uname = 2; // 名将用户名 } int32 winCamp = 1; // 获胜阵营 1-蓝 2-红 General general = 2; repeated Item winItems = 10; // 获胜方数据 repeated Item lostItems = 11; // 战败方数据 } // 通知-PvP战报 回复 message StatPvPReportResp { message Item { int64 uid = 1; // 用户ID string uname = 2; // 用户名 int64 addonIntegral = 3; // 本次获取的积分 } Item general = 1; // 名将 repeated Item winItems = 10; // 获胜方数据 repeated Item lostItems = 11; // 战败方数据 } // rank message RankPvpReq { int32 type = 1; // rank类型 int32 topN = 2; // TopN } message RankPvpResp { message Item { int64 uid = 1; string uname = 2; int64 score = 3; string avatar = 4; } int32 type = 1; // rank类型 repeated Item items = 2; // rank数据 } service userCenter { /// @ZeroGroup: platform_user // retrievePlatformUser 新增或获取用户 rpc retrievePlatformUser(PlatformUserReq) returns (PlatformUserResp); // getUserIdByPUid 通过平台用户id获取系统用户ID rpc getUserIdByPUid(PlatformUserReq) returns (UserIdResp); /// @ZeroGroup: integral //ChangeIntegral 新增用户积分 rpc ChangeIntegral(ChangeIntegralReq) returns (ChangeIntegralResp); //GetUserIntegral 获取用户积分 rpc GetUserIntegral(UserIdReq) returns (UserIntegralResp); //UserCheckIn 用户签到|打卡 rpc UserCheckIn(UserIdReq) returns (UserCheckInResp); /// @ZeroGroup: gift // UserSendGift 用户赠送礼物 rpc userSendGift(UserSendGiftReq) returns(UserSendGiftResp); rpc userBuyNobility(UserBuyNobilityReq) returns(UserBuyNobilityResp); /// @ZeroGroup: statistics rpc statPvpKill(StatPvPKillReq) returns (Empty); rpc statPvpFirstBlood(StatPvPFirstBloodReq) returns (Empty); rpc statPvpReport(StatPvPReportReq) returns (StatPvPReportResp); /// @ZeroGroup: rank // rankPvp pvp排行 rpc rankPvp(RankPvpReq) returns(RankPvpResp); }