exp.proto 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. syntax = "proto3";
  2. package live.xuser.v1;
  3. option go_package = "v1";
  4. import "github.com/gogo/protobuf/gogoproto/gogo.proto";
  5. // UserExp 相关服务
  6. service UserExp {
  7. // GetUserExpMulti 获取用户经验与等级信息,支持批量
  8. rpc GetUserExp(GetUserExpReq) returns (GetUserExpResp);
  9. // AddUserExp 增加用户经验,不支持批量
  10. rpc AddUserExp(AddUserExpReq) returns (AddUserExpResp);
  11. }
  12. message AddUserExpReq {
  13. UserExpChunk userInfo = 1 [(gogoproto.moretags) = 'form:"userInfo" validate:"required"'];
  14. }
  15. message UserExpChunk {
  16. int64 uid = 1 [(gogoproto.moretags) = 'form:"uid" validate:"gt=0,required"'];
  17. int64 req_biz = 2 [(gogoproto.moretags) = 'form:"req_biz" validate:"required"'];
  18. int64 type = 3 [(gogoproto.moretags) = 'form:"type" validate:"gt=0,required"'];
  19. int64 num = 4 [(gogoproto.moretags) = 'form:"num" validate:"gt=0,required"'];
  20. }
  21. message AddUserExpResp{
  22. }
  23. // GetUserExpReq 请求
  24. message GetUserExpReq {
  25. repeated int64 uids = 1 [(gogoproto.moretags) = 'form:"uids" validate:"gt=0,required"'];
  26. }
  27. // GetUserExpResp 响应
  28. message GetUserExpResp {
  29. map<int64, LevelInfo> data = 1 [(gogoproto.jsontag) = "data"];
  30. }
  31. message LevelInfo {
  32. int64 uid = 1 [(gogoproto.jsontag) = "uid"];
  33. UserLevelInfo userLevel = 2 [(gogoproto.jsontag) = "userLevel"];
  34. AnchorLevelInfo anchorLevel = 3 [(gogoproto.jsontag) = "anchorLevel"];
  35. }
  36. message UserLevelInfo {
  37. // 当前用户等级
  38. int64 level = 1 [(gogoproto.jsontag) = "level"];
  39. // 下一等级
  40. int64 nextLevel = 2 [(gogoproto.jsontag) = "nextLevel"];
  41. // 当前等级对应的经验
  42. int64 userExpLeft = 3 [(gogoproto.jsontag) = "userExpLeft"];
  43. // 下一等级对应的经验
  44. int64 userExpRight = 4 [(gogoproto.jsontag) = "userExpRight"];
  45. // 用户当前经验
  46. int64 userExp = 5 [(gogoproto.jsontag) = "userExp"];
  47. // 升级到下一等级对应的经验
  48. int64 userExpNextLevel = 6 [(gogoproto.jsontag) = "userExpNextLevel"];
  49. // 当前等级颜色
  50. int64 color = 7 [(gogoproto.jsontag) = "color"];
  51. // 下一等级左侧对应的经验
  52. int64 userExpNextLeft = 8 [(gogoproto.jsontag) = "userExpNextLeft"];
  53. // 下一等级右侧对应的经验
  54. int64 userExpNextRight = 9 [(gogoproto.jsontag) = "userExpNextRight"];
  55. int64 isLevelTop = 10 [(gogoproto.jsontag) = "isLevelTop"];
  56. }
  57. message AnchorLevelInfo {
  58. // 当前用户等级
  59. int64 level = 1 [(gogoproto.jsontag) = "level"];
  60. // 下一等级
  61. int64 nextLevel = 2 [(gogoproto.jsontag) = "nextLevel"];
  62. // 当前等级对应的经验
  63. int64 userExpLeft = 3 [(gogoproto.jsontag) = "userExpLeft"];
  64. // 下一等级对应的经验
  65. int64 userExpRight = 4 [(gogoproto.jsontag) = "userExpRight"];
  66. // 用户当前经验
  67. int64 userExp = 5 [(gogoproto.jsontag) = "userExp"];
  68. // 升级到下一等级对应的经验
  69. int64 userExpNextLevel = 6 [(gogoproto.jsontag) = "userExpNextLevel"];
  70. // 当前等级颜色
  71. int64 color = 7 [(gogoproto.jsontag) = "color"];
  72. // 下一等级左侧对应的经验
  73. int64 userExpNextLeft = 8 [(gogoproto.jsontag) = "userExpNextLeft"];
  74. // 下一等级右侧对应的经验
  75. int64 userExpNextRight = 9 [(gogoproto.jsontag) = "userExpNextRight"];
  76. // 主播积分,userExp/100
  77. int64 anchorScore = 10 [(gogoproto.jsontag) = "anchorScore"];
  78. int64 isLevelTop = 11 [(gogoproto.jsontag) = "isLevelTop"];
  79. }