transaction.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package jackpot
  2. import (
  3. "runtime/debug"
  4. "bet24.com/database"
  5. "bet24.com/log"
  6. "bet24.com/servers/coreservice/dbengine"
  7. )
  8. // 获取奖池信息
  9. func getJackpotAmount(gameId int, isChipRoom bool) int {
  10. defer func() {
  11. if err := recover(); err != nil {
  12. log.Error("transaction recover err %v", err)
  13. log.Error("%s", debug.Stack())
  14. }
  15. }()
  16. amount := 0
  17. statement := database.NewStatement()
  18. statement.SetNeedReturnValue(false)
  19. statement.SetOpenRecordSet(true)
  20. if !isChipRoom {
  21. statement.SetProcName("Game_JackPot_GetInfo")
  22. } else {
  23. statement.SetProcName("Game_JackPotChip_GetInfo")
  24. }
  25. statement.AddParamter("@GameID", database.AdParamInput, database.AdInteger, 4, gameId)
  26. statement.AddParamter("@Amount", database.AdParamOutput, database.AdBigint, 8, amount)
  27. sqlstring := statement.GenSql()
  28. // log.Debug(sqlstring)
  29. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  30. if len(retRows) <= 0 {
  31. log.Release("jackpot.getInfo gameId=%d amount=0", gameId)
  32. return amount
  33. }
  34. return int((retRows[0][0]).(int64))
  35. }
  36. // 修改奖池
  37. func modifyAction(userId, gameId, amount int, isChipRoom bool) int {
  38. defer func() {
  39. if err := recover(); err != nil {
  40. log.Error("transaction recover err %v", err)
  41. log.Error("%s", debug.Stack())
  42. }
  43. }()
  44. statement := database.NewStatement()
  45. statement.SetNeedReturnValue(false)
  46. statement.SetOpenRecordSet(false)
  47. statement.SetProcName(getModifyProc(amount, isChipRoom))
  48. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  49. statement.AddParamter("@GameID", database.AdParamInput, database.AdInteger, 4, gameId)
  50. statement.AddParamter("@Amount", database.AdParamInput, database.AdBigint, 8, amount)
  51. statement.AddParamter("@Balance", database.AdParamOutput, database.AdBigint, 8, amount)
  52. sqlstring := statement.GenSql()
  53. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  54. rowLen := len(retRows)
  55. if rowLen <= 0 {
  56. return 0
  57. }
  58. out := int((retRows[0][0]).(int64))
  59. return out
  60. }
  61. func getModifyProc(amount int, isChipRoom bool) string {
  62. if isChipRoom {
  63. if amount >= 0 {
  64. return "Game_JackPotChip_Incr"
  65. }
  66. return "Game_JackPotChip_Sub"
  67. }
  68. if amount >= 0 {
  69. return "Game_JackPot_Incr"
  70. }
  71. return "Game_JackPot_Sub"
  72. }