game.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. package controller
  2. import (
  3. waterPool "bet24.com/servers/micros/waterpool/proto"
  4. "net/http"
  5. "bet24.com/servers/adminserver/dao"
  6. "bet24.com/log"
  7. "bet24.com/servers/adminserver/serverdata"
  8. "github.com/gin-gonic/gin"
  9. )
  10. // 获取简单游戏信息(GameID、ChineseName)
  11. func GetSimpleGames(c *gin.Context) {
  12. list := serverdata.Games.GetSimpleGames()
  13. c.JSON(http.StatusOK, struct {
  14. RecordCount int
  15. List interface{}
  16. }{
  17. RecordCount: len(list),
  18. List: list,
  19. })
  20. return
  21. }
  22. // 审核游戏列表
  23. func GameRequestList(c *gin.Context) {
  24. obj := dao.NewGetGameRequestList()
  25. if err := c.ShouldBind(&obj.In); err != nil {
  26. log.Debug("%s shouldBind err %v", "gameRequestList", err)
  27. return
  28. }
  29. obj.DoAction(nil)
  30. c.JSON(http.StatusOK, obj.Out)
  31. return
  32. }
  33. // 添加审核游戏
  34. func GameRequestAdd(c *gin.Context) {
  35. obj := dao.NewGameRequestAdd()
  36. if err := c.ShouldBind(&obj.In); err != nil {
  37. log.Debug("%s shouldBind err %v", "gameRequestAdd", err)
  38. return
  39. }
  40. obj.DoAction(nil)
  41. c.JSON(http.StatusOK, obj.Out)
  42. return
  43. }
  44. // 删除审核游戏
  45. func GameRequestDel(c *gin.Context) {
  46. obj := dao.NewGameRequestDel()
  47. if err := c.ShouldBind(&obj.In); err != nil {
  48. log.Debug("%s shouldBind err %v", "gameRequestDel", err)
  49. return
  50. }
  51. obj.DoAction(nil)
  52. c.JSON(http.StatusOK, obj.Out)
  53. return
  54. }
  55. // 所有游戏列表
  56. func GetAllGames(c *gin.Context) {
  57. var info struct {
  58. GameID int
  59. }
  60. if err := c.ShouldBind(&info); err != nil {
  61. log.Debug("%s shouldBind err %v", "getAllGames", err)
  62. return
  63. }
  64. if info.GameID > 0 {
  65. var list []*dao.AllGameInfo
  66. list = append(list, serverdata.Games.GetGameInfo(info.GameID))
  67. c.JSON(http.StatusOK, struct {
  68. RecordCount int
  69. List interface{}
  70. }{
  71. RecordCount: len(list),
  72. List: list,
  73. })
  74. return
  75. }
  76. list := serverdata.Games.GetGames()
  77. c.JSON(http.StatusOK, struct {
  78. RecordCount int
  79. List interface{}
  80. }{
  81. RecordCount: len(*list),
  82. List: list,
  83. })
  84. return
  85. }
  86. // 游戏信息修改
  87. func AllGameUpd(c *gin.Context) {
  88. obj := dao.NewAllGameUpd()
  89. if err := c.ShouldBind(&obj.In); err != nil {
  90. log.Debug("%s shouldBind err %v", "allGameUpd", err)
  91. return
  92. }
  93. obj.DoAction(nil)
  94. serverdata.Games.Refresh()
  95. c.JSON(http.StatusOK, nil)
  96. return
  97. }
  98. // 获取系统返还比率
  99. func GetSysOdds(c *gin.Context) {
  100. obj := dao.NewSysOdds()
  101. if err := c.ShouldBind(&obj); err != nil {
  102. log.Debug("%s shouldBind err %v", "getSysOdds", err)
  103. return
  104. }
  105. c.JSON(http.StatusOK, struct {
  106. List interface{}
  107. }{
  108. List: obj.Get(),
  109. })
  110. return
  111. }
  112. // 设置系统返还比率
  113. func SetSysOdds(c *gin.Context) {
  114. obj := dao.NewSysOdds()
  115. if err := c.ShouldBind(&obj); err != nil {
  116. log.Debug("%s shouldBind err %v", "setSysOdds", err)
  117. return
  118. }
  119. log.Debug("SetSysOdds ==> %+v", obj)
  120. b := obj.Set()
  121. c.JSON(http.StatusOK, b)
  122. return
  123. }
  124. type GetGameInventoryList_in struct {
  125. GameID int
  126. }
  127. type GameInventoryInfo struct {
  128. GameName string // 游戏名称
  129. GameID int // 游戏ID
  130. RoomName string // 房间名称
  131. RoomType int // 房间类型
  132. InventoryValue int // 实时库存值
  133. ControlRate float64 // 实时控制率
  134. MinInventoryValue int // 库存取值下限
  135. MaxInventoryValue int // 库存取值上限
  136. MaxControlRate int // 控制率上限
  137. }
  138. type GetGameInventoryList_out struct {
  139. RecordCount int
  140. List []GameInventoryInfo
  141. }
  142. // 获取游戏库存列表
  143. func GetGameInventoryList(c *gin.Context) {
  144. var in GetGameInventoryList_in
  145. if err := c.ShouldBind(&in); err != nil {
  146. log.Debug("%s shouldBind err %v", "GetGameInventoryList", err)
  147. return
  148. }
  149. resp := waterPool.GetInventoryList(in.GameID)
  150. var out GetGameInventoryList_out
  151. out.RecordCount = resp.Count
  152. for _, v := range resp.List {
  153. g := serverdata.Games.GetGameInfo(v.GameID)
  154. if g == nil {
  155. continue
  156. }
  157. out.List = append(out.List, GameInventoryInfo{
  158. GameName: g.GameName,
  159. GameID: v.GameID,
  160. RoomName: v.RoomName,
  161. RoomType: v.RoomType,
  162. InventoryValue: v.InventoryValue,
  163. ControlRate: v.ControlRate,
  164. MinInventoryValue: v.MinInventoryValue,
  165. MaxInventoryValue: v.MaxInventoryValue,
  166. MaxControlRate: v.MaxControlRate,
  167. })
  168. }
  169. c.JSON(http.StatusOK, out)
  170. return
  171. }
  172. // 更新或者修改单个库存
  173. func UpdateGameInventory(c *gin.Context) {
  174. var in GameInventoryInfo
  175. if err := c.ShouldBind(&in); err != nil {
  176. log.Debug("%s shouldBind err %v", "UpdateGameInventory", err)
  177. return
  178. }
  179. // 修改库存配置
  180. waterPool.UpdateInventoryList(in.GameID,
  181. in.RoomName,
  182. in.RoomType,
  183. in.InventoryValue,
  184. in.MinInventoryValue,
  185. in.MaxInventoryValue,
  186. in.MaxControlRate)
  187. c.JSON(http.StatusOK, "")
  188. return
  189. }