修复了用户不再坑位上用户卡片送礼物无法送出的问题

This commit is contained in:
fengshuo
2022-04-20 17:40:21 +08:00
parent eee3d38742
commit 8afd2cdfe7
2 changed files with 58 additions and 40 deletions

View File

@@ -222,8 +222,8 @@
- (UILabel *)nickLabel { - (UILabel *)nickLabel {
if (!_nickLabel) { if (!_nickLabel) {
_nickLabel = [[UILabel alloc] init]; _nickLabel = [[UILabel alloc] init];
_nickLabel.font = [UIFont systemFontOfSize:12]; _nickLabel.font = [UIFont systemFontOfSize:15];
_nickLabel.textColor = [ThemeColor mainTextColor]; _nickLabel.textColor = [UIColor whiteColor];
} }
return _nickLabel; return _nickLabel;
} }

View File

@@ -415,53 +415,71 @@
- (NSArray<XPGiftUserInfoModel *> *)configGiftUsers:(NSMutableDictionary<NSString *,MicroQueueModel *> *)queue { - (NSArray<XPGiftUserInfoModel *> *)configGiftUsers:(NSMutableDictionary<NSString *,MicroQueueModel *> *)queue {
NSMutableArray * array = [NSMutableArray array]; NSMutableArray * array = [NSMutableArray array];
BOOL receiveIsOnMic = NO;
for (MicroQueueModel * microModel in queue.allValues) { for (MicroQueueModel * microModel in queue.allValues) {
if (microModel.userInfo && microModel.userInfo.uid >0) { if (microModel.userInfo && microModel.userInfo.uid >0) {
UserInfoModel * userInfo = microModel.userInfo; UserInfoModel * userInfo = microModel.userInfo;
XPGiftUserInfoModel * userModel = [[XPGiftUserInfoModel alloc] init];
userModel.avatar = userInfo.avatar;
userModel.vipMic = userInfo.vipMic;
userModel.position = [NSString stringWithFormat:@"%d", microModel.microState.position];
userModel.uid = userInfo.uid;
if (userInfo.uid == self.cardInfo.uid.integerValue) { if (userInfo.uid == self.cardInfo.uid.integerValue) {
userModel.isSelect = YES; receiveIsOnMic = YES;
} }
if (self.cardInfo.roomInfo.type == RoomType_Anchor && microModel.microState.position == -1) {///
continue;
}
[array addObject:userModel];
} }
} }
if (receiveIsOnMic) {
RoomInfoModel * roomInfo = self.cardInfo.roomInfo; for (MicroQueueModel * microModel in queue.allValues) {
if (roomInfo.leaveMode) { if (microModel.userInfo && microModel.userInfo.uid >0) {
XPGiftUserInfoModel * userModel = [[XPGiftUserInfoModel alloc] init]; UserInfoModel * userInfo = microModel.userInfo;
userModel.avatar = roomInfo.avatar; XPGiftUserInfoModel * userModel = [[XPGiftUserInfoModel alloc] init];
userModel.position = @"-1"; userModel.avatar = userInfo.avatar;
userModel.uid = self.cardInfo.uid.integerValue; userModel.vipMic = userInfo.vipMic;
if (roomInfo.uid == self.cardInfo.uid.integerValue) { userModel.position = [NSString stringWithFormat:@"%d", microModel.microState.position];
userModel.isSelect = YES; userModel.uid = userInfo.uid;
if (userInfo.uid == self.cardInfo.uid.integerValue) {
userModel.isSelect = YES;
}
if (self.cardInfo.roomInfo.type == RoomType_Anchor && microModel.microState.position == -1) {///
continue;
}
[array addObject:userModel];
}
} }
RoomInfoModel * roomInfo = self.cardInfo.roomInfo;
if (roomInfo.leaveMode) {
XPGiftUserInfoModel * userModel = [[XPGiftUserInfoModel alloc] init];
userModel.avatar = roomInfo.avatar;
userModel.position = @"-1";
userModel.uid = self.cardInfo.uid.integerValue;
if (roomInfo.uid == self.cardInfo.uid.integerValue) {
userModel.isSelect = YES;
}
[array addObject:userModel];
} else if (roomInfo.type == RoomType_Anchor) {
BOOL hadContainerOwner = NO;
for (UserInfoModel *userModel in array) {
if (userModel.uid == roomInfo.uid) {
hadContainerOwner = YES;
break;
}
}
if (!hadContainerOwner) {
XPGiftUserInfoModel * userModel = [[XPGiftUserInfoModel alloc] init];
userModel.avatar = roomInfo.avatar;
userModel.position = @"-1";
userModel.uid = self.cardInfo.uid.integerValue;
if (roomInfo.uid == self.cardInfo.uid.integerValue) {
userModel.isSelect = YES;
}
[array addObject:userModel];
}
}
} else {
XPGiftUserInfoModel * userModel = [[XPGiftUserInfoModel alloc] init];
userModel.avatar = self.targetUserInfo.avatar;
userModel.nick = self.targetUserInfo.nick;
userModel.uid = self.cardInfo.uid.integerValue;
userModel.isSelect = YES;
[array addObject:userModel]; [array addObject:userModel];
} else if (roomInfo.type == RoomType_Anchor) { }
BOOL hadContainerOwner = NO;
for (UserInfoModel *userModel in array) {
if (userModel.uid == roomInfo.uid) {
hadContainerOwner = YES;
break;
}
}
if (!hadContainerOwner) {
XPGiftUserInfoModel * userModel = [[XPGiftUserInfoModel alloc] init];
userModel.avatar = roomInfo.avatar;
userModel.position = @"-1";
userModel.uid = self.cardInfo.uid.integerValue;
if (roomInfo.uid == self.cardInfo.uid.integerValue) {
userModel.isSelect = YES;
}
[array addObject:userModel];
}
}
return array; return array;
} }