trans_black.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package database
  2. import (
  3. "runtime/debug"
  4. "bet24.com/servers/common"
  5. "bet24.com/database"
  6. "bet24.com/log"
  7. pb "bet24.com/servers/micros/audioroom/proto"
  8. dbengine "bet24.com/servers/micros/dbengine/proto"
  9. )
  10. // 黑名单列表
  11. func GetBlackList(roomId int) []pb.BlackInfo {
  12. defer func() {
  13. if err := recover(); err != nil {
  14. log.Error("transaction recover err %v", err)
  15. log.Error("%s", debug.Stack())
  16. }
  17. }()
  18. var list []pb.BlackInfo
  19. statement := database.NewStatement()
  20. statement.SetNeedReturnValue(false)
  21. statement.SetOpenRecordSet(true)
  22. statement.SetProcName("WS_AudioRoom_GetBlackList")
  23. statement.AddParamter("@RoomID", database.AdParamInput, database.AdInteger, 4, roomId)
  24. sqlString := statement.GenSql()
  25. retRows := dbengine.ExecuteRs(sqlString)
  26. rowLen := len(retRows)
  27. if rowLen <= 0 {
  28. return list
  29. }
  30. for i := 0; i < rowLen; i++ {
  31. ret := retRows[i]
  32. userId := int(ret[0].(int64))
  33. blackType := int(ret[1].(int64))
  34. expireTimeStamp := int(ret[2].(int64))
  35. // 过期数据
  36. if expireTimeStamp <= common.GetTimeStamp() {
  37. continue
  38. }
  39. isNew := true
  40. // 判断是否已存在
  41. for j := 0; j < len(list); j++ {
  42. if list[j].UserId != userId {
  43. continue
  44. }
  45. // 追加到数组里
  46. list[j].BlackTypes = append(list[j].BlackTypes, pb.BlackType{
  47. BlackType: blackType,
  48. ExpireTimeStamp: expireTimeStamp,
  49. })
  50. isNew = false
  51. break
  52. }
  53. if !isNew {
  54. continue
  55. }
  56. // 新增数据
  57. var info pb.BlackInfo
  58. info.UserId = userId
  59. info.BlackTypes = append(info.BlackTypes, pb.BlackType{
  60. BlackType: blackType,
  61. ExpireTimeStamp: expireTimeStamp,
  62. })
  63. list = append(list, info)
  64. }
  65. return list
  66. }
  67. // 拉入黑名单
  68. func AddBlack(roomId, userId, blackType, expireTime int) int {
  69. defer func() {
  70. if err := recover(); err != nil {
  71. log.Error("transaction recover err %v", err)
  72. log.Error("%s", debug.Stack())
  73. }
  74. }()
  75. statement := database.NewStatement()
  76. statement.SetNeedReturnValue(false)
  77. statement.SetOpenRecordSet(true)
  78. statement.SetProcName("WS_AudioRoom_AddBlack")
  79. statement.AddParamter("@RoomID", database.AdParamInput, database.AdInteger, 4, roomId)
  80. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  81. statement.AddParamter("@BlackType", database.AdParamInput, database.AdInteger, 4, blackType)
  82. statement.AddParamter("@ExpireTime", database.AdParamInput, database.AdInteger, 4, expireTime)
  83. sqlString := statement.GenSql()
  84. retRows := dbengine.ExecuteRs(sqlString)
  85. if len(retRows) <= 0 {
  86. return 0
  87. }
  88. return int(retRows[0][0].(int64))
  89. }
  90. // 移除黑名单
  91. func RemoveBlack(roomId, userId, blackType int) int {
  92. defer func() {
  93. if err := recover(); err != nil {
  94. log.Error("transaction recover err %v", err)
  95. log.Error("%s", debug.Stack())
  96. }
  97. }()
  98. statement := database.NewStatement()
  99. statement.SetNeedReturnValue(false)
  100. statement.SetOpenRecordSet(true)
  101. statement.SetProcName("WS_AudioRoom_RemoveBlack")
  102. statement.AddParamter("@RoomID", database.AdParamInput, database.AdInteger, 4, roomId)
  103. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  104. statement.AddParamter("@BlackType", database.AdParamInput, database.AdInteger, 4, blackType)
  105. sqlString := statement.GenSql()
  106. retRows := dbengine.ExecuteRs(sqlString)
  107. if len(retRows) <= 0 {
  108. return 0
  109. }
  110. return int(retRows[0][0].(int64))
  111. }