exchange.go 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. package dao
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "runtime/debug"
  6. "strconv"
  7. "bet24.com/database"
  8. "bet24.com/log"
  9. item "bet24.com/servers/micros/item_inventory/proto"
  10. )
  11. // 兑换历史
  12. type (
  13. exchangeHistory_in struct {
  14. Id int // 标识
  15. UserID int // 用户ID
  16. Memo string // 备注
  17. BeginTime string // 开始时间
  18. EndTime string // 截止时间
  19. PageIndex int // 页索引
  20. PageSize int // 页大小
  21. Status int // -1=所有 0=待发货 1=已发货
  22. }
  23. exchangeHistoryModel struct {
  24. Id int // 标识
  25. UserID int // 用户ID
  26. NickName string // 昵称
  27. ExchangeID int // 兑换ID
  28. Price string // 价格
  29. Items string
  30. ItemPack []item.ItemPack `json:"-"` // 物品
  31. Item string // 物品
  32. Remark string // 备注
  33. IsMust int // 是否必须 1=必须 其他否
  34. Status int // 状态
  35. Crdate string // 时间
  36. ExchangeType int // 兑换类型(1=奖券兑换金币 2=代理兑换元宝 3=代理兑换电话卡 4=代理兑换RP)
  37. }
  38. exchangeHistory_out struct {
  39. RecordCount int // 记录数
  40. List []exchangeHistoryModel
  41. }
  42. exchangeHistory struct {
  43. database.Trans_base
  44. In exchangeHistory_in
  45. Out exchangeHistory_out
  46. }
  47. )
  48. func NewExchangeHistory() *exchangeHistory {
  49. return &exchangeHistory{}
  50. }
  51. func (this *exchangeHistory) DoAction() {
  52. defer func() {
  53. if err := recover(); err != nil {
  54. log.Error("transaction recover err %v", err)
  55. log.Error("%s", debug.Stack())
  56. }
  57. }()
  58. statement := database.NewStatement()
  59. statement.SetNeedReturnValue(false)
  60. statement.SetOpenRecordSet(true)
  61. statement.SetProcName("Manage_Exchange_GetHistoryList")
  62. statement.AddParamter("@Id", database.AdParamInput, database.AdInteger, 4, this.In.Id)
  63. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  64. statement.AddParamter("@Memo", database.AdParamInput, database.AdVarChar, 1024, this.In.Memo)
  65. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, this.In.BeginTime)
  66. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, this.In.EndTime)
  67. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, this.In.PageIndex)
  68. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, this.In.PageSize)
  69. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, this.Out.RecordCount)
  70. statement.AddParamter("@Status", database.AdParamInput, database.AdInteger, 4, this.In.Status)
  71. sqlstring := statement.GenSql()
  72. // log.Debug(sqlstring)
  73. retRows := CenterDB.ExecSql(sqlstring)
  74. rowLen := len(retRows)
  75. if rowLen <= 0 {
  76. return
  77. }
  78. if rowLen > 1 {
  79. this.Out.List = make([]exchangeHistoryModel, rowLen-1)
  80. for i := 0; i < rowLen-1; i++ {
  81. ret := retRows[i]
  82. out := &this.Out.List[i]
  83. out.Id = int((*ret[0].(*interface{})).(int64))
  84. out.UserID = int((*ret[1].(*interface{})).(int64))
  85. out.NickName = (*ret[2].(*interface{})).(string)
  86. if info := tagMgr.getInfo(out.UserID); info != nil {
  87. out.NickName = info.NickName
  88. }
  89. out.ExchangeID = int((*ret[3].(*interface{})).(int64))
  90. price := string((*ret[4].(*interface{})).([]byte))
  91. fPrice, _ := strconv.ParseFloat(price, 64)
  92. out.Price = fmt.Sprintf("%.2f", fPrice)
  93. out.Items = (*ret[5].(*interface{})).(string)
  94. if err := json.Unmarshal([]byte(out.Items), &out.ItemPack); err != nil {
  95. log.Error("ExchangeHistory json unmarshal fail %v", err)
  96. }
  97. out.Remark = (*ret[6].(*interface{})).(string)
  98. out.Status = int((*ret[7].(*interface{})).(int64))
  99. out.Crdate = (*ret[8].(*interface{})).(string)
  100. out.ExchangeType = int((*ret[9].(*interface{})).(int64))
  101. }
  102. }
  103. this.Out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  104. }
  105. // 兑换历史
  106. type (
  107. exchangeCash_in struct {
  108. UserID int // 用户ID
  109. Memo string // 备注
  110. BeginTime string // 开始时间
  111. EndTime string // 截止时间
  112. PageIndex int // 页索引
  113. PageSize int // 页大小
  114. Status int // -1=所有 0=待发货 1=已发货
  115. }
  116. exchangeCash_out struct {
  117. RecordCount int // 记录数
  118. List []exchangeHistoryModel
  119. }
  120. exchangeCash struct {
  121. database.Trans_base
  122. In exchangeCash_in
  123. Out exchangeCash_out
  124. }
  125. )
  126. func NewExchangeCash() *exchangeCash {
  127. return &exchangeCash{}
  128. }
  129. func (this *exchangeCash) DoAction() {
  130. defer func() {
  131. if err := recover(); err != nil {
  132. log.Error("transaction recover err %v", err)
  133. log.Error("%s", debug.Stack())
  134. }
  135. }()
  136. statement := database.NewStatement()
  137. statement.SetNeedReturnValue(false)
  138. statement.SetOpenRecordSet(true)
  139. statement.SetProcName("Manage_Exchange_GetCashList")
  140. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  141. statement.AddParamter("@Memo", database.AdParamInput, database.AdVarChar, 1024, this.In.Memo)
  142. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, this.In.BeginTime)
  143. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, this.In.EndTime)
  144. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, this.In.PageIndex)
  145. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, this.In.PageSize)
  146. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, this.Out.RecordCount)
  147. statement.AddParamter("@Status", database.AdParamInput, database.AdInteger, 4, this.In.Status)
  148. sqlstring := statement.GenSql()
  149. // log.Debug(sqlstring)
  150. retRows := CenterDB.ExecSql(sqlstring)
  151. rowLen := len(retRows)
  152. if rowLen <= 0 {
  153. return
  154. }
  155. if rowLen > 1 {
  156. this.Out.List = make([]exchangeHistoryModel, rowLen-1)
  157. for i := 0; i < rowLen-1; i++ {
  158. ret := retRows[i]
  159. out := &this.Out.List[i]
  160. out.Id = int((*ret[0].(*interface{})).(int64))
  161. out.UserID = int((*ret[1].(*interface{})).(int64))
  162. out.NickName = (*ret[2].(*interface{})).(string)
  163. if info := tagMgr.getInfo(out.UserID); info != nil {
  164. out.NickName = info.NickName
  165. }
  166. out.ExchangeID = int((*ret[3].(*interface{})).(int64))
  167. price := string((*ret[4].(*interface{})).([]byte))
  168. fPrice, _ := strconv.ParseFloat(price, 64)
  169. out.Price = fmt.Sprintf("%.2f", fPrice)
  170. out.Items = (*ret[5].(*interface{})).(string)
  171. if err := json.Unmarshal([]byte(out.Items), &out.ItemPack); err != nil {
  172. log.Error("ExchangeHistory json unmarshal fail %v", err)
  173. }
  174. out.Remark = (*ret[6].(*interface{})).(string)
  175. out.Status = int((*ret[7].(*interface{})).(int64))
  176. out.Crdate = (*ret[8].(*interface{})).(string)
  177. out.ExchangeType = int((*ret[9].(*interface{})).(int64))
  178. }
  179. }
  180. this.Out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  181. }
  182. // 修改兑换历史
  183. type (
  184. exchangeHistoryUpdate_in struct {
  185. OpUserID int // 操作员ID
  186. OpUserName string // 操作员名称
  187. Id int // 兑换历史标识
  188. Status int // 状态(0=待发货 1=已发货)
  189. Remark string // 备注(格式:SNG比赛ID,手机号)
  190. IpAddress string // ip地址
  191. UserID int // 用户ID
  192. Items string // 道具
  193. Price int // 价格
  194. ExchangeType int // 兑换类型(1=奖券兑换金币 2=代理兑换元宝 3=代理兑换电话卡 4=代理兑换RP 5=金币提现)
  195. }
  196. exchangeHistoryUpdate_out struct {
  197. RetCode int // 操作结果
  198. ErrorMsg string // 操作描述
  199. Remark string // 备注
  200. }
  201. exchangeHistoryUpdate struct {
  202. database.Trans_base
  203. In exchangeHistoryUpdate_in
  204. Out exchangeHistoryUpdate_out
  205. }
  206. )
  207. func NewExchangeHistoryUpdate() *exchangeHistoryUpdate {
  208. return &exchangeHistoryUpdate{}
  209. }
  210. func (this *exchangeHistoryUpdate) DoAction() {
  211. defer func() {
  212. if err := recover(); err != nil {
  213. log.Error("transaction recover err %v", err)
  214. log.Error("%s", debug.Stack())
  215. }
  216. }()
  217. statement := database.NewStatement()
  218. statement.SetNeedReturnValue(false)
  219. statement.SetOpenRecordSet(true)
  220. statement.SetProcName("Manage_Exchange_UpdateHistory")
  221. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, this.In.OpUserID)
  222. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, this.In.OpUserName)
  223. statement.AddParamter("@Id", database.AdParamInput, database.AdInteger, 4, this.In.Id)
  224. statement.AddParamter("@Status", database.AdParamInput, database.AdInteger, 4, this.In.Status)
  225. statement.AddParamter("@Remark", database.AdParamInput, database.AdVarChar, 128, this.In.Remark)
  226. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, this.In.IpAddress)
  227. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, this.Out.RetCode)
  228. statement.AddParamter("@NewRemark", database.AdParamOutput, database.AdNVarChar, 1024, this.Out.Remark)
  229. sqlstring := statement.GenSql()
  230. // log.Debug(sqlstring)
  231. retRows := CenterDB.ExecSql(sqlstring)
  232. if len(retRows) <= 0 {
  233. return
  234. }
  235. this.Out.RetCode = int((*retRows[0][0].(*interface{})).(int64))
  236. this.Out.Remark = (*retRows[0][1].(*interface{})).(string)
  237. if this.Out.RetCode == 1 {
  238. this.Out.ErrorMsg = "修改成功"
  239. } else {
  240. this.Out.ErrorMsg = "修改失败"
  241. }
  242. }