transaction.go 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. package video
  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 getSysVideoList() map[int]*video {
  11. defer func() {
  12. if err := recover(); err != nil {
  13. log.Error("transaction recover 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_Video_GetList")
  21. sqlstring := statement.GenSql()
  22. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  23. rowLen := len(retRows)
  24. list := make(map[int]*video, rowLen)
  25. for i := 0; i < rowLen; i++ {
  26. ret := retRows[i]
  27. var out video
  28. out.VideoId = int((ret[0]).(int64))
  29. out.PlayTimes = int((ret[1]).(int64))
  30. awards := (ret[2]).(string)
  31. if len(awards) > 0 {
  32. if err := json.Unmarshal([]byte(awards), &out.Awards); err != nil {
  33. log.Error("video.getSysVideoList awards=%s err=%v", awards, err)
  34. return nil
  35. }
  36. }
  37. list[out.VideoId] = &out
  38. }
  39. return list
  40. }
  41. // 用户视频列表信息
  42. func getUserVideoList(userId int) map[int]*userVideo {
  43. defer func() {
  44. if err := recover(); err != nil {
  45. log.Error("transaction recover err %v", err)
  46. log.Error("%s", debug.Stack())
  47. }
  48. }()
  49. statement := database.NewStatement()
  50. statement.SetNeedReturnValue(false)
  51. statement.SetOpenRecordSet(true)
  52. statement.SetProcName("WS_UserVideo_GetList")
  53. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  54. sqlstring := statement.GenSql()
  55. retrows := dbengine.CenterDB.ExecSql(sqlstring)
  56. rowLen := len(retrows)
  57. list := make(map[int]*userVideo)
  58. for i := 0; i < rowLen; i++ {
  59. ret := retrows[i]
  60. var out userVideo
  61. out.VideoId = int((ret[0]).(int64))
  62. out.PlayTimes = int((ret[1]).(int64))
  63. out.UpdateTime = int((ret[2]).(int64))
  64. list[out.VideoId] = &out
  65. }
  66. return list
  67. }
  68. // 更新用户视频
  69. func updateUserVideo(userId int, userVideo *userVideo, isStat int, funcName string) {
  70. defer func() {
  71. if err := recover(); err != nil {
  72. log.Error("transaction recover err %v", err)
  73. log.Error("%s", debug.Stack())
  74. }
  75. }()
  76. statement := database.NewStatement()
  77. statement.SetNeedReturnValue(false)
  78. statement.SetOpenRecordSet(true)
  79. statement.SetProcName("WS_UserVideo_Update")
  80. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  81. statement.AddParamter("@VideoID", database.AdParamInput, database.AdInteger, 4, userVideo.VideoId)
  82. statement.AddParamter("@PlayTimes", database.AdParamInput, database.AdInteger, 4, userVideo.PlayTimes)
  83. statement.AddParamter("@UpdateTime", database.AdParamInput, database.AdInteger, 4, userVideo.UpdateTime)
  84. statement.AddParamter("@IsStat", database.AdParamInput, database.AdInteger, 4, isStat)
  85. sqlstring := statement.GenSql()
  86. //log.Debug("%s ==> %s", funcName, sqlstring)
  87. dbengine.CenterDB.ExecSql(sqlstring)
  88. }
  89. // 获取结算视频信息列表
  90. func getSysSettleVideoList() []*settleVideo {
  91. defer func() {
  92. if err := recover(); err != nil {
  93. log.Error("transaction recover err %v", err)
  94. log.Error("%s", debug.Stack())
  95. }
  96. }()
  97. statement := database.NewStatement()
  98. statement.SetNeedReturnValue(false)
  99. statement.SetOpenRecordSet(true)
  100. statement.SetProcName("WS_SettleVideo_GetList")
  101. sqlstring := statement.GenSql()
  102. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  103. rowLen := len(retRows)
  104. if rowLen <= 0 {
  105. return nil
  106. }
  107. var list []*settleVideo
  108. for i := 0; i < rowLen; i++ {
  109. ret := retRows[i]
  110. var out settleVideo
  111. out.GameID = int((ret[0]).(int64))
  112. out.LoseAmount = int((ret[1]).(int64))
  113. out.MaxTimes = int((ret[2]).(int64))
  114. out.MaxRate = int((ret[3]).(int64))
  115. list = append(list, &out)
  116. }
  117. return list
  118. }
  119. // 游戏返还视频列表
  120. func getGameSettleVideoList(userId int) []*settleVideoInfo {
  121. defer func() {
  122. if err := recover(); err != nil {
  123. log.Error("transaction recover err %v", err)
  124. log.Error("%s", debug.Stack())
  125. }
  126. }()
  127. var list []*settleVideoInfo
  128. statement := database.NewStatement()
  129. statement.SetNeedReturnValue(false)
  130. statement.SetOpenRecordSet(true)
  131. statement.SetProcName("WS_UserGameSettleVideo_GetList")
  132. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  133. sqlstring := statement.GenSql()
  134. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  135. rowLen := len(retRows)
  136. if rowLen <= 0 {
  137. return list
  138. }
  139. if rowLen > 1 {
  140. for i := 0; i < rowLen-1; i++ {
  141. ret := retRows[i]
  142. var out settleVideoInfo
  143. out.SettleId = int((ret[0]).(int64))
  144. out.GameID = int((ret[1]).(int64))
  145. out.LoseAmount = int((ret[2]).(int64))
  146. out.MaxTimes = int((ret[3]).(int64))
  147. out.SettleTimes = int((ret[4]).(int64))
  148. out.MaxAmount = int((ret[5]).(int64))
  149. out.SettleAmount = int((ret[6]).(int64))
  150. out.TimeStamp = int((ret[7]).(int64))
  151. out.Crdate = (ret[8]).(string)
  152. list = append(list, &out)
  153. }
  154. }
  155. return list
  156. }
  157. // 添加游戏返还视频记录
  158. func addGameSettleVideo(userId int, info *settleVideoInfo) {
  159. defer func() {
  160. if err := recover(); err != nil {
  161. log.Error("transaction recover err %v", err)
  162. log.Error("%s", debug.Stack())
  163. }
  164. }()
  165. statement := database.NewStatement()
  166. statement.SetNeedReturnValue(false)
  167. statement.SetOpenRecordSet(true)
  168. statement.SetProcName("WS_UserGameSettleVideo_Add")
  169. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  170. statement.AddParamter("@GameID", database.AdParamInput, database.AdInteger, 4, info.GameID)
  171. statement.AddParamter("@LoseAmount", database.AdParamInput, database.AdBigint, 8, info.LoseAmount)
  172. statement.AddParamter("@MaxTimes", database.AdParamInput, database.AdInteger, 4, info.MaxTimes)
  173. statement.AddParamter("@SettleTimes", database.AdParamInput, database.AdInteger, 4, info.SettleTimes)
  174. statement.AddParamter("@MaxAmount", database.AdParamInput, database.AdBigint, 8, info.MaxAmount)
  175. statement.AddParamter("@SettleAmount", database.AdParamInput, database.AdBigint, 8, info.SettleAmount)
  176. statement.AddParamter("@Crdate", database.AdParamInput, database.AdVarChar, 20, info.Crdate)
  177. sqlstring := statement.GenSql()
  178. // log.Debug(sqlstring)
  179. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  180. if len(retRows) <= 0 {
  181. return
  182. }
  183. info.SettleId = int((retRows[0][0]).(int64))
  184. return
  185. }
  186. // 游戏返还视频奖励
  187. func awardGameSettleVideo(userId int, info *settleVideoInfo) {
  188. defer func() {
  189. if err := recover(); err != nil {
  190. log.Error("transaction recover err %v", err)
  191. log.Error("%s", debug.Stack())
  192. }
  193. }()
  194. statement := database.NewStatement()
  195. statement.SetNeedReturnValue(false)
  196. statement.SetOpenRecordSet(true)
  197. statement.SetProcName("WS_UserGameSettleVideo_Award")
  198. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  199. statement.AddParamter("@SettleID", database.AdParamInput, database.AdInteger, 4, info.SettleId)
  200. statement.AddParamter("@SettleTimes", database.AdParamInput, database.AdInteger, 4, info.SettleTimes)
  201. statement.AddParamter("@SettleAmount", database.AdParamInput, database.AdBigint, 8, info.SettleAmount)
  202. sqlstring := statement.GenSql()
  203. // log.Debug(sqlstring)
  204. dbengine.CenterDB.ExecSql(sqlstring)
  205. return
  206. }