transcations.go 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. package exchange
  2. import (
  3. "bet24.com/database"
  4. "bet24.com/log"
  5. "bet24.com/servers/coreservice/client"
  6. "bet24.com/servers/coreservice/dbengine"
  7. "encoding/json"
  8. "runtime/debug"
  9. )
  10. func trans_loadExchangeList() []ExchangeInfo {
  11. var list []ExchangeInfo
  12. defer func() {
  13. if err := recover(); err != nil {
  14. log.Error("exchange.trans_loadExchangeList transaction recover err %v", err)
  15. log.Error("%s", debug.Stack())
  16. }
  17. }()
  18. statement := database.NewStatement()
  19. statement.SetNeedReturnValue(false)
  20. statement.SetOpenRecordSet(true)
  21. statement.SetProcName("WS_Exchange_GetList")
  22. sqlstring := statement.GenSql()
  23. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  24. for i := 0; i < len(retRows); i++ {
  25. ret := retRows[i]
  26. var out ExchangeInfo
  27. out.Id = int((ret[0]).(int64))
  28. out.ExchangeType = int((ret[1]).(int64))
  29. out.LeftCount = int((ret[2]).(int64))
  30. limitOnce := int((ret[3]).(int64))
  31. if limitOnce > 0 {
  32. out.LimitOnce = true
  33. }
  34. out.VipNeed = int((ret[4]).(int64))
  35. out.Price = int((ret[5]).(int64))
  36. items := (ret[6]).(string)
  37. if items != "" {
  38. if err := json.Unmarshal([]byte(items), &out.Items); err != nil {
  39. log.Error("exchange.trans_loadExchangeList transaction unmarshal fail %v", err)
  40. return nil
  41. }
  42. }
  43. out.Memo = (ret[7]).(string)
  44. out.VipShow = int((ret[8]).(int64))
  45. out.GameCountShow = int((ret[9]).(int64))
  46. list = append(list, out)
  47. }
  48. return list
  49. }
  50. func trans_userExchange(userId, exchangeId, exchangeType, price, status int, items, remark string) bool {
  51. defer func() {
  52. if err := recover(); err != nil {
  53. log.Error("exchange.trans_userExchange transaction recover err %v", err)
  54. log.Error("%s", debug.Stack())
  55. }
  56. }()
  57. var retCode int
  58. statement := database.NewStatement()
  59. statement.SetNeedReturnValue(false)
  60. statement.SetOpenRecordSet(true)
  61. statement.SetProcName("WS_Exchange_UserExchange")
  62. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  63. statement.AddParamter("@ExchangeID", database.AdParamInput, database.AdInteger, 4, exchangeId)
  64. statement.AddParamter("@ExchangeType", database.AdParamInput, database.AdInteger, 4, exchangeType)
  65. statement.AddParamter("@Price", database.AdParamInput, database.AdInteger, 4, price)
  66. statement.AddParamter("@Items", database.AdParamInput, database.AdVarChar, 128, items)
  67. statement.AddParamter("@Remark", database.AdParamInput, database.AdVarChar, 1024, remark)
  68. statement.AddParamter("@Status", database.AdParamInput, database.AdInteger, 4, status)
  69. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, retCode)
  70. sqlstring := statement.GenSql()
  71. log.Debug(sqlstring)
  72. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  73. if len(retRows) <= 0 {
  74. return false
  75. }
  76. retCode = int((retRows[0][0]).(int64))
  77. return retCode == 1
  78. }
  79. /*
  80. type ExchangeHistory struct {
  81. ExchangeId int //兑换ID
  82. ExchangeType int // 兑换类型(1=奖券兑换金币 2=代理兑换元宝 3=代理兑换电话卡 4=代理兑换RP)
  83. Price int // 价格
  84. Items []item.ItemPack
  85. Remark string //备注
  86. Status int //状态(0=待发货 1=已发货)
  87. Crdate string //时间
  88. }
  89. */
  90. func trans_getExchangeHistory(userId, exchangeId, pageIndex, pageSize int) (int, []client.ExchangeHistory) {
  91. var list []client.ExchangeHistory
  92. defer func() {
  93. if err := recover(); err != nil {
  94. log.Error("exchange.trans_getExchangeHistory transaction recover err %v", err)
  95. log.Error("%s", debug.Stack())
  96. }
  97. }()
  98. var recordCount int
  99. statement := database.NewStatement()
  100. statement.SetNeedReturnValue(false)
  101. statement.SetOpenRecordSet(true)
  102. statement.SetProcName("WS_Exchange_GetHistory")
  103. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  104. statement.AddParamter("@ExchangeID", database.AdParamInput, database.AdInteger, 4, exchangeId)
  105. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, pageIndex)
  106. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, pageSize)
  107. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, recordCount)
  108. sqlstring := statement.GenSql()
  109. //log.Debug(sqlstring)
  110. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  111. rowLen := len(retRows)
  112. if rowLen > 1 {
  113. for i := 0; i < rowLen-1; i++ {
  114. ret := retRows[i]
  115. var out client.ExchangeHistory
  116. out.ExchangeId = int((ret[0]).(int64))
  117. out.ExchangeType = int((ret[1]).(int64))
  118. out.Price = int((ret[2]).(int64))
  119. items := (ret[3]).(string)
  120. if items != "" {
  121. if err := json.Unmarshal([]byte(items), &out.Items); err != nil {
  122. log.Error("exchange.trans_getExchangeHistory transaction unmarshal fail %v", err)
  123. }
  124. }
  125. out.Remark = (ret[4]).(string)
  126. out.Status = int((ret[5]).(int64))
  127. out.Crdate = (ret[6]).(string)
  128. list = append(list, out)
  129. }
  130. }
  131. recordCount = int((retRows[rowLen-1][0]).(int64))
  132. return recordCount, list
  133. }
  134. func trans_updateExchange(exchangeId, leftCount int) int {
  135. defer func() {
  136. if err := recover(); err != nil {
  137. log.Error("transaction recover err %v", err)
  138. log.Error("%s", debug.Stack())
  139. }
  140. }()
  141. retCode := 0
  142. statement := database.NewStatement()
  143. statement.SetNeedReturnValue(false)
  144. statement.SetOpenRecordSet(true)
  145. statement.SetProcName("WS_Exchange_Update")
  146. statement.AddParamter("@ExchangeID", database.AdParamInput, database.AdInteger, 4, exchangeId)
  147. statement.AddParamter("@LeftCount", database.AdParamInput, database.AdInteger, 4, leftCount)
  148. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, retCode)
  149. sqlstring := statement.GenSql()
  150. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  151. if len(retRows) <= 0 {
  152. return retCode
  153. }
  154. retCode = int((retRows[0][0]).(int64))
  155. return retCode
  156. }