transaction.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package admanager
  2. import (
  3. "bet24.com/database"
  4. "bet24.com/log"
  5. dbengine "bet24.com/servers/micros/dbengine/proto"
  6. "runtime/debug"
  7. )
  8. // 获取玩家信息 输出参数:本游戏总输赢,当日剩余点击视频数量 每日点击视频总数量,每次点击获取免费次数
  9. func getUserInfo(userId, gameId int) (userWin int, adCount int, totalAdCount int, freeSpinCount int) {
  10. defer func() {
  11. if err := recover(); err != nil {
  12. log.Error("slotuser.getUserInfo transaction recover err %v", err)
  13. log.Error("%s", debug.Stack())
  14. }
  15. }()
  16. statement := database.NewStatement()
  17. statement.SetNeedReturnValue(false)
  18. statement.SetOpenRecordSet(true)
  19. statement.SetProcName("WS_SlotUser_GetInfo")
  20. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  21. statement.AddParamter("@GameId", database.AdParamInput, database.AdInteger, 4, gameId)
  22. sqlstring := statement.GenSql()
  23. //log.Debug(sqlstring)
  24. retRows := dbengine.ExecuteRs(sqlstring)
  25. if len(retRows) <= 0 {
  26. return
  27. }
  28. userWin = int((retRows[0][0]).(int64))
  29. adCount = int((retRows[0][1]).(int64))
  30. totalAdCount = int((retRows[0][2]).(int64))
  31. freeSpinCount = int((retRows[0][3]).(int64))
  32. return
  33. }
  34. // 使用视频获取免费次数
  35. func useAd(userId, gameId int) (succeeded bool, adCount int) {
  36. defer func() {
  37. if err := recover(); err != nil {
  38. log.Error("slotuser.useAd transaction recover err %v", err)
  39. log.Error("%s", debug.Stack())
  40. }
  41. }()
  42. statement := database.NewStatement()
  43. statement.SetNeedReturnValue(false)
  44. statement.SetOpenRecordSet(true)
  45. statement.SetProcName("WS_SlotUser_UseAd")
  46. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  47. statement.AddParamter("@GameID", database.AdParamInput, database.AdInteger, 4, gameId)
  48. sqlstring := statement.GenSql()
  49. //log.Debug(sqlstring)
  50. retRows := dbengine.ExecuteRs(sqlstring)
  51. if len(retRows) <= 0 {
  52. return
  53. }
  54. succeeded = (int((retRows[0][0]).(int64)) == 1)
  55. adCount = int((retRows[0][1]).(int64))
  56. return
  57. }