个播房坑位权限、礼物值显示隐藏、切换房间类型逻辑修改

This commit is contained in:
chenguilong
2022-03-02 18:30:45 +08:00
parent 5d3ba31b5f
commit 72e2df7887
6 changed files with 110 additions and 86 deletions

View File

@@ -115,6 +115,8 @@ typedef NS_ENUM(NSInteger, RoomDatingStateChangeType) {
@property (nonatomic,assign) NSInteger blindDateVipUid;
///本地的字段 判断当前模式是否从相亲切换 关闭或者开启
@property (nonatomic,assign) RoomDatingStateChangeType datingState;
///是否切换了房间类型(本地字段)
@property (nonatomic, assign) BOOL hadChangeRoomType;
@end
NS_ASSUME_NONNULL_END

View File

@@ -113,7 +113,7 @@
}
if (roomInfo.type == RoomType_Anchor) {
[self.contributionButton setTitle:@"主播榜" forState:UIControlStateNormal];
self.anchorGiftValueView.hidden = NO;
self.anchorGiftValueView.hidden = !roomInfo.showGiftValue;
} else {
[self.contributionButton setTitle:@"房间榜" forState:UIControlStateNormal];
self.anchorGiftValueView.hidden = YES;

View File

@@ -155,32 +155,30 @@
[[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray<NIMChatroomMember *> * _Nullable members) {
NIMChatroomMember * member = members.firstObject;
if (!member) return;
// 2.0.0 /
NSString * lockTitle = micModel.microState.posState == MicroPosStateType_Free ? @"锁麦" : @"解锁";
TTActionSheetConfig *lockMic = [TTActionSheetConfig normalTitle:lockTitle clickAction:^{
NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
NSString * state = micModel.microState.posState == MicroPosStateType_Free ? @"1" : @"0";
NSString * ticket = [[AccountInfoStorage instance] getTicket];
NSString * uid = [[AccountInfoStorage instance] getUid];
[Api microLockCompletion:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
} roomUid:roomUid state:state position:position ticket:ticket uid:uid];
}];
// 2.0.1 /
NSString * muteTitle = micModel.microState.micState == MicroMicStateType_Open ? @"闭麦" : @"开麦";
TTActionSheetConfig *muteMic = [TTActionSheetConfig normalTitle:muteTitle clickAction:^{
NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
NSString * state = micModel.microState.micState == MicroMicStateType_Open ? @"1" : @"0";
NSString * ticket = [[AccountInfoStorage instance] getTicket];
NSString * uid = [[AccountInfoStorage instance] getUid];
[Api microMuteCompletion:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
} roomUid:roomUid state:state position:position ticket:ticket uid:uid];
}];
// 2.1
if (member.type == NIMTeamMemberTypeOwner) {
// 2.1.2 /
NSString * lockTitle = micModel.microState.posState == MicroPosStateType_Free ? @"锁麦" : @"解锁";
TTActionSheetConfig *lockMic = [TTActionSheetConfig normalTitle:lockTitle clickAction:^{
NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
NSString * state = micModel.microState.posState == MicroPosStateType_Free ? @"1" : @"0";
NSString * ticket = [[AccountInfoStorage instance] getTicket];
NSString * uid = [[AccountInfoStorage instance] getUid];
[Api microLockCompletion:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
} roomUid:roomUid state:state position:position ticket:ticket uid:uid];
}];
// 2.1.3 /
NSString * muteTitle = micModel.microState.micState == MicroMicStateType_Open ? @"闭麦" : @"开麦";
TTActionSheetConfig *muteMic = [TTActionSheetConfig normalTitle:muteTitle clickAction:^{
NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
NSString * state = micModel.microState.micState == MicroMicStateType_Open ? @"1" : @"0";
NSString * ticket = [[AccountInfoStorage instance] getTicket];
NSString * uid = [[AccountInfoStorage instance] getUid];
[Api microMuteCompletion:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
} roomUid:roomUid state:state position:position ticket:ticket uid:uid];
}];
// Ta
TTActionSheetConfig *inviteMic = [TTActionSheetConfig normalTitle:@"抱Ta上麦" clickAction:^{
XPRoomInviteUserViewController * inviteUserMicVC = [[XPRoomInviteUserViewController alloc] init];
@@ -191,6 +189,8 @@
}];
[TTPopup actionSheetWithItems:@[inviteMic, lockMic, muteMic]];
} else if (member.type == NIMTeamMemberTypeManager) {//
[TTPopup actionSheetWithItems:@[lockMic, muteMic]];
} else {
// 2.2
NSString* selfUid = [NSString stringWithFormat:@"%ld", (long)self.hostDelegate.getUserInfo.uid];

View File

@@ -190,30 +190,47 @@
@strongify(self);
NIMChatroomMember * member = x;
if (member == nil) {return;}
if (member.type == NIMTeamMemberTypeOwner || member.type == NIMChatroomMemberTypeManager) {
if (userInfo.roomInfo.leaveMode && userInfo.uid.integerValue == userInfo.roomInfo.uid && [userInfo.position isEqualToString:@"-1"]) {
[array addObject:muteItem];
if (userInfo.roomInfo.type != RoomType_Anchor) {//
if (userInfo.roomInfo.type == RoomType_Anchor) {///
if (member.type == NIMTeamMemberTypeOwner) {
[array addObject:muteItem];
[array addObject:lockItem];
[array addObject:giftValueItem];
} else if(member.type == NIMTeamMemberTypeManager) {
[array addObject:muteItem];
if (userInfo.position.length > 0) {
[array addObject:upDownItem];
}
[array addObject:lockItem];
} else {
if (userInfo.position.length > 0) {
[array addObject:muteItem];
[array addObject:upDownItem];
if (![userInfo.position isEqualToString:@"999"]) {
[array addObject:lockItem];
}
[array addObject:giftValueItem];
} else {
[array addObject:upDownItem];
}
}
} else {
if (userInfo.position.length > 0) {
[array addObject:upDownItem];
}
}
[array addObject:lockItem];
} else {
if (userInfo.position.length > 0) {
[array addObject:upDownItem];
}
}
} else {
if (member.type == NIMTeamMemberTypeOwner || member.type == NIMChatroomMemberTypeManager) {
if (userInfo.roomInfo.leaveMode && userInfo.uid.integerValue == userInfo.roomInfo.uid && [userInfo.position isEqualToString:@"-1"]) {
[array addObject:muteItem];
[array addObject:upDownItem];
[array addObject:lockItem];
[array addObject:giftValueItem];
} else {
if (userInfo.position.length > 0) {
[array addObject:muteItem];
[array addObject:upDownItem];
if (![userInfo.position isEqualToString:@"999"]) {
[array addObject:lockItem];
}
[array addObject:giftValueItem];
} else {
[array addObject:upDownItem];
}
}
} else {
if (userInfo.position.length > 0) {
[array addObject:upDownItem];
}
}
}
[[self getView] onGetMicroFunctionArraySuccess:array];
}];
} else {///
@@ -243,31 +260,36 @@
[[self rac_queryChatRoomMember:targetUid roomId:roomId] subscribeNext:^(id _Nullable x) {
NIMChatroomMember * targetMember = x;
if (targetMember == nil) {return;}
if (targetMember.type == NIMTeamMemberTypeOwner || targetMember.type == NIMChatroomMemberTypeManager) {
if (userInfo.position.length > 0) {
if (!micQueue.userInfo.vipMic) {
[array addObject:lockItem];
}
} else {
[array addObject:upDownItem];
}
} else {///
if (userInfo.position.length > 0) {
if (micQueue.userInfo.vipMic) {
[array addObject:muteItem];
[array addObject:giftValueItem];
} else {
[array addObject:muteItem];
[array addObject:upDownItem];
[array addObject:lockItem];
if (userInfo.roomInfo.type != RoomType_Anchor) {//
if (userInfo.roomInfo.type == RoomType_Anchor) {//
if (userInfo.position.length > 0) {
[array addObject:muteItem];
[array addObject:lockItem];
}
} else {
if (targetMember.type == NIMTeamMemberTypeOwner || targetMember.type == NIMChatroomMemberTypeManager) {
if (userInfo.position.length > 0) {
if (!micQueue.userInfo.vipMic) {
[array addObject:lockItem];
}
} else {
[array addObject:upDownItem];
}
} else {///
if (userInfo.position.length > 0) {
if (micQueue.userInfo.vipMic) {
[array addObject:muteItem];
[array addObject:giftValueItem];
} else {
[array addObject:muteItem];
[array addObject:upDownItem];
[array addObject:lockItem];
[array addObject:giftValueItem];
}
}
} else {
[array addObject:upDownItem];
}
}
} else {
[array addObject:upDownItem];
}
}
}
[[self getView] onGetMicroFunctionArraySuccess:array];
}];
}

View File

@@ -689,7 +689,8 @@
[self.presenter kickDownMicro:self.cardInfo.position roomId:roomId];
} else {
self.operaStackView.hidden = YES;
[self.presenter getRoomMicroItems:9 cardInfo:self.cardInfo];
int micCount = self.cardInfo.roomInfo.type == RoomType_Anchor ? 4 : 9;
[self.presenter getRoomMicroItems:micCount cardInfo:self.cardInfo];
}
}
break;

View File

@@ -219,21 +219,17 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
[self.stageView removeFromSuperview];
self.stageView = nil;
self.stageView = [[SocialStageView alloc] initWithDelegate:self];
} else {
if (self.roomInfo.type == RoomType_Anchor) {
[self.stageView removeFromSuperview];
self.stageView = nil;
self.stageView = [[AnchorStageView alloc] initWithDelegate:self];
} else if(self.roomInfo.type == RoomType_Game) {
[self.stageView removeFromSuperview];
self.stageView = nil;
self.stageView = [[SocialStageView alloc] initWithDelegate:self];
} else {
[self.stageView removeFromSuperview];
self.stageView = nil;
self.stageView = [[SocialStageView alloc] initWithDelegate:self];
}
}
} else if (self.roomInfo.type == RoomType_Anchor && ![self.stageView isKindOfClass:[AnchorStageView class]]) {
[self.stageView removeFromSuperview];
self.stageView = nil;
self.stageView = [[AnchorStageView alloc] initWithDelegate:self];
} else if(self.roomInfo.hadChangeRoomType && ![self.stageView isKindOfClass:[SocialStageView class]]) {
[self.stageView removeFromSuperview];
self.stageView = nil;
self.stageView = [[SocialStageView alloc] initWithDelegate:self];
} else {
return;
}
if (!self.stageView.superview) {
[self.view insertSubview:self.stageView aboveSubview:self.roomHeaderView];
}
@@ -419,7 +415,10 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
} else {
newRoomInfo.datingState = RoomDatingStateChangeType_Normal;
}
//->->)
newRoomInfo.hadChangeRoomType = self.roomInfo.type != newRoomInfo.type;
self.roomInfo = newRoomInfo;
[self.backContainerView onRoomUpdate];
[self changeStageViewOnRoomUpdate];
[self.stageView onRoomUpdate];
[self.menuContainerView onRoomUpdate];