RoomUsers.m 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. //
  2. // RoomUsers.m
  3. // UniversalApp
  4. //
  5. // Created by bogokj on 2019/8/1.
  6. // Copyright © 2019 voidcat. All rights reserved.
  7. //
  8. #import "RoomUsers.h"
  9. #import "RoomUserInfo.h"
  10. @interface RoomUsers ()
  11. @end
  12. @implementation RoomUsers
  13. - (instancetype)init{
  14. if (self = [super init]) {
  15. [self setDefault];
  16. }
  17. return self;
  18. }
  19. - (void)addFirstUser:(RoomUserInfo *)user{
  20. [self.dataArray replaceObjectAtIndex:0 withObject:user];
  21. }
  22. - (void)addUser:(RoomUserInfo *)user forIndex:(NSInteger)index{
  23. //去重。 麦上用户异常退出,由于没有心跳回调,此时还在原麦位上,用户又上麦
  24. [self removeUser:user.user_id];
  25. //管理员抱主播
  26. user.is_room = @"1";
  27. [self.dataArray replaceObjectAtIndex:index withObject:user];
  28. }
  29. - (void)removeUser:(NSString *)user_id{
  30. if ([self getIndexOfUser:user_id] != 100) {
  31. [self.dataArray replaceObjectAtIndex:[self getIndexOfUser:user_id] withObject:[self emptyUser]];
  32. }
  33. }
  34. - (void)updateUser:(NSString *)user_id volume:(NSInteger)volume{
  35. if ([self getIndexOfUser:user_id] != 100) {
  36. RoomUserInfo *user = self.dataArray[[self getIndexOfUser:user_id]];
  37. user.volume = volume;
  38. }
  39. }
  40. - (void)updateUser:(NSString *)user_id isMuted:(BOOL)isMuted{
  41. if ([self getIndexOfUser:user_id] != 100) {
  42. RoomUserInfo *user = self.dataArray[[self getIndexOfUser:user_id]];
  43. user.isMuted = isMuted;
  44. user.volume = 0;
  45. user.is_ban_voice = isMuted ? @"1" : @"0";
  46. }
  47. }
  48. - (BOOL)updateUser:(NSString *)uid is_admin:(NSString *)is_admin{
  49. if ([self getIndexOfUser:uid] != 100) {
  50. RoomUserInfo *user = [self.dataArray objectAtIndex:[self getIndexOfUser:uid]];
  51. user.is_admin = is_admin;
  52. NSLog(@"更新用户管理员状态成功");
  53. return YES;
  54. }
  55. NSLog(@"更新用户管理员状态失败 uid:%@",uid);
  56. return NO;
  57. }
  58. - (BOOL)updateUser:(NSString *)uid is_admin:(NSString *)is_admin purview_msg_type:(BOOL)purview_msg_type{
  59. if ([self getIndexOfUser:uid] != 100) {
  60. RoomUserInfo *user = [self.dataArray objectAtIndex:[self getIndexOfUser:uid]];
  61. if (purview_msg_type) {
  62. user.is_host = is_admin;
  63. } else {
  64. user.is_admin = is_admin;
  65. }
  66. NSLog(@"更新用户管理员状态成功");
  67. return YES;
  68. }
  69. NSLog(@"更新用户管理员状态失败 uid:%@",uid);
  70. return NO;
  71. }
  72. - (BOOL)fetchUser_isMuted:(NSString *)user_id{
  73. if ([self getIndexOfUser:user_id] != 100) {
  74. RoomUserInfo *user = self.dataArray[[self getIndexOfUser:user_id]];
  75. return user.isMuted+user.is_ban_voice.intValue;
  76. }
  77. return YES;
  78. }
  79. - (void)updateUser:(NSString *)user_id head_url:(NSString *)head_url{
  80. if ([self getIndexOfUser:user_id] != 100) {
  81. RoomUserInfo *user = self.dataArray[[self getIndexOfUser:user_id]];
  82. user.headwear_url = head_url;
  83. }
  84. }
  85. - (void)updateUser:(RoomUserInfo *)userInfo{
  86. if ([self getIndexOfUser:userInfo.user_id] != 100) {
  87. RoomUserInfo *user = self.dataArray[[self getIndexOfUser:userInfo.user_id]];
  88. user.headwear_url = userInfo.headwear_url;
  89. // user.mike_url = userInfo.mike_url;
  90. user.gift_earnings = userInfo.gift_earnings;
  91. }
  92. }
  93. - (void)removeAllUser{
  94. [self setDefault];
  95. }
  96. - (void)setDefault{
  97. [self.dataArray removeAllObjects];
  98. [self.dataArray addObject:[self emptyUser]];
  99. [self.dataArray addObject:[self emptyUser]];
  100. [self.dataArray addObject:[self emptyUser]];
  101. [self.dataArray addObject:[self emptyUser]];
  102. [self.dataArray addObject:[self emptyUser]];
  103. [self.dataArray addObject:[self emptyUser]];
  104. [self.dataArray addObject:[self emptyUser]];
  105. [self.dataArray addObject:[self emptyUser]];
  106. [self.dataArray addObject:[self emptyUser]];
  107. [self.dataArray addObject:[self emptyUser]];
  108. }
  109. - (NSInteger)getIndexOfUser:(NSString *)user_id{
  110. for (NSInteger i = 0; i < self.dataArray.count; i++) {
  111. RoomUserInfo *user = self.dataArray[i];
  112. if ([user.user_id isEqualToString:user_id]) {
  113. return i;
  114. }
  115. }
  116. return 100;
  117. }
  118. - (NSMutableArray *)dataArray{
  119. if (!_dataArray) {
  120. _dataArray = [NSMutableArray array];
  121. }
  122. return _dataArray;
  123. }
  124. - (RoomUserInfo *)emptyUser{
  125. RoomUserInfo *user = [[RoomUserInfo alloc]init];
  126. user.user_id = @"0";
  127. return user;
  128. }
  129. @end