transaction.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package newusergift
  2. import (
  3. "runtime/debug"
  4. "bet24.com/servers/common"
  5. "encoding/json"
  6. "bet24.com/database"
  7. "bet24.com/log"
  8. "bet24.com/servers/coreservice/dbengine"
  9. )
  10. func getConfig(isNewYear bool) []GiftConfig {
  11. defer func() {
  12. if err := recover(); err != nil {
  13. log.Release("newusergift.getConfig transaction recover %v", err)
  14. log.Release("%s", debug.Stack())
  15. }
  16. }()
  17. statement := database.NewStatement()
  18. statement.SetNeedReturnValue(false)
  19. statement.SetOpenRecordSet(true)
  20. if isNewYear {
  21. statement.SetProcName("WS_NewYearGift_GetConfig")
  22. //statement.SetProcName("WS_NewUserGift_GetConfig")
  23. } else {
  24. statement.SetProcName("WS_NewUserGift_GetConfig")
  25. }
  26. sqlstring := statement.GenSql()
  27. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  28. rowLen := len(retRows)
  29. var rets []GiftConfig
  30. for i := 0; i < rowLen; i++ {
  31. ret := retRows[i]
  32. var out GiftConfig
  33. out.DayIndex = int((ret[0]).(int64))
  34. gifts := (ret[1]).(string)
  35. if gifts != "" {
  36. if err := json.Unmarshal([]byte(gifts), &out.Items); err != nil {
  37. log.Error("newusergift.getConfig unmarshal err %v", err)
  38. return nil
  39. }
  40. }
  41. rets = append(rets, out)
  42. }
  43. return rets
  44. }
  45. func getUserGiftInfo(userId int, isNewYear bool) []UserGift {
  46. defer func() {
  47. if err := recover(); err != nil {
  48. log.Release("newusergift.getUserGiftInfo transaction recover %v", err)
  49. log.Release("%s", debug.Stack())
  50. }
  51. }()
  52. statement := database.NewStatement()
  53. statement.SetNeedReturnValue(false)
  54. statement.SetOpenRecordSet(true)
  55. if isNewYear {
  56. //statement.SetProcName("WS_NewUserGift_GetUserGift")
  57. statement.SetProcName("WS_NewYearGift_GetUserGift")
  58. } else {
  59. statement.SetProcName("WS_NewUserGift_GetUserGift")
  60. }
  61. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  62. sqlstring := statement.GenSql()
  63. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  64. rowLen := len(retRows)
  65. var rets []UserGift
  66. dayIndex := common.GetDayIndex(common.GetTimeStamp())
  67. for i := 0; i < rowLen; i++ {
  68. ret := retRows[i]
  69. var out UserGift
  70. out.DayIndex = int((ret[0]).(int64))
  71. out.Status = int((ret[1]).(int64))
  72. crdateStr := (ret[2]).(string)
  73. crdate := common.ParseTime(crdateStr)
  74. giftDayIndex := common.GetDayIndex(common.GetStamp(crdate))
  75. // 判断今天是否可领取
  76. if out.Status == 0 {
  77. // 可领取
  78. if giftDayIndex == dayIndex {
  79. out.Status = Receiving
  80. } else if giftDayIndex < dayIndex { // 过期
  81. out.Status = Overdue
  82. }
  83. }
  84. rets = append(rets, out)
  85. }
  86. return rets
  87. }
  88. func userReceiveGift(userId int, dayIndex int, isNewYear bool) {
  89. defer func() {
  90. if err := recover(); err != nil {
  91. log.Release("newusergift.getUserGiftInfo transaction recover %v", err)
  92. log.Release("%s", debug.Stack())
  93. }
  94. }()
  95. statement := database.NewStatement()
  96. statement.SetNeedReturnValue(false)
  97. statement.SetOpenRecordSet(true)
  98. if isNewYear {
  99. statement.SetProcName("WS_NewYearGift_Receive")
  100. } else {
  101. statement.SetProcName("WS_NewUserGift_Receive")
  102. }
  103. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  104. statement.AddParamter("@DayIndex", database.AdParamInput, database.AdInteger, 4, dayIndex)
  105. sqlstring := statement.GenSql()
  106. dbengine.CenterDB.ExecSql(sqlstring)
  107. }