trans_room.go 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. package database
  2. import (
  3. "encoding/json"
  4. "runtime/debug"
  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 GetRoom(roomId int) pb.RoomInfo {
  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 ret []pb.RoomInfo
  19. statement := database.NewStatement()
  20. statement.SetNeedReturnValue(false)
  21. statement.SetOpenRecordSet(true)
  22. statement.SetProcName("WS_AudioRoom_GetInfo")
  23. statement.AddParamter("@RoomID", database.AdParamInput, database.AdInteger, 4, roomId)
  24. sqlString := statement.GenSql()
  25. jsonData := dbengine.Execute(sqlString)
  26. if err := json.Unmarshal([]byte(jsonData), &ret); err != nil {
  27. // log.Error("transaction.getRoom json unmarshal roomId=%d err %v", roomId, err)
  28. return pb.RoomInfo{}
  29. }
  30. if len(ret) <= 0 {
  31. // log.Debug("transaction.getRoom roomId=%d is not exist", roomId)
  32. return pb.RoomInfo{}
  33. }
  34. return ret[0]
  35. }
  36. // 查找房间
  37. func SearchRoom(roomName string) []pb.RoomInfo {
  38. defer func() {
  39. if err := recover(); err != nil {
  40. log.Error("transaction recover err %v", err)
  41. log.Error("%s", debug.Stack())
  42. }
  43. }()
  44. var ret []pb.RoomInfo
  45. statement := database.NewStatement()
  46. statement.SetNeedReturnValue(false)
  47. statement.SetOpenRecordSet(true)
  48. statement.SetProcName("WS_AudioRoom_Search")
  49. statement.AddParamter("@RoomName", database.AdParamInput, database.AdNVarChar, 32, roomName)
  50. sqlString := statement.GenSql()
  51. jsonData := dbengine.Execute(sqlString)
  52. if err := json.Unmarshal([]byte(jsonData), &ret); err != nil {
  53. log.Error("transaction.searchRoom json unmarshal roomName=%s err %v", roomName, err)
  54. return nil
  55. }
  56. return ret
  57. }
  58. // 创建房间
  59. func CreateRoom(r *pb.RoomInfo) int {
  60. defer func() {
  61. if err := recover(); err != nil {
  62. log.Error("transaction recover err %v", err)
  63. log.Error("%s", debug.Stack())
  64. }
  65. }()
  66. statement := database.NewStatement()
  67. statement.SetNeedReturnValue(false)
  68. statement.SetOpenRecordSet(true)
  69. statement.SetProcName("WS_AudioRoom_Create")
  70. statement.AddParamter("@RoomID", database.AdParamInput, database.AdInteger, 4, r.RoomId)
  71. statement.AddParamter("@RoomName", database.AdParamInput, database.AdNVarChar, 32, r.RoomName)
  72. statement.AddParamter("@RoomImg", database.AdParamInput, database.AdVarChar, 256, r.RoomImg)
  73. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, r.UserId)
  74. statement.AddParamter("@Family", database.AdParamInput, database.AdNVarChar, 32, r.Family)
  75. statement.AddParamter("@Country", database.AdParamInput, database.AdNVarChar, 32, r.Country)
  76. statement.AddParamter("@Language", database.AdParamInput, database.AdNVarChar, 32, r.Language)
  77. statement.AddParamter("@MicCount", database.AdParamInput, database.AdInteger, 4, r.MicCount)
  78. statement.AddParamter("@MicMode", database.AdParamInput, database.AdInteger, 4, r.MicMode)
  79. statement.AddParamter("@JoinFee", database.AdParamInput, database.AdInteger, 4, r.JoinFee)
  80. statement.AddParamter("@Announce", database.AdParamInput, database.AdNVarChar, 256, r.Announce)
  81. statement.AddParamter("@Tag", database.AdParamInput, database.AdNVarChar, 32, r.Tag)
  82. statement.AddParamter("@MemberCount", database.AdParamInput, database.AdInteger, 4, r.MemberCount)
  83. statement.AddParamter("@Crdate", database.AdParamInput, database.AdVarChar, 20, r.Crdate)
  84. statement.AddParamter("@Level", database.AdParamInput, database.AdInteger, 4, r.Level)
  85. sqlString := statement.GenSql()
  86. retRows := dbengine.ExecuteRs(sqlString)
  87. if len(retRows) <= 0 {
  88. return 0
  89. }
  90. return int(retRows[0][0].(int64))
  91. }
  92. // 修改房间
  93. func UpdateRoom(r *pb.RoomInfo) {
  94. defer func() {
  95. if err := recover(); err != nil {
  96. log.Error("transaction recover err %v", err)
  97. log.Error("%s", debug.Stack())
  98. }
  99. }()
  100. statement := database.NewStatement()
  101. statement.SetNeedReturnValue(false)
  102. statement.SetOpenRecordSet(true)
  103. statement.SetProcName("WS_AudioRoom_Update")
  104. statement.AddParamter("@RoomID", database.AdParamInput, database.AdInteger, 4, r.RoomId)
  105. statement.AddParamter("@RoomName", database.AdParamInput, database.AdNVarChar, 32, r.RoomName)
  106. statement.AddParamter("@RoomImg", database.AdParamInput, database.AdVarChar, 256, r.RoomImg)
  107. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, r.UserId)
  108. statement.AddParamter("@Family", database.AdParamInput, database.AdNVarChar, 32, r.Family)
  109. statement.AddParamter("@Country", database.AdParamInput, database.AdNVarChar, 32, r.Country)
  110. statement.AddParamter("@Language", database.AdParamInput, database.AdNVarChar, 32, r.Language)
  111. statement.AddParamter("@MicCount", database.AdParamInput, database.AdInteger, 4, r.MicCount)
  112. statement.AddParamter("@MicMode", database.AdParamInput, database.AdInteger, 4, r.MicMode)
  113. statement.AddParamter("@JoinFee", database.AdParamInput, database.AdInteger, 4, r.JoinFee)
  114. statement.AddParamter("@Announce", database.AdParamInput, database.AdNVarChar, 256, r.Announce)
  115. statement.AddParamter("@Tag", database.AdParamInput, database.AdNVarChar, 32, r.Tag)
  116. sqlString := statement.GenSql()
  117. dbengine.ExecuteRs(sqlString)
  118. }
  119. // 获取语音房进入条件
  120. func GetEnterCondition(roomId int) pb.EnterCondition {
  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 info pb.EnterCondition
  128. statement := database.NewStatement()
  129. statement.SetNeedReturnValue(false)
  130. statement.SetOpenRecordSet(true)
  131. statement.SetProcName("WS_AudioRoom_GetEnterCondition")
  132. statement.AddParamter("@RoomID", database.AdParamInput, database.AdInteger, 4, roomId)
  133. sqlString := statement.GenSql()
  134. retRows := dbengine.ExecuteRs(sqlString)
  135. if len(retRows) <= 0 {
  136. return info
  137. }
  138. ret := retRows[0]
  139. info.InviteOnly = int(ret[0].(int64)) == 1
  140. info.Password = ret[1].(string)
  141. info.PwdExpire = int(ret[2].(int64))
  142. info.IsHide = int(ret[3].(int64)) > 0
  143. return info
  144. }
  145. // 设置语音房进入条件
  146. func SetEnterCondition(roomId int, info pb.EnterCondition) int {
  147. defer func() {
  148. if err := recover(); err != nil {
  149. log.Error("transaction recover err %v", err)
  150. log.Error("%s", debug.Stack())
  151. }
  152. }()
  153. inviteOnly := 0
  154. if info.InviteOnly {
  155. inviteOnly = 1
  156. }
  157. statement := database.NewStatement()
  158. statement.SetNeedReturnValue(false)
  159. statement.SetOpenRecordSet(true)
  160. statement.SetProcName("WS_AudioRoom_SetEnterCondition")
  161. statement.AddParamter("@RoomID", database.AdParamInput, database.AdInteger, 4, roomId)
  162. statement.AddParamter("@InviteOnly", database.AdParamInput, database.AdInteger, 4, inviteOnly)
  163. statement.AddParamter("@Password", database.AdParamInput, database.AdVarChar, 16, info.Password)
  164. statement.AddParamter("@PwdExpire", database.AdParamInput, database.AdInteger, 4, info.PwdExpire)
  165. statement.AddParamter("@IsHide", database.AdParamInput, database.AdInteger, 4, info.IsHide)
  166. sqlString := statement.GenSql()
  167. retRows := dbengine.ExecuteRs(sqlString)
  168. if len(retRows) <= 0 {
  169. return 0
  170. }
  171. return int(retRows[0][0].(int64))
  172. }
  173. // 更新经验
  174. func UpdateExps(roomId, level, exps int) {
  175. defer func() {
  176. if err := recover(); err != nil {
  177. log.Error("transaction recover err %v", err)
  178. log.Error("%s", debug.Stack())
  179. }
  180. }()
  181. statement := database.NewStatement()
  182. statement.SetNeedReturnValue(false)
  183. statement.SetOpenRecordSet(true)
  184. statement.SetProcName("WS_AudioRoom_UpdateExps")
  185. statement.AddParamter("@RoomID", database.AdParamInput, database.AdInteger, 4, roomId)
  186. statement.AddParamter("@Level", database.AdParamInput, database.AdInteger, 4, level)
  187. statement.AddParamter("@Exps", database.AdParamInput, database.AdInteger, 4, exps)
  188. sqlString := statement.GenSql()
  189. dbengine.Execute(sqlString)
  190. return
  191. }
  192. // 获取扩展信息
  193. func GetExtInfo(roomId int) pb.RoomExtInfo {
  194. defer func() {
  195. if err := recover(); err != nil {
  196. log.Error("transaction recover err %v", err)
  197. log.Error("%s", debug.Stack())
  198. }
  199. }()
  200. var ret []pb.RoomExtInfo
  201. statement := database.NewStatement()
  202. statement.SetNeedReturnValue(false)
  203. statement.SetOpenRecordSet(true)
  204. statement.SetProcName("WS_AudioRoom_GetExtInfo")
  205. statement.AddParamter("@RoomID", database.AdParamInput, database.AdInteger, 4, roomId)
  206. sqlString := statement.GenSql()
  207. jsonData := dbengine.Execute(sqlString)
  208. if err := json.Unmarshal([]byte(jsonData), &ret); err != nil {
  209. return pb.RoomExtInfo{}
  210. }
  211. if len(ret) <= 0 {
  212. return pb.RoomExtInfo{}
  213. }
  214. return ret[0]
  215. }
  216. // 更新扩展信息
  217. func UpdateExtInfo(roomId int, info *pb.RoomExtInfo) {
  218. defer func() {
  219. if err := recover(); err != nil {
  220. log.Error("transaction recover err %v", err)
  221. log.Error("%s", debug.Stack())
  222. }
  223. }()
  224. statement := database.NewStatement()
  225. statement.SetNeedReturnValue(false)
  226. statement.SetOpenRecordSet(true)
  227. statement.SetProcName("WS_AudioRoom_UpdateExt")
  228. statement.AddParamter("@RoomID", database.AdParamInput, database.AdInteger, 4, roomId)
  229. statement.AddParamter("@DayExps", database.AdParamInput, database.AdInteger, 4, info.DayExps)
  230. statement.AddParamter("@CollectDiamond", database.AdParamInput, database.AdInteger, 4, info.CollectDiamond)
  231. statement.AddParamter("@ScreenLock", database.AdParamInput, database.AdTinyInt, 4, info.ScreenLock)
  232. statement.AddParamter("@UpdateTime", database.AdParamInput, database.AdInteger, 4, info.UpdateTime)
  233. sqlString := statement.GenSql()
  234. dbengine.Execute(sqlString)
  235. return
  236. }
  237. // 房间经验日志
  238. func AddRoomExpLog(userId, roomId, exps int) {
  239. defer func() {
  240. if err := recover(); err != nil {
  241. log.Error("transaction recover err %v", err)
  242. log.Error("%s", debug.Stack())
  243. }
  244. }()
  245. statement := database.NewStatement()
  246. statement.SetNeedReturnValue(false)
  247. statement.SetOpenRecordSet(true)
  248. statement.SetProcName("WS_AudioRoom_AddRoomExpLog")
  249. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  250. statement.AddParamter("@RoomID", database.AdParamInput, database.AdInteger, 4, roomId)
  251. statement.AddParamter("@Exps", database.AdParamInput, database.AdInteger, 4, exps)
  252. sqlString := statement.GenSql()
  253. dbengine.Execute(sqlString)
  254. return
  255. }