transaction.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. package rank
  2. import (
  3. "encoding/json"
  4. "runtime/debug"
  5. "bet24.com/database"
  6. "bet24.com/log"
  7. "bet24.com/servers/coreservice/dbengine"
  8. )
  9. // 排行榜列表
  10. func getRankList() []*rankItem {
  11. defer func() {
  12. if err := recover(); err != nil {
  13. log.Release("rank.getRankList transaction recover err %v", err)
  14. log.Release("%s", debug.Stack())
  15. }
  16. }()
  17. statement := database.NewStatement()
  18. statement.SetNeedReturnValue(false)
  19. statement.SetOpenRecordSet(true)
  20. statement.SetProcName("WS_Rank_GetList")
  21. sqlString := statement.GenSql()
  22. retRows := dbengine.CenterDB.ExecSql(sqlString)
  23. rowLen := len(retRows)
  24. var list []*rankItem
  25. for i := 0; i < rowLen; i++ {
  26. ret := retRows[i]
  27. var out rankItem
  28. out.RankType = int((ret[0]).(int64))
  29. out.Rank = int((ret[1]).(int64))
  30. out.UserId = int((ret[2]).(int64))
  31. out.Amount = int((ret[3]).(int64))
  32. out.IsGift = int((ret[4]).(int64))
  33. out.crdate = ret[5].(string)
  34. list = append(list, &out)
  35. }
  36. return list
  37. }
  38. func getAwardList() []RankAwardInfo {
  39. defer func() {
  40. if err := recover(); err != nil {
  41. log.Release("transaction recover err %v", err)
  42. log.Release("%s", debug.Stack())
  43. }
  44. }()
  45. var list []RankAwardInfo
  46. statement := database.NewStatement()
  47. statement.SetNeedReturnValue(false)
  48. statement.SetOpenRecordSet(true)
  49. statement.SetProcName("WS_Rank_GetAwardList")
  50. sqlString := statement.GenSql()
  51. retRows := dbengine.CenterDB.ExecSql(sqlString)
  52. rowLen := len(retRows)
  53. if rowLen <= 0 {
  54. return list
  55. }
  56. for i := 0; i < rowLen; i++ {
  57. ret := retRows[i]
  58. var info RankAwardInfo
  59. info.RankType = int((ret[0]).(int64))
  60. info.Rank = int((ret[1]).(int64))
  61. tools := (ret[2]).(string)
  62. if len(tools) > 0 {
  63. if err := json.Unmarshal([]byte(tools), &info.Items); err != nil {
  64. log.Error("rank.getAwardList json unmarshal fail err %v", err)
  65. }
  66. }
  67. list = append(list, info)
  68. }
  69. return list
  70. }
  71. // 领取榜单奖励
  72. func award(userId, rankType, doubleFlag int) int {
  73. defer func() {
  74. if err := recover(); err != nil {
  75. log.Error("transaction recover err %v", err)
  76. log.Error("%s", debug.Stack())
  77. }
  78. }()
  79. statement := database.NewStatement()
  80. statement.SetNeedReturnValue(false)
  81. statement.SetOpenRecordSet(true)
  82. statement.SetProcName("WS_Rank_Award")
  83. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  84. statement.AddParamter("@RankType", database.AdParamInput, database.AdInteger, 4, rankType)
  85. statement.AddParamter("@DoubleFlag", database.AdParamInput, database.AdInteger, 4, doubleFlag)
  86. sqlString := statement.GenSql()
  87. log.Debug(sqlString)
  88. retRows := dbengine.CenterDB.ExecSql(sqlString)
  89. if len(retRows) <= 0 {
  90. return 0
  91. }
  92. return int((retRows[0][0]).(int64))
  93. }
  94. // 榜单信息
  95. func getRankInfo(userId, rankType int) int {
  96. defer func() {
  97. if err := recover(); err != nil {
  98. log.Error("rank.getCharm transaction recover err %v", err)
  99. log.Error("%s", debug.Stack())
  100. }
  101. }()
  102. statement := database.NewStatement()
  103. statement.SetNeedReturnValue(false)
  104. statement.SetOpenRecordSet(true)
  105. statement.SetProcName("WS_Rank_GetInfo")
  106. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  107. statement.AddParamter("@RankType", database.AdParamInput, database.AdInteger, 4, rankType)
  108. sqlString := statement.GenSql()
  109. retRows := dbengine.CenterDB.ExecSql(sqlString)
  110. if len(retRows) <= 0 {
  111. return 0
  112. }
  113. return int((retRows[0][0]).(int64))
  114. }