item.go 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. package dao
  2. import (
  3. "bet24.com/servers/adminserver/ip"
  4. "runtime/debug"
  5. "strconv"
  6. "bet24.com/database"
  7. "bet24.com/log"
  8. )
  9. // 用户道具日志
  10. type (
  11. userItemLog_in struct {
  12. UserID int //用户ID
  13. BeginTime string //开始时间
  14. EndTime string //截止时间
  15. PageIndex int //页索引
  16. PageSize int //页大小
  17. ItemID int // 道具ID
  18. }
  19. userItemLogModel struct {
  20. LogID int //日志ID
  21. UserID int //用户ID
  22. NickName string //昵称
  23. ItemID int //道具ID
  24. ItemName string //道具名称
  25. CurrCount int //当前数量
  26. WantCount int //修改数量
  27. StillCount int //剩余数量
  28. Remark string //备注
  29. IPAddress string //IP地址
  30. Crdate string //时间
  31. }
  32. userItemLog_out struct {
  33. RecordCount int
  34. List []userItemLogModel
  35. }
  36. userItemLog struct {
  37. database.Trans_base
  38. In userItemLog_in
  39. Out userItemLog_out
  40. }
  41. )
  42. func NewUserItemLog() *userItemLog {
  43. return &userItemLog{}
  44. }
  45. func (this *userItemLog) DoAction(ch chan<- interface{}) {
  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. if ch != nil {
  52. ch <- this
  53. }
  54. }()
  55. statement := database.NewStatement()
  56. statement.SetNeedReturnValue(false)
  57. statement.SetOpenRecordSet(true)
  58. statement.SetProcName("Manage_UserItem_GetLog")
  59. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  60. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, this.In.BeginTime)
  61. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, this.In.EndTime)
  62. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, this.In.PageIndex)
  63. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, this.In.PageSize)
  64. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, this.Out.RecordCount)
  65. statement.AddParamter("@ItemID", database.AdParamInput, database.AdInteger, 4, this.In.ItemID)
  66. sqlstring := statement.GenSql()
  67. retRows := CenterDB.ExecSql(sqlstring)
  68. rowLen := len(retRows)
  69. if rowLen <= 0 {
  70. this.State = false
  71. return
  72. }
  73. this.State = true
  74. if rowLen > 1 {
  75. this.Out.List = make([]userItemLogModel, rowLen-1)
  76. for i := 0; i < rowLen-1; i++ {
  77. ret := retRows[i]
  78. out := &this.Out.List[i]
  79. out.LogID = int((*ret[0].(*interface{})).(int64))
  80. out.UserID = int((*ret[1].(*interface{})).(int64))
  81. out.NickName = (*ret[2].(*interface{})).(string)
  82. if info := tagMgr.getInfo(out.UserID); info != nil {
  83. out.NickName = info.NickName
  84. }
  85. out.ItemID = int((*ret[3].(*interface{})).(int64))
  86. out.CurrCount = int((*ret[4].(*interface{})).(int64))
  87. out.WantCount = int((*ret[5].(*interface{})).(int64))
  88. out.StillCount = int((*ret[6].(*interface{})).(int64))
  89. out.Remark = (*ret[7].(*interface{})).(string)
  90. out.IPAddress = (*ret[8].(*interface{})).(string)
  91. out.IPAddress = ip.GetCountryAndRegion(out.IPAddress, false)
  92. out.Crdate = (*ret[9].(*interface{})).(string)
  93. out.ItemName = (*ret[10].(*interface{})).(string)
  94. }
  95. }
  96. this.Out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  97. }
  98. // 用户道具列表
  99. type (
  100. userItemList_in struct {
  101. UserID int //用户ID
  102. }
  103. userItemListModel struct {
  104. UserItemID int //用户道具ID
  105. ItemID int //道具ID
  106. ItemName string //道具名称
  107. ItemCount int //道具数
  108. Start string //开始时间
  109. Duration int //持续时间(叠加)
  110. EnegyPoint int //道具能量
  111. }
  112. userItemList_out struct {
  113. RecordCount int
  114. List []userItemListModel
  115. }
  116. userItemList struct {
  117. database.Trans_base
  118. In userItemList_in
  119. Out userItemList_out
  120. }
  121. )
  122. func NewUserItemList() *userItemList {
  123. return &userItemList{}
  124. }
  125. func (this *userItemList) DoAction(ch chan<- interface{}) {
  126. defer func() {
  127. if err := recover(); err != nil {
  128. log.Error("transaction recover err %v", err)
  129. log.Error("%s", debug.Stack())
  130. }
  131. if ch != nil {
  132. ch <- this
  133. }
  134. }()
  135. statement := database.NewStatement()
  136. statement.SetNeedReturnValue(false)
  137. statement.SetOpenRecordSet(true)
  138. statement.SetProcName("Manage_UserItem_GetList")
  139. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  140. sqlstring := statement.GenSql()
  141. retRows := CenterDB.ExecSql(sqlstring)
  142. rowLen := len(retRows)
  143. if rowLen <= 0 {
  144. this.State = false
  145. return
  146. }
  147. this.State = true
  148. this.Out.List = make([]userItemListModel, rowLen)
  149. for i := 0; i < rowLen; i++ {
  150. ret := retRows[i]
  151. out := &this.Out.List[i]
  152. out.UserItemID = int((*ret[0].(*interface{})).(int64))
  153. out.ItemID = int((*ret[1].(*interface{})).(int64))
  154. out.ItemCount = int((*ret[2].(*interface{})).(int64))
  155. out.Start = (*ret[3].(*interface{})).(string)
  156. out.Duration = int((*ret[4].(*interface{})).(int64))
  157. out.EnegyPoint = int((*ret[5].(*interface{})).(int64))
  158. out.ItemName = strconv.Itoa(out.ItemID)
  159. }
  160. this.Out.RecordCount = rowLen
  161. }