transaction.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package award
  2. import (
  3. "encoding/json"
  4. "runtime/debug"
  5. "bet24.com/database"
  6. "bet24.com/log"
  7. "bet24.com/servers/coreservice/dbengine"
  8. )
  9. // 系统信息
  10. func getSysInfo() []*awardInfo {
  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. statement := database.NewStatement()
  18. statement.SetNeedReturnValue(false)
  19. statement.SetOpenRecordSet(true)
  20. statement.SetProcName("WS_UserAward_GetSysInfo")
  21. sqlString := statement.GenSql()
  22. retRows := dbengine.CenterDB.ExecSql(sqlString)
  23. rowLen := len(retRows)
  24. if rowLen <= 0 {
  25. return nil
  26. }
  27. var list []*awardInfo
  28. for i := 0; i < rowLen; i++ {
  29. ret := retRows[i]
  30. var out awardInfo
  31. out.ActiveID = int((ret[0]).(int64))
  32. out.ActiveName = (ret[1]).(string)
  33. out.TotalTimes = int((ret[2]).(int64))
  34. if awards := (ret[3]).(string); len(awards) > 0 {
  35. if err := json.Unmarshal([]byte(awards), &out.Awards); err != nil {
  36. log.Error("award.getSysInfo unmarshal fail %v", err)
  37. }
  38. }
  39. out.PerDay = int((ret[4]).(int64))
  40. list = append(list, &out)
  41. }
  42. return list
  43. }
  44. // 发送奖励
  45. func sendAward(userId, activeId, totalTimes, perDay int, ipAddress string) int {
  46. defer func() {
  47. if err := recover(); err != nil {
  48. log.Error("transaction recover err %v", err)
  49. log.Error("%s", debug.Stack())
  50. }
  51. }()
  52. statement := database.NewStatement()
  53. statement.SetNeedReturnValue(false)
  54. statement.SetOpenRecordSet(true)
  55. statement.SetProcName("WS_UserAward_Send")
  56. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  57. statement.AddParamter("@ActiveID", database.AdParamInput, database.AdInteger, 4, activeId)
  58. statement.AddParamter("@TotalTimes", database.AdParamInput, database.AdInteger, 4, totalTimes)
  59. statement.AddParamter("@PerDay", database.AdParamInput, database.AdInteger, 4, perDay)
  60. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, ipAddress)
  61. sqlString := statement.GenSql()
  62. retRows := dbengine.CenterDB.ExecSql(sqlString)
  63. if len(retRows) <= 0 {
  64. return 0
  65. }
  66. return int((retRows[0][0]).(int64))
  67. }