transaction.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package spread
  2. import (
  3. "runtime/debug"
  4. "bet24.com/database"
  5. "bet24.com/log"
  6. "bet24.com/servers/common"
  7. "bet24.com/servers/coreservice/dbengine"
  8. )
  9. // 会员申请
  10. func apply(userId, code int) int {
  11. defer func() {
  12. if err := recover(); err != nil {
  13. log.Error("transaction recover err %v", err)
  14. log.Error("%s", debug.Stack())
  15. }
  16. }()
  17. retCode := 0
  18. statement := database.NewStatement()
  19. statement.SetNeedReturnValue(false)
  20. statement.SetOpenRecordSet(true)
  21. statement.SetProcName("WS_Spread_Apply")
  22. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  23. statement.AddParamter("@Code", database.AdParamInput, database.AdInteger, 4, code)
  24. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, retCode)
  25. sqlstring := statement.GenSql()
  26. // log.Debug(sqlstring)
  27. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  28. if len(retRows) <= 0 {
  29. return retCode
  30. }
  31. retCode = int((retRows[0][0]).(int64))
  32. return retCode
  33. }
  34. // 推广会员
  35. func getMembers(code int, pageIndex, pageSize int) (int, []*spreadMember) {
  36. defer func() {
  37. if err := recover(); err != nil {
  38. log.Error("transaction recover err %v", err)
  39. log.Error("%s", debug.Stack())
  40. }
  41. }()
  42. var (
  43. recordCount int
  44. list []*spreadMember
  45. )
  46. statement := database.NewStatement()
  47. statement.SetNeedReturnValue(false)
  48. statement.SetOpenRecordSet(true)
  49. statement.SetProcName("WS_Spread_GetMembers")
  50. statement.AddParamter("@Code", database.AdParamInput, database.AdInteger, 4, code)
  51. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, pageIndex)
  52. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, pageSize)
  53. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, recordCount)
  54. sqlstring := statement.GenSql()
  55. // log.Debug(sqlstring)
  56. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  57. rowLen := len(retRows)
  58. if rowLen <= 0 {
  59. return recordCount, list
  60. }
  61. if rowLen > 1 {
  62. for i := 0; i < rowLen-1; i++ {
  63. ret := retRows[i]
  64. var info spreadMember
  65. info.UserID = int((ret[0]).(int64))
  66. info.IsGift = int((ret[1]).(int64))
  67. crdateStr := (ret[2]).(string)
  68. crdate := common.ParseTime(crdateStr)
  69. info.Crdate = common.GetStamp(crdate)
  70. list = append(list, &info)
  71. }
  72. }
  73. recordCount = int((retRows[rowLen-1][0]).(int64))
  74. return recordCount, list
  75. }
  76. // 领取奖励
  77. func gift(code, fromUserId int) int {
  78. defer func() {
  79. if err := recover(); err != nil {
  80. log.Error("transaction recover err %v", err)
  81. log.Error("%s", debug.Stack())
  82. }
  83. }()
  84. retCode := 0
  85. statement := database.NewStatement()
  86. statement.SetNeedReturnValue(false)
  87. statement.SetOpenRecordSet(true)
  88. statement.SetProcName("WS_Spread_Gift")
  89. statement.AddParamter("@Code", database.AdParamInput, database.AdInteger, 4, code)
  90. statement.AddParamter("@FromUserID", database.AdParamInput, database.AdInteger, 4, fromUserId)
  91. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, retCode)
  92. sqlstring := statement.GenSql()
  93. //log.Debug(sqlstring)
  94. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  95. if len(retRows) <= 0 {
  96. return retCode
  97. }
  98. retCode = int((retRows[0][0]).(int64))
  99. return retCode
  100. }