transaction.go 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. package bet
  2. import (
  3. "runtime/debug"
  4. "bet24.com/database"
  5. "bet24.com/log"
  6. "bet24.com/servers/coreservice/dbengine"
  7. )
  8. // 投注列表
  9. func betList(userId, gameId, days, pageIndex, pageSize int, betZone string) *BetInfo_Resp {
  10. defer func() {
  11. if err := recover(); err != nil {
  12. log.Release("DoAction recover err %v", err)
  13. log.Release("%s", debug.Stack())
  14. }
  15. }()
  16. var resp BetInfo_Resp
  17. statement := database.NewStatement()
  18. statement.SetNeedReturnValue(false)
  19. statement.SetOpenRecordSet(true)
  20. statement.SetProcName("WS_BetRecord_GetList")
  21. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  22. statement.AddParamter("@GameID", database.AdParamInput, database.AdInteger, 4, gameId)
  23. statement.AddParamter("@Days", database.AdParamInput, database.AdInteger, 4, days)
  24. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, pageIndex)
  25. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, pageSize)
  26. statement.AddParamter("@TotalBetAmount", database.AdParamOutput, database.AdBigint, 8, resp.TotalBetAmount)
  27. statement.AddParamter("@TotalResultAmount", database.AdParamOutput, database.AdBigint, 8, resp.TotalResultAmount)
  28. statement.AddParamter("@TotalWinAmount", database.AdParamOutput, database.AdBigint, 8, resp.TotalWinAmount)
  29. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, resp.RecordCount)
  30. statement.AddParamter("@BetZone", database.AdParamInput, database.AdVarChar, 128, betZone)
  31. sqlString := statement.GenSql()
  32. retRows := dbengine.CenterDB.ExecSql(sqlString)
  33. rowLen := len(retRows)
  34. if rowLen <= 0 {
  35. return &resp
  36. }
  37. if rowLen > 1 {
  38. for i := 0; i < rowLen-1; i++ {
  39. ret := retRows[i]
  40. var bet BetInfo
  41. bet.ChineseName = (ret[0]).(string)
  42. bet.BetAmount = int((ret[1]).(int64))
  43. bet.BetTime = (ret[2]).(string)
  44. bet.ResultAmount = int((ret[3]).(int64))
  45. bet.Tax = int((ret[4]).(int64))
  46. bet.Status = int((ret[5]).(int64))
  47. bet.WinAmount = int((ret[6]).(int64))
  48. bet.EnglishName = (ret[7]).(string)
  49. if len(ret) > 8 {
  50. bet.BetZone = (ret[8]).(string)
  51. bet.ResultZone = (ret[9]).(string)
  52. }
  53. resp.List = append(resp.List, bet)
  54. }
  55. }
  56. resp.TotalBetAmount = int((retRows[rowLen-1][0]).(int64))
  57. resp.TotalResultAmount = int((retRows[rowLen-1][1]).(int64))
  58. resp.TotalWinAmount = int((retRows[rowLen-1][2]).(int64))
  59. resp.RecordCount = int((retRows[rowLen-1][3]).(int64))
  60. return &resp
  61. }
  62. // 游戏记录
  63. func getGameCount(userId, gameId int) []*GameCount {
  64. defer func() {
  65. if err := recover(); err != nil {
  66. log.Error("transaction recover err %v", err)
  67. log.Error("%s", debug.Stack())
  68. }
  69. }()
  70. var list []*GameCount
  71. statement := database.NewStatement()
  72. statement.SetNeedReturnValue(false)
  73. statement.SetOpenRecordSet(true)
  74. statement.SetProcName("WS_UserGameCount_GetList")
  75. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  76. statement.AddParamter("@GameID", database.AdParamInput, database.AdInteger, 4, gameId)
  77. sqlstring := statement.GenSql()
  78. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  79. rowLen := len(retRows)
  80. if rowLen <= 0 {
  81. return list
  82. }
  83. for i := 0; i < rowLen; i++ {
  84. ret := retRows[i]
  85. var out GameCount
  86. out.GameID = int((ret[0]).(int64))
  87. out.TotalCount = int((ret[1]).(int64))
  88. out.WinCount = int((ret[2]).(int64))
  89. out.MaxWinAmount = int((ret[3]).(int64))
  90. out.CardStat = (ret[4]).(string)
  91. list = append(list, &out)
  92. }
  93. return list
  94. }
  95. // 更新牌型统计信息
  96. func updateCardStat(userId, gameId int, cardStat, cardData string) {
  97. defer func() {
  98. if err := recover(); err != nil {
  99. log.Error("transaction recover err %v", err)
  100. log.Error("%s", debug.Stack())
  101. }
  102. }()
  103. statement := database.NewStatement()
  104. statement.SetNeedReturnValue(false)
  105. statement.SetOpenRecordSet(false)
  106. statement.SetProcName("WS_UserGameCount_Update")
  107. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  108. statement.AddParamter("@GameID", database.AdParamInput, database.AdInteger, 4, gameId)
  109. statement.AddParamter("@CardStat", database.AdParamInput, database.AdVarChar, 1024, cardStat)
  110. sqlstring := statement.GenSql()
  111. // log.Debug(sqlstring)
  112. dbengine.CenterDB.ExecSql(sqlstring)
  113. }
  114. // 游戏历史
  115. func gameHistory(userId, pageIndex, pageSize int) (int, []*History) {
  116. defer func() {
  117. if err := recover(); err != nil {
  118. log.Release("DoAction recover err %v", err)
  119. log.Release("%s", debug.Stack())
  120. }
  121. }()
  122. recordCount := 0
  123. var list []*History
  124. statement := database.NewStatement()
  125. statement.SetNeedReturnValue(false)
  126. statement.SetOpenRecordSet(true)
  127. statement.SetProcName("WS_BetRecord_GetHistoryList")
  128. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  129. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, pageIndex)
  130. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, pageSize)
  131. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, recordCount)
  132. sqlstring := statement.GenSql()
  133. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  134. rowLen := len(retRows)
  135. if rowLen <= 0 {
  136. return recordCount, list
  137. }
  138. if rowLen > 1 {
  139. for i := 0; i < rowLen-1; i++ {
  140. ret := retRows[i]
  141. var bet History
  142. bet.ChineseName = (ret[0]).(string)
  143. bet.BetTime = (ret[1]).(string)
  144. bet.SettleAmount = int((ret[2]).(int64))
  145. list = append(list, &bet)
  146. }
  147. }
  148. recordCount = int((retRows[rowLen-1][0]).(int64))
  149. return recordCount, list
  150. }