transaction.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. package signinwheel
  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. item "bet24.com/servers/micros/item_inventory/proto"
  10. )
  11. // 历史记录
  12. func getHistory() []SigninWheelHistory {
  13. defer func() {
  14. if err := recover(); err != nil {
  15. log.Error("transaction recover err %v", err)
  16. log.Error("%s", debug.Stack())
  17. }
  18. }()
  19. var list []SigninWheelHistory
  20. statement := database.NewStatement()
  21. statement.SetNeedReturnValue(false)
  22. statement.SetOpenRecordSet(true)
  23. statement.SetProcName("WS_SigninWheel_GetHistory")
  24. sqlstring := statement.GenSql()
  25. //log.Debug(sqlstring)
  26. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  27. rowLen := len(retRows)
  28. if rowLen <= 0 {
  29. return list
  30. }
  31. if rowLen > 1 {
  32. for i := 0; i < rowLen-1; i++ {
  33. ret := retRows[i]
  34. var info SigninWheelHistory
  35. info.UserId = int((ret[0]).(int64))
  36. info.Base = int((ret[1]).(int64))
  37. info.Multiple = int((ret[2]).(int64))
  38. info.ItemId = int((ret[3]).(int64))
  39. itemPack := (ret[4]).(string)
  40. if itemPack == "" {
  41. info.Items = append(info.Items, item.ItemPack{ItemId: info.ItemId, Count: info.Base * info.Multiple})
  42. } else {
  43. json.Unmarshal([]byte(itemPack), &info.Items)
  44. }
  45. list = append(list, info)
  46. }
  47. }
  48. return list
  49. }
  50. func getUserLastSignin(userId int) int {
  51. defer func() {
  52. if err := recover(); err != nil {
  53. log.Error("transaction recover err %v", err)
  54. log.Error("%s", debug.Stack())
  55. }
  56. }()
  57. statement := database.NewStatement()
  58. statement.SetNeedReturnValue(false)
  59. statement.SetOpenRecordSet(true)
  60. statement.SetProcName("WS_SigninWheel_GetLastTime")
  61. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  62. sqlstring := statement.GenSql()
  63. //log.Debug(sqlstring)
  64. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  65. if len(retRows) <= 0 {
  66. return 0
  67. }
  68. crdateStr := (retRows[0][0]).(string)
  69. crdate := common.ParseTime(crdateStr)
  70. return common.GetStamp(crdate)
  71. }
  72. func getSigninWheelConfig() string {
  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_SigninWheel_GetConfig")
  83. sqlstring := statement.GenSql()
  84. //log.Debug(sqlstring)
  85. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  86. if len(retRows) <= 0 {
  87. return ""
  88. }
  89. return (retRows[0][0]).(string)
  90. }
  91. func userSigninWheel(userId, base, multiple, itemId int, items []item.ItemPack) {
  92. defer func() {
  93. if err := recover(); err != nil {
  94. log.Error("transaction recover err %v", err)
  95. log.Error("%s", debug.Stack())
  96. }
  97. }()
  98. statement := database.NewStatement()
  99. statement.SetNeedReturnValue(false)
  100. statement.SetOpenRecordSet(true)
  101. statement.SetProcName("WS_SigninWheel_DoSignin")
  102. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  103. statement.AddParamter("@Base", database.AdParamInput, database.AdInteger, 4, base)
  104. statement.AddParamter("@Multiple", database.AdParamInput, database.AdInteger, 4, multiple)
  105. statement.AddParamter("@Amount", database.AdParamInput, database.AdInteger, 4, base*multiple)
  106. statement.AddParamter("@ItemId", database.AdParamInput, database.AdInteger, 4, itemId)
  107. ip, _ := json.Marshal(items)
  108. statement.AddParamter("@ItemPack", database.AdParamInput, database.AdVarChar, 64, string(ip))
  109. sqlstring := statement.GenSql()
  110. //log.Debug(sqlstring)
  111. dbengine.CenterDB.ExecSql(sqlstring)
  112. }