transaction.go 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package prizewheel
  2. import (
  3. "encoding/json"
  4. "runtime/debug"
  5. "bet24.com/database"
  6. "bet24.com/log"
  7. "bet24.com/servers/common"
  8. "bet24.com/servers/coreservice/dbengine"
  9. )
  10. // 获取转盘奖励列表
  11. func getList() []*Prize {
  12. defer func() {
  13. if err := recover(); err != nil {
  14. log.Error("prizewheel.getList transaction recover err %v", err)
  15. log.Error("%s", debug.Stack())
  16. }
  17. }()
  18. statement := database.NewStatement()
  19. statement.SetNeedReturnValue(false)
  20. statement.SetOpenRecordSet(true)
  21. statement.SetProcName("WS_PrizeWheel_GetList")
  22. sqlstring := statement.GenSql()
  23. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  24. var prizes []*Prize
  25. for i := 0; i < len(retRows); i++ {
  26. ret := retRows[i]
  27. var out Prize
  28. out.Id = int((ret[0]).(int64))
  29. out.Chance = int((ret[1]).(int64))
  30. items := (ret[2]).(string)
  31. if items != "" {
  32. if err := json.Unmarshal([]byte(items), &out.Items); err != nil {
  33. log.Error("prizewheel.getList transaction unmarshal err %v", err)
  34. return nil
  35. }
  36. }
  37. prizes = append(prizes, &out)
  38. }
  39. return prizes
  40. }
  41. // 获取用户转盘信息
  42. func getInfo(userId int) (int, int) {
  43. defer func() {
  44. if err := recover(); err != nil {
  45. log.Error("transaction recover err %v", err)
  46. log.Error("%s", debug.Stack())
  47. }
  48. }()
  49. statement := database.NewStatement()
  50. statement.SetNeedReturnValue(false)
  51. statement.SetOpenRecordSet(true)
  52. statement.SetProcName("WS_PrizeWheel_GetUserInfo")
  53. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  54. sqlstring := statement.GenSql()
  55. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  56. if len(retRows) <= 0 {
  57. return 0, 0
  58. }
  59. ret := retRows[0]
  60. times := int((ret[0]).(int64))
  61. crdateStr := (ret[1]).(string)
  62. crdate := common.ParseTime(crdateStr)
  63. return times, common.GetStamp(crdate)
  64. }
  65. // 修改用户转盘信息
  66. func updateInfo(userId, times int) {
  67. defer func() {
  68. if err := recover(); err != nil {
  69. log.Error("transaction recover err %v", err)
  70. log.Error("%s", debug.Stack())
  71. }
  72. }()
  73. statement := database.NewStatement()
  74. statement.SetNeedReturnValue(false)
  75. statement.SetOpenRecordSet(false)
  76. statement.SetProcName("WS_PrizeWheel_UpdateUserInfo")
  77. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  78. statement.AddParamter("@Times", database.AdParamInput, database.AdInteger, 4, times)
  79. sqlstring := statement.GenSql()
  80. dbengine.CenterDB.ExecSql(sqlstring)
  81. return
  82. }
  83. // 添加转盘奖励记录
  84. func addRecord(userId, wheelId int, items string) {
  85. defer func() {
  86. if err := recover(); err != nil {
  87. log.Error("transaction recover err %v", err)
  88. log.Error("%s", debug.Stack())
  89. }
  90. }()
  91. statement := database.NewStatement()
  92. statement.SetNeedReturnValue(false)
  93. statement.SetOpenRecordSet(false)
  94. statement.SetProcName("WS_PrizeWheel_AddRecord")
  95. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  96. statement.AddParamter("@WheelID", database.AdParamInput, database.AdInteger, 4, wheelId)
  97. statement.AddParamter("@Items", database.AdParamInput, database.AdVarChar, 256, items)
  98. sqlstring := statement.GenSql()
  99. dbengine.CenterDB.ExecSql(sqlstring)
  100. return
  101. }
  102. // 转盘奖励历史记录
  103. func getRecord() []*userPrizeRecord {
  104. defer func() {
  105. if err := recover(); err != nil {
  106. log.Error("transaction recover err %v", err)
  107. log.Error("%s", debug.Stack())
  108. }
  109. }()
  110. var list []*userPrizeRecord
  111. statement := database.NewStatement()
  112. statement.SetNeedReturnValue(false)
  113. statement.SetOpenRecordSet(true)
  114. statement.SetProcName("WS_PrizeWheel_GetRecord")
  115. sqlstring := statement.GenSql()
  116. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  117. rowLen := len(retRows)
  118. if rowLen <= 0 {
  119. return list
  120. }
  121. for i := 0; i < rowLen; i++ {
  122. ret := retRows[i]
  123. var out userPrizeRecord
  124. out.UserId = int((ret[0]).(int64))
  125. out.NickName = (ret[1]).(string)
  126. out.WheelId = int((ret[2]).(int64))
  127. items := (ret[3]).(string)
  128. if err := json.Unmarshal([]byte(items), &out.Items); err != nil {
  129. log.Error("prizewheel.getRecord unmarshal err %v", err)
  130. }
  131. crdateStr := (ret[4]).(string)
  132. crdate := common.ParseTime(crdateStr)
  133. out.Crdate = common.GetStamp(crdate)
  134. list = append(list, &out)
  135. }
  136. return list
  137. }