trans_write_money.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package transaction
  2. import (
  3. "bet24.com/database"
  4. "bet24.com/log"
  5. "runtime/debug"
  6. )
  7. func WriteMoneySync(userID, gameID, amount, tax, status, scoreType int, srcName, userIP string) (bool, int, int) {
  8. defer func() {
  9. if err := recover(); err != nil {
  10. log.Release("DoAction recover err %v", err)
  11. log.Release("%s", debug.Stack())
  12. }
  13. }()
  14. statement := database.NewStatement()
  15. statement.SetNeedReturnValue(false)
  16. statement.SetOpenRecordSet(true)
  17. statement.SetProcName("Game_Money_WriteMoney")
  18. var balance int
  19. var retCode int
  20. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userID)
  21. statement.AddParamter("@SourceName", database.AdParamInput, database.AdNVarChar, 64, srcName)
  22. statement.AddParamter("@GameID", database.AdParamInput, database.AdVarChar, 64, gameID)
  23. statement.AddParamter("@Amount", database.AdParamInput, database.AdBigint, 8, amount)
  24. statement.AddParamter("@Tax", database.AdParamInput, database.AdBigint, 8, tax)
  25. statement.AddParamter("@Status", database.AdParamInput, database.AdTinyInt, 1, status)
  26. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, userIP)
  27. statement.AddParamter("@Type", database.AdParamInput, database.AdInteger, 4, scoreType)
  28. statement.AddParamter("@Balance", database.AdParamOutput, database.AdBigint, 8, balance)
  29. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdTinyInt, 1, retCode)
  30. sqlstring := statement.GenSql()
  31. //log.Debug(sqlstring)
  32. retRows := CenterDB.ExecSql(sqlstring)
  33. if len(retRows) <= 0 {
  34. return false, 0, 0
  35. }
  36. ret := retRows[0]
  37. balance = int((ret[0]).(int64))
  38. retCode = int((ret[1]).(int64))
  39. return true, retCode, balance
  40. }
  41. func WriteMoneySyncWithModifyAmount(userID, gameID, amount, tax, status, scoreType int, srcName, userIP string) (int, int) {
  42. defer func() {
  43. if err := recover(); err != nil {
  44. log.Release("DoAction recover err %v", err)
  45. log.Release("%s", debug.Stack())
  46. }
  47. }()
  48. statement := database.NewStatement()
  49. statement.SetNeedReturnValue(false)
  50. statement.SetOpenRecordSet(true)
  51. statement.SetProcName("Game_Money_WriteMoney_GetModifyAmount")
  52. var balance int
  53. var modifyAmount int
  54. var retCode int
  55. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userID)
  56. statement.AddParamter("@SourceName", database.AdParamInput, database.AdNVarChar, 64, srcName)
  57. statement.AddParamter("@GameID", database.AdParamInput, database.AdVarChar, 64, gameID)
  58. statement.AddParamter("@Amount", database.AdParamInput, database.AdBigint, 8, amount)
  59. statement.AddParamter("@Tax", database.AdParamInput, database.AdBigint, 8, tax)
  60. statement.AddParamter("@Status", database.AdParamInput, database.AdTinyInt, 1, status)
  61. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, userIP)
  62. statement.AddParamter("@Type", database.AdParamInput, database.AdInteger, 4, scoreType)
  63. statement.AddParamter("@Balance", database.AdParamOutput, database.AdBigint, 8, balance)
  64. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdTinyInt, 1, retCode)
  65. statement.AddParamter("@ModifyAmount", database.AdParamOutput, database.AdBigint, 8, modifyAmount)
  66. sqlstring := statement.GenSql()
  67. //log.Debug(sqlstring)
  68. retRows := CenterDB.ExecSql(sqlstring)
  69. if len(retRows) <= 0 {
  70. return 0, 0
  71. }
  72. ret := retRows[0]
  73. balance = int((ret[0]).(int64))
  74. retCode = int((ret[1]).(int64))
  75. modifyAmount = int((ret[2]).(int64))
  76. return balance, modifyAmount
  77. }
  78. func WriteChipSync(userID, gameID, amount, tax, status, scoreType int, srcName, userIP string) (bool, int, int) {
  79. defer func() {
  80. if err := recover(); err != nil {
  81. log.Release("DoAction recover err %v", err)
  82. log.Release("%s", debug.Stack())
  83. }
  84. }()
  85. statement := database.NewStatement()
  86. statement.SetNeedReturnValue(false)
  87. statement.SetOpenRecordSet(true)
  88. statement.SetProcName("Game_Chip_Write")
  89. var balance int
  90. var retCode int
  91. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userID)
  92. statement.AddParamter("@SourceName", database.AdParamInput, database.AdNVarChar, 64, srcName)
  93. statement.AddParamter("@GameID", database.AdParamInput, database.AdVarChar, 64, gameID)
  94. statement.AddParamter("@Amount", database.AdParamInput, database.AdBigint, 8, amount)
  95. statement.AddParamter("@Tax", database.AdParamInput, database.AdBigint, 8, tax)
  96. statement.AddParamter("@Status", database.AdParamInput, database.AdTinyInt, 1, status)
  97. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, userIP)
  98. statement.AddParamter("@Type", database.AdParamInput, database.AdInteger, 4, scoreType)
  99. statement.AddParamter("@Balance", database.AdParamOutput, database.AdBigint, 8, balance)
  100. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdTinyInt, 1, retCode)
  101. sqlstring := statement.GenSql()
  102. //log.Debug(sqlstring)
  103. retRows := CenterDB.ExecSql(sqlstring)
  104. if len(retRows) <= 0 {
  105. return false, 0, 0
  106. }
  107. ret := retRows[0]
  108. balance = int((ret[0]).(int64))
  109. retCode = int((ret[1]).(int64))
  110. return true, retCode, balance
  111. }