ladderservice.pb.go 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. package proto
  2. import (
  3. "bet24.com/log"
  4. "bet24.com/servers/micros/common"
  5. "context"
  6. "github.com/smallnest/rpcx/client"
  7. )
  8. const ServiceName = "ladderservice"
  9. var consulAddr = common.Default_Consul_Addr
  10. func getClient() client.XClient {
  11. return common.GetClientPool().GetClient(ServiceName, consulAddr)
  12. }
  13. type Request struct {
  14. Name string
  15. UserId int
  16. GameId int
  17. Score int
  18. ServerAddr string
  19. GameRoomInfo
  20. }
  21. type Response struct {
  22. Data string
  23. UL *UserLadderInfo
  24. Settlement SettlementRecord
  25. Success bool
  26. Value int
  27. }
  28. func SetConsulAddr(addr string) {
  29. consulAddr = addr
  30. }
  31. func SayHello(name string) string {
  32. xclient := getClient()
  33. args := &Request{
  34. Name: name,
  35. }
  36. reply := &Response{}
  37. err := xclient.Call(context.Background(), "SayHello", args, reply)
  38. if err != nil {
  39. log.Debug("ladderservice failed to call: %v", err)
  40. common.GetClientPool().RemoveClient(ServiceName)
  41. return ""
  42. }
  43. log.Debug("SayHello return %s", reply.Data)
  44. return reply.Data
  45. }
  46. func GetSystemLadderInfo() string {
  47. xclient := getClient()
  48. args := &Request{}
  49. reply := &Response{}
  50. err := xclient.Call(context.Background(), "GetSystemLadderInfo", args, reply)
  51. if err != nil {
  52. log.Debug("ladderservice.GetSystemLadderInfo failed to call: %v", err)
  53. common.GetClientPool().RemoveClient(ServiceName)
  54. return ""
  55. }
  56. return reply.Data
  57. }
  58. func GetUserLadderInfo(userId int, gameId int) *UserLadderInfo {
  59. xclient := getClient()
  60. args := &Request{
  61. UserId: userId,
  62. GameId: gameId,
  63. }
  64. reply := &Response{}
  65. err := xclient.Call(context.Background(), "GetUserLadderInfo", args, reply)
  66. if err != nil {
  67. log.Debug("ladderservice.GetUserLadderInfo failed to call: %v", err)
  68. common.GetClientPool().RemoveClient(ServiceName)
  69. return nil
  70. }
  71. return reply.UL
  72. }
  73. func GetUserConsecutiveWinCount(userId int, gameId int) int {
  74. xclient := getClient()
  75. args := &Request{
  76. UserId: userId,
  77. GameId: gameId,
  78. }
  79. reply := &Response{}
  80. err := xclient.Call(context.Background(), "GetUserConsecutiveWinCount", args, reply)
  81. if err != nil {
  82. log.Debug("ladderservice.GetUserConsecutiveWinCount failed to call: %v", err)
  83. common.GetClientPool().RemoveClient(ServiceName)
  84. return 0
  85. }
  86. return reply.Value
  87. }
  88. func UseConsecutiveCard(userId int) bool {
  89. xclient := getClient()
  90. args := &Request{
  91. UserId: userId,
  92. }
  93. reply := &Response{}
  94. err := xclient.Call(context.Background(), "UseConsecutiveCard", args, reply)
  95. if err != nil {
  96. log.Debug("ladderservice.UseConsecutiveCard failed to call: %v", err)
  97. common.GetClientPool().RemoveClient(ServiceName)
  98. return false
  99. }
  100. return reply.Success
  101. }
  102. // 房间相关
  103. func RegisterLadderRoom(gameId int, roomName, gameRule string, base, min, max int, additionalPercent int, serverAddr string) {
  104. xclient := getClient()
  105. args := &Request{
  106. GameRoomInfo: GameRoomInfo{
  107. GameId: gameId,
  108. RoomName: roomName,
  109. BaseScore: base,
  110. MinGold: min,
  111. MaxGold: max,
  112. AdditionalPercent: additionalPercent,
  113. ServerAddr: serverAddr,
  114. GameRule: gameRule,
  115. },
  116. }
  117. err := xclient.Call(context.Background(), "RegisterLadderRoom", args, nil)
  118. if err != nil {
  119. log.Debug("ladderservice.RegisterLadderRoom failed to call: %v", err)
  120. common.GetClientPool().RemoveClient(ServiceName)
  121. }
  122. }
  123. func DeregisterLadderRoom(serverAddr string) {
  124. log.Debug("DeregisterLadderRoom serverAddr = %s", serverAddr)
  125. xclient := getClient()
  126. args := &Request{}
  127. args.ServerAddr = serverAddr
  128. err := xclient.Call(context.Background(), "DeregisterLadderRoom", args, nil)
  129. if err != nil {
  130. log.Debug("ladderservice.DeregisterLadderRoom failed to call: %v", err)
  131. common.GetClientPool().RemoveClient(ServiceName)
  132. }
  133. }
  134. func GetLadderRoomList() string {
  135. xclient := getClient()
  136. args := &Request{}
  137. reply := &Response{}
  138. err := xclient.Call(context.Background(), "GetLadderRoomList", args, reply)
  139. if err != nil {
  140. log.Debug("ladderservice.GetLadderRoomList failed to call: %v", err)
  141. common.GetClientPool().RemoveClient(ServiceName)
  142. return ""
  143. }
  144. return reply.Data
  145. }
  146. func AddUserLadderScore(userId int, gameId int, roomName string, score int) (int, bool) {
  147. xclient := getClient()
  148. args := &Request{
  149. UserId: userId,
  150. GameId: gameId,
  151. Score: score,
  152. }
  153. args.RoomName = roomName
  154. reply := &Response{}
  155. err := xclient.Call(context.Background(), "AddUserLadderScore", args, reply)
  156. if err != nil {
  157. log.Debug("ladderservice.AddUserLadderScore failed to call: %v", err)
  158. common.GetClientPool().RemoveClient(ServiceName)
  159. return 0, false
  160. }
  161. return reply.Value, reply.Success
  162. }
  163. func GetUserSettlementRecord(userId int) SettlementRecord {
  164. xclient := getClient()
  165. args := &Request{
  166. UserId: userId,
  167. }
  168. reply := &Response{}
  169. err := xclient.Call(context.Background(), "GetUserSettlementRecord", args, reply)
  170. if err != nil {
  171. log.Debug("ladderservice.GetUserSettlementRecord failed to call: %v", err)
  172. common.GetClientPool().RemoveClient(ServiceName)
  173. return SettlementRecord{}
  174. }
  175. return reply.Settlement
  176. }
  177. func GetUserHistoricalRecord(userId int) []WinningStreak {
  178. xclient := getClient()
  179. args := &Request{
  180. UserId: userId,
  181. }
  182. reply := &Response{}
  183. err := xclient.Call(context.Background(), "GetUserHistoricalRecord", args, reply)
  184. if err != nil {
  185. log.Debug("ladderservice.GetUserHistoricalRecord failed to call: %v", err)
  186. common.GetClientPool().RemoveClient(ServiceName)
  187. return []WinningStreak{}
  188. }
  189. return reply.Settlement.Records
  190. }
  191. func GetLadderRoomAdditionalPercent(gameId int, ruleName string) int {
  192. xclient := getClient()
  193. args := &Request{
  194. Name: ruleName,
  195. GameId: gameId,
  196. }
  197. reply := &Response{}
  198. err := xclient.Call(context.Background(), "GetLadderRoomAdditionalPercent", args, reply)
  199. if err != nil {
  200. log.Debug("ladderservice.GetLadderRoomAdditionalPercent failed to call: %v", err)
  201. common.GetClientPool().RemoveClient(ServiceName)
  202. return 0
  203. }
  204. return reply.Value
  205. }