sign.go 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package dao
  2. import (
  3. "runtime/debug"
  4. "bet24.com/database"
  5. "bet24.com/log"
  6. )
  7. //签到列表
  8. type (
  9. signList_in struct {
  10. UserID int //用户ID
  11. BeginTime string //开始时间
  12. EndTime string //截止时间
  13. PageIndex int //页索引
  14. PageSize int //页大小
  15. }
  16. signListModel struct {
  17. PartnerName string //渠道名称
  18. UserID int //用户ID
  19. NickName string //昵称
  20. SignID int //签到ID
  21. SignTime string //签到时间
  22. Day int //连签天数
  23. DaySet string //已领奖励
  24. }
  25. signList_out struct {
  26. RecordCount int
  27. List []signListModel
  28. }
  29. signList struct {
  30. database.Trans_base
  31. In signList_in
  32. Out signList_out
  33. }
  34. )
  35. func NewSignList() *signList {
  36. return &signList{}
  37. }
  38. func (this *signList) DoAction(ch chan<- interface{}) {
  39. defer func() {
  40. if err := recover(); err != nil {
  41. log.Error("transaction recover err %v", err)
  42. log.Error("%s", debug.Stack())
  43. }
  44. if ch != nil {
  45. ch <- this
  46. }
  47. }()
  48. statement := database.NewStatement()
  49. statement.SetNeedReturnValue(false)
  50. statement.SetOpenRecordSet(true)
  51. statement.SetProcName("Manage_UserSign_GetList")
  52. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  53. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, this.In.BeginTime)
  54. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, this.In.EndTime)
  55. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, this.In.PageIndex)
  56. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, this.In.PageSize)
  57. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, this.Out.RecordCount)
  58. sqlstring := statement.GenSql()
  59. retRows := CenterDB.ExecSql(sqlstring)
  60. rowLen := len(retRows)
  61. if rowLen <= 0 {
  62. this.State = false
  63. return
  64. }
  65. this.State = true
  66. if rowLen > 1 {
  67. this.Out.List = make([]signListModel, rowLen-1)
  68. for i := 0; i < rowLen-1; i++ {
  69. ret := retRows[i]
  70. out := &this.Out.List[i]
  71. out.UserID = int((*ret[0].(*interface{})).(int64))
  72. out.NickName = (*ret[1].(*interface{})).(string)
  73. if info := tagMgr.getInfo(out.UserID); info != nil {
  74. out.NickName = info.NickName
  75. }
  76. out.SignID = int((*ret[2].(*interface{})).(int64))
  77. out.SignTime = (*ret[3].(*interface{})).(string)
  78. out.Day = int((*ret[4].(*interface{})).(int64))
  79. out.DaySet = (*ret[5].(*interface{})).(string)
  80. out.PartnerName = (*ret[6].(*interface{})).(string)
  81. }
  82. }
  83. this.Out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  84. }