room_mic.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package admin
  2. import (
  3. "bet24.com/servers/common"
  4. "bet24.com/servers/micros/audioroom/handler/manager"
  5. pb "bet24.com/servers/micros/audioroom/proto"
  6. user "bet24.com/servers/micros/userservices/proto"
  7. "sort"
  8. )
  9. // 获取语聊房麦位 - 后台
  10. func (this *adminMgr) AdminGetRoomMic(roomId int) []pb.AdminRoomMic {
  11. var micList []pb.AdminRoomMic
  12. if roomId == 0 {
  13. for _, v := range manager.AdminMgr.GetAllRoom() {
  14. list := this.getOnlineMic(v.RoomId)
  15. micList = append(micList, list...)
  16. }
  17. } else {
  18. micList = this.getOnlineMic(roomId)
  19. }
  20. return this.changeMicListSort(micList)
  21. }
  22. // 获取在线的麦位
  23. func (this *adminMgr) getOnlineMic(roomId int) []pb.AdminRoomMic {
  24. r := manager.AdminMgr.GetRoom(roomId)
  25. if r == nil {
  26. return nil
  27. }
  28. var list []pb.AdminRoomMic
  29. for k, v := range r.GetMicListInfo() {
  30. if v.UserId <= 0 {
  31. continue
  32. }
  33. u := user.GetUserInfo(v.UserId)
  34. if u == nil {
  35. continue
  36. }
  37. member := r.GetMemberInfo(v.UserId)
  38. list = append(list, pb.AdminRoomMic{
  39. UserID: u.UserId,
  40. NickName: u.NickName,
  41. RoleID: member.RoleId,
  42. Level: member.Level,
  43. MicNum: k + 1,
  44. UpMicType: r.MicMode,
  45. UpMicTime: common.TimeStampToString(int64(v.TimeStamp)),
  46. })
  47. }
  48. return list
  49. }
  50. // 改变麦位列表的排序
  51. func (this *adminMgr) changeMicListSort(list []pb.AdminRoomMic) []pb.AdminRoomMic {
  52. // 排序规则:优先加入
  53. sort.SliceStable(list, func(i, j int) bool {
  54. return list[i].UpMicTime < list[j].UpMicTime
  55. })
  56. return list
  57. }