transaction.go 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package monthlycard
  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 getSysInfo() []*sysInfo {
  12. defer func() {
  13. if err := recover(); err != nil {
  14. log.Error("monthlycard.getSysInfo transaction recover err %v", err)
  15. log.Error("%s", debug.Stack())
  16. }
  17. }()
  18. var list []*sysInfo
  19. statement := database.NewStatement()
  20. statement.SetNeedReturnValue(false)
  21. statement.SetOpenRecordSet(true)
  22. statement.SetProcName("WS_MonthlyCard_GetInfo")
  23. sqlstring := statement.GenSql()
  24. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  25. rowLen := len(retRows)
  26. if rowLen <= 0 {
  27. return list
  28. }
  29. for i := 0; i < rowLen; i++ {
  30. ret := retRows[i]
  31. var info sysInfo
  32. info.ProductID = (ret[0]).(string)
  33. info.Name = (ret[1]).(string)
  34. info.Price = int((ret[2]).(int64))
  35. awards := (ret[3]).(string)
  36. if awards != "" {
  37. if err := json.Unmarshal([]byte(awards), &info.Awards); err != nil {
  38. log.Error("monthlycard.getSysInfo awards unmarshal fail %v", err)
  39. }
  40. }
  41. dayItems := (ret[4]).(string)
  42. if dayItems != "" {
  43. if err := json.Unmarshal([]byte(dayItems), &info.DayItems); err != nil {
  44. log.Error("monthlycard.getSysInfo dayItems unmarshal fail %v", err)
  45. }
  46. }
  47. info.Memo = (ret[5]).(string)
  48. list = append(list, &info)
  49. }
  50. return list
  51. }
  52. // 月卡信息
  53. func getInfo(userId int) MonthlyCardInfo {
  54. defer func() {
  55. if err := recover(); err != nil {
  56. log.Error("monthlycard.getInfo transaction recover err %v", err)
  57. log.Error("%s", debug.Stack())
  58. }
  59. }()
  60. var info MonthlyCardInfo
  61. statement := database.NewStatement()
  62. statement.SetNeedReturnValue(false)
  63. statement.SetOpenRecordSet(true)
  64. statement.SetProcName("WS_UserMonthlyCard_GetInfo")
  65. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  66. sqlstring := statement.GenSql()
  67. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  68. if len(retRows) <= 0 {
  69. return info
  70. }
  71. monthGift := (retRows[0][0]).(string)
  72. monthGiftTime := common.ParseTime(monthGift)
  73. info.MonthGift = common.GetStamp(monthGiftTime)
  74. monthExpire := (retRows[0][1]).(string)
  75. monthExpireTime := common.ParseTime(monthExpire)
  76. info.MonthExpire = common.GetStamp(monthExpireTime)
  77. weekGift := (retRows[0][2]).(string)
  78. weekGiftTime := common.ParseTime(weekGift)
  79. info.WeekGift = common.GetStamp(weekGiftTime)
  80. weekExpire := (retRows[0][3]).(string)
  81. weekExpireTime := common.ParseTime(weekExpire)
  82. info.WeekExpire = common.GetStamp(weekExpireTime)
  83. //log.Debug("monthlyCard.getInfo monthGift=%s monthExpire=%s weekGift=%s weekExpire=%s",
  84. // monthGift, monthExpire, weekGift, weekExpire)
  85. return info
  86. }
  87. // 月卡购买
  88. func buy(userId, monthExpire, weekExpire int) int {
  89. defer func() {
  90. if err := recover(); err != nil {
  91. log.Error("monthlycard.buy transaction recover err %v", err)
  92. log.Error("%s", debug.Stack())
  93. }
  94. }()
  95. retCode := 0
  96. statement := database.NewStatement()
  97. statement.SetNeedReturnValue(false)
  98. statement.SetOpenRecordSet(true)
  99. statement.SetProcName("WS_UserMonthlyCard_Buy")
  100. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  101. statement.AddParamter("@MonthExpire", database.AdParamInput, database.AdInteger, 4, monthExpire)
  102. statement.AddParamter("@WeekExpire", database.AdParamInput, database.AdInteger, 4, weekExpire)
  103. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, retCode)
  104. sqlstring := statement.GenSql()
  105. log.Debug(sqlstring)
  106. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  107. if len(retRows) <= 0 {
  108. return 0
  109. }
  110. return int((retRows[0][0]).(int64))
  111. }
  112. // 月卡领取
  113. func gift(userId, monthGift, weekGift int) int {
  114. defer func() {
  115. if err := recover(); err != nil {
  116. log.Error("monthlycard.gift transaction recover err %v", err)
  117. log.Error("%s", debug.Stack())
  118. }
  119. }()
  120. retCode := 0
  121. statement := database.NewStatement()
  122. statement.SetNeedReturnValue(false)
  123. statement.SetOpenRecordSet(true)
  124. statement.SetProcName("WS_UserMonthlyCard_Gift")
  125. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  126. statement.AddParamter("@MonthGift", database.AdParamInput, database.AdInteger, 4, monthGift)
  127. statement.AddParamter("@WeekGift", database.AdParamInput, database.AdInteger, 4, weekGift)
  128. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, retCode)
  129. sqlstring := statement.GenSql()
  130. log.Debug(sqlstring)
  131. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  132. if len(retRows) <= 0 {
  133. return 0
  134. }
  135. return int((retRows[0][0]).(int64))
  136. }