transaction.go 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. package signin
  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 getSignList() []Signin {
  11. defer func() {
  12. if err := recover(); err != nil {
  13. log.Error("transaction sign.getSignList 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_Sign_GetList")
  21. sqlstring := statement.GenSql()
  22. log.Debug(sqlstring)
  23. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  24. rowLen := len(retRows)
  25. var signs []Signin
  26. for i := 0; i < rowLen; i++ {
  27. ret := retRows[i]
  28. var out Signin
  29. out.Id = int((ret[0]).(int64))
  30. award := (ret[1]).(string)
  31. out.DoubleVipLevel = int((ret[2]).(int64))
  32. if award != "" {
  33. if err := json.Unmarshal([]byte(award), &out.Award); err != nil {
  34. log.Error("sign.getSignList unmarshal err %v ==>Id=%d award=%s", err, out.Id, award)
  35. return nil
  36. }
  37. }
  38. signs = append(signs, out)
  39. }
  40. return signs
  41. }
  42. // 系统连续签到数值列表
  43. func getContinueAwardList() []*ContinueAward {
  44. defer func() {
  45. if err := recover(); err != nil {
  46. log.Error("sign.getContinueAwardList transaction err %v", err)
  47. log.Error("%s", debug.Stack())
  48. }
  49. }()
  50. statement := database.NewStatement()
  51. statement.SetNeedReturnValue(false)
  52. statement.SetOpenRecordSet(true)
  53. statement.SetProcName("WS_Sign_GetContinueList")
  54. sqlstring := statement.GenSql()
  55. log.Debug(sqlstring)
  56. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  57. rowLen := len(retRows)
  58. var awards []*ContinueAward
  59. for i := 0; i < rowLen; i++ {
  60. ret := retRows[i]
  61. var out ContinueAward
  62. out.Day = int((ret[0]).(int64))
  63. award := (ret[1]).(string)
  64. if award != "" {
  65. if err := json.Unmarshal([]byte(award), &out.Award); err != nil {
  66. log.Error("sign.getContinueAwardList unmarshal err %v", err)
  67. return nil
  68. }
  69. }
  70. awards = append(awards, &out)
  71. }
  72. return awards
  73. }
  74. // 用户签到列表
  75. func userSignList(userId int) []*Signin {
  76. defer func() {
  77. if err := recover(); err != nil {
  78. log.Error("sign.userSignList transaction recover err %v", err)
  79. log.Error("%s", debug.Stack())
  80. }
  81. }()
  82. statement := database.NewStatement()
  83. statement.SetNeedReturnValue(false)
  84. statement.SetOpenRecordSet(true)
  85. statement.SetProcName("WS_UserSign_GetList")
  86. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  87. sqlstring := statement.GenSql()
  88. log.Debug(sqlstring)
  89. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  90. rowLen := len(retRows)
  91. var signs []*Signin
  92. for i := 0; i < rowLen; i++ {
  93. ret := retRows[i]
  94. var out Signin
  95. out.Id = int((ret[0]).(int64))
  96. out.SignTime = int((ret[1]).(int64))
  97. if out.SignTime < 0 {
  98. out.SignTime = 0
  99. }
  100. signs = append(signs, &out)
  101. }
  102. return signs
  103. }
  104. // 更新用户签到信息
  105. func updateUserSign(userId, signId, signTime int) {
  106. defer func() {
  107. if err := recover(); err != nil {
  108. log.Error("sign.updateUserSign transaction recover err %v", err)
  109. log.Error("%s", debug.Stack())
  110. }
  111. }()
  112. statement := database.NewStatement()
  113. statement.SetNeedReturnValue(false)
  114. statement.SetOpenRecordSet(true)
  115. statement.SetProcName("WS_UserSign_Update")
  116. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  117. statement.AddParamter("@SignID", database.AdParamInput, database.AdInteger, 4, signId)
  118. statement.AddParamter("@SignTime", database.AdParamInput, database.AdInteger, 4, signTime)
  119. sqlstring := statement.GenSql()
  120. log.Debug(sqlstring)
  121. dbengine.CenterDB.ExecSql(sqlstring)
  122. }
  123. // 用户连续签到信息
  124. func userContinueSignList(userId int) []*ContinueAward {
  125. defer func() {
  126. if err := recover(); err != nil {
  127. log.Error("sign.userContinueSignList transaction recover err %v", err)
  128. log.Error("%s", debug.Stack())
  129. }
  130. }()
  131. statement := database.NewStatement()
  132. statement.SetNeedReturnValue(false)
  133. statement.SetOpenRecordSet(true)
  134. statement.SetProcName("WS_UserSign_GetContinueList")
  135. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  136. sqlstring := statement.GenSql()
  137. log.Debug(sqlstring)
  138. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  139. rowLen := len(retRows)
  140. var continues []*ContinueAward
  141. for i := 0; i < rowLen; i++ {
  142. ret := retRows[i]
  143. var out ContinueAward
  144. out.Day = int((ret[0]).(int64))
  145. out.Status = int((ret[1]).(int64))
  146. continues = append(continues, &out)
  147. }
  148. return continues
  149. }
  150. // 更新用户连续签到信息
  151. func updateUserSignContinue(userId, day, status int) {
  152. defer func() {
  153. if err := recover(); err != nil {
  154. log.Error("sign.updateUserSignContinue transaction recover err %v", err)
  155. log.Error("%s", debug.Stack())
  156. }
  157. }()
  158. statement := database.NewStatement()
  159. statement.SetNeedReturnValue(false)
  160. statement.SetOpenRecordSet(true)
  161. statement.SetProcName("WS_UserSign_UpdateContinue")
  162. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  163. statement.AddParamter("@Day", database.AdParamInput, database.AdInteger, 4, day)
  164. statement.AddParamter("@Status", database.AdParamInput, database.AdInteger, 4, status)
  165. sqlstring := statement.GenSql()
  166. //log.Debug(sqlstring)
  167. dbengine.CenterDB.ExecSql(sqlstring)
  168. }