// // QXRoomSeatView.m // QXLive // // Created by 启星 on 2025/6/7. // #import "QXRoomSeatView.h" #import "QXRoomSeatTypeSongView.h" #import "QXRoomSeatTypeAuctionView.h" #import "QXAgoraEngine.h" #import "QXRoomOnlineUserListView.h" #import "QXRoomSeatTypeCabinView.h" #import "QXRoomSeatPKView.h" #import "QXRoomSeatTypeFrientView.h" #import "QXRoomUserCharmView.h" #import "QXRoomSeatTypeSingerView.h" #import "QXRoomSeatTypeSignView.h" @interface QXRoomSeatView() /// 二卡八 @property (nonatomic,strong)QXRoomSeatTypeNormalView *normalSeatView; /// K歌房 @property (nonatomic,strong)QXRoomSeatTypeSongView *songView; /// 拍卖房 @property (nonatomic,strong)QXRoomSeatTypeAuctionView *auctionView; /// 在线列表 @property (nonatomic,strong) QXRoomOnlineUserListView *onlineListView; /// 私密小屋 @property (nonatomic,strong)QXRoomSeatTypeCabinView *cabinView; /// PK @property (nonatomic,strong)QXRoomSeatPKView *roomPkView; /// 交友房 @property (nonatomic,strong)QXRoomSeatTypeFrientView *roomFriendView; /// 点唱房 @property (nonatomic,strong)QXRoomSeatTypeSingerView *singerView; /// 签约房 @property (nonatomic,strong)QXRoomSeatTypeSignView *signView; @property (nonatomic,strong)QXRoomUserCharmView *charmListView; @end @implementation QXRoomSeatView - (instancetype)initWithType:(QXRoomSeatViewType)type { self = [super init]; if (self) { _type = type; [self setType:type]; } return self; } //初始化普通视图 -(void)initNomarlView{ if (_singerView) { [self hideSinggerViewBlock:^{ [self showNormalView]; }]; return; } if (_songView) { [self hideSongViewBlock:^{ [self showNormalView]; }]; return; } if (_auctionView) { [self hideAuctionViewBlock:^{ [self showNormalView]; }]; return; } if (_signView) { [self hideSignViewBlock:^{ [self showNormalView]; }]; return; } if (_roomPkView) { _roomPkView.transform = CGAffineTransformIdentity; // 弹性动画 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0.1 options:UIViewAnimationOptionCurveEaseOut animations:^{ self->_roomPkView.transform = CGAffineTransformMakeScale(0.01, 0.01); } completion:^(BOOL finished) { [self->_roomPkView destroyViews]; [self->_roomPkView removeFromSuperview]; self->_roomPkView = nil; [self showNormalView]; }]; return; } if (_roomFriendView) { [self hideRoomFriendBlock:^{ [self showNormalView]; }]; return; } [self addSubview:self.normalSeatView]; [self.normalSeatView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; } -(void)showNormalView{ [self addSubview:self.normalSeatView]; [self.normalSeatView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; self.normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01); // 弹性动画 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0.1 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.normalSeatView.transform = CGAffineTransformIdentity; } completion:^(BOOL finished) { }]; } -(void)hideNormalViewBlock:(void(^)(void))completion{ _normalSeatView.transform = CGAffineTransformIdentity; // 弹性动画 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0.1 options:UIViewAnimationOptionCurveEaseOut animations:^{ self->_normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01); } completion:^(BOOL finished) { [self->_normalSeatView destroyViews]; [self->_normalSeatView removeFromSuperview]; self->_normalSeatView = nil; if (completion) { completion(); } }]; } //初始化拍卖视图 -(void)initAuctionView{ if (_singerView) { [self hideSinggerViewBlock:^{ [self showAuctionView]; }]; return; } if (_normalSeatView) { [self hideNormalViewBlock:^{ [self showAuctionView]; }]; return; } if (_songView) { [self hideSongViewBlock:^{ [self showAuctionView]; }]; return; } if (_roomFriendView) { [self hideRoomFriendBlock:^{ [self showAuctionView]; }]; return; } if (_signView) { [self hideSignViewBlock:^{ [self showAuctionView]; }]; return; } [self addSubview:self.auctionView]; [self.auctionView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; } -(void)showAuctionView{ [self addSubview:self.auctionView]; [self.auctionView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; self.auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01); // 弹性动画 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0.1 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.auctionView.transform = CGAffineTransformIdentity; } completion:^(BOOL finished) { }]; } -(void)hideAuctionViewBlock:(void(^)(void))completion{ _auctionView.transform = CGAffineTransformIdentity; // 弹性动画 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0.1 options:UIViewAnimationOptionCurveEaseOut animations:^{ self->_auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01); } completion:^(BOOL finished) { if (self->_auctionView.auctionInfoView != nil) { [self->_auctionView.auctionInfoView hide]; } [self->_auctionView destroyViews]; [self->_auctionView removeFromSuperview]; self->_auctionView = nil; if (completion) { completion(); } }]; } //初始化ktv -(void)initSingView{ if (_singerView) { [self hideSinggerViewBlock:^{ [self showSongView]; }]; return; } if (_normalSeatView) { [self hideNormalViewBlock:^{ [self showSongView]; }]; return; } if (_auctionView) { [self hideAuctionViewBlock:^{ [self showSongView]; }]; return; } if (_roomFriendView) { [self hideRoomFriendBlock:^{ [self showSongView]; }]; return; } if (_signView) { [self hideSignViewBlock:^{ [self showSongView]; }]; return; } [self addSubview:self.songView]; [self.songView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; } -(void)showSongView{ [self addSubview:self.songView]; [self.songView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; self.songView.transform = CGAffineTransformMakeScale(0.01, 0.01); // 弹性动画 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0.1 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.songView.transform = CGAffineTransformIdentity; } completion:^(BOOL finished) { }]; } -(void)hideSongViewBlock:(void(^)(void))completion{ [[QXAgoraEngine sharedEngine] ktv_EndSing]; _songView.transform = CGAffineTransformIdentity; // 弹性动画 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0.1 options:UIViewAnimationOptionCurveEaseOut animations:^{ self->_songView.transform = CGAffineTransformMakeScale(0.01, 0.01); } completion:^(BOOL finished) { [self->_songView destroyViews]; [self->_songView removeFromSuperview]; self->_songView = nil; if (completion) { completion(); } }]; } - (void)initRoomPKView{ if (_normalSeatView) { // [_normalSeatView removeFromSuperview]; // _normalSeatView = nil; _normalSeatView.transform = CGAffineTransformIdentity; // 弹性动画 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0.1 options:UIViewAnimationOptionCurveEaseOut animations:^{ self->_normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01); } completion:^(BOOL finished) { [self->_normalSeatView destroyViews]; [self->_normalSeatView removeFromSuperview]; self->_normalSeatView = nil; [self addSubview:self.roomPkView]; [self.roomPkView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; self.roomPkView.transform = CGAffineTransformMakeScale(0.01, 0.01); // 弹性动画 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0.1 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.roomPkView.transform = CGAffineTransformIdentity; } completion:^(BOOL finished) { }]; }]; return; } [self addSubview:self.roomPkView]; [self.roomPkView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; } -(void)initRoomFriendView{ if (_singerView) { [self hideSinggerViewBlock:^{ [self showRoomFriendView]; }]; return; } if (_normalSeatView) { [self hideNormalViewBlock:^{ [self showRoomFriendView]; }]; return; } if (_auctionView) { [self hideAuctionViewBlock:^{ [self showRoomFriendView]; }]; return; } if (_songView) { [self hideSongViewBlock:^{ [self showRoomFriendView]; }]; return; } if (_signView) { [self hideSignViewBlock:^{ [self showRoomFriendView]; }]; return; } [self addSubview:self.roomFriendView]; [self.roomFriendView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; } -(void)showRoomFriendView{ [self addSubview:self.roomFriendView]; [self.roomFriendView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; self.roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01); // 弹性动画 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0.1 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.roomFriendView.transform = CGAffineTransformIdentity; } completion:^(BOOL finished) { }]; } -(void)hideRoomFriendBlock:(void(^)(void))completion{ _roomFriendView.transform = CGAffineTransformIdentity; // 弹性动画 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0.1 options:UIViewAnimationOptionCurveEaseOut animations:^{ self->_roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01); } completion:^(BOOL finished) { [self->_roomFriendView destroyViews]; [self->_roomFriendView removeFromSuperview]; self->_roomFriendView = nil; if (completion) { completion(); } }]; } -(void)initSingerView{ if (_roomFriendView) { [self hideRoomFriendBlock:^{ [self showSingerView]; }]; return; } if (_normalSeatView) { [self hideNormalViewBlock:^{ [self showSingerView]; }]; return; } if (_auctionView) { [self hideAuctionViewBlock:^{ [self showSingerView]; }]; return; } if (_songView) { [self hideSongViewBlock:^{ [self showSingerView]; }]; return; } if (_signView) { [self hideSignViewBlock:^{ [self showSingerView]; }]; return; } [self addSubview:self.singerView]; [self.singerView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; } -(void)showSingerView{ [self addSubview:self.singerView]; [self.singerView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; self.singerView.transform = CGAffineTransformMakeScale(0.01, 0.01); // 弹性动画 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0.1 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.singerView.transform = CGAffineTransformIdentity; } completion:^(BOOL finished) { }]; } -(void)hideSinggerViewBlock:(void(^)(void))completion{ _singerView.transform = CGAffineTransformIdentity; // 弹性动画 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0.1 options:UIViewAnimationOptionCurveEaseOut animations:^{ self->_singerView.transform = CGAffineTransformMakeScale(0.01, 0.01); } completion:^(BOOL finished) { [self->_singerView destroyViews]; [self->_singerView removeFromSuperview]; self->_singerView = nil; if (completion) { completion(); } }]; } - (void)initCabinView{ self.cabinView = [[QXRoomSeatTypeCabinView alloc] init]; self.cabinView.delegate = self; [self addSubview:self.cabinView]; [self.cabinView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; } -(void)initSignView{ if (_roomFriendView) { [self hideRoomFriendBlock:^{ [self showSignView]; }]; return; } if (_normalSeatView) { [self hideNormalViewBlock:^{ [self showSignView]; }]; return; } if (_auctionView) { [self hideAuctionViewBlock:^{ [self showSignView]; }]; return; } if (_songView) { [self hideSongViewBlock:^{ [self showSignView]; }]; return; } if (_singerView) { [self hideSinggerViewBlock:^{ [self showSignView]; }]; return; } [self addSubview:self.signView]; [self.signView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; } -(void)showSignView{ [self addSubview:self.signView]; [self.signView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.bottom.equalTo(self); }]; self.signView.transform = CGAffineTransformMakeScale(0.01, 0.01); // 弹性动画 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0.1 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.signView.transform = CGAffineTransformIdentity; } completion:^(BOOL finished) { }]; } -(void)hideSignViewBlock:(void(^)(void))completion{ _signView.transform = CGAffineTransformIdentity; // 弹性动画 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0.1 options:UIViewAnimationOptionCurveEaseOut animations:^{ self->_signView.transform = CGAffineTransformMakeScale(0.01, 0.01); } completion:^(BOOL finished) { [self->_signView destroyViews]; [self->_signView removeFromSuperview]; self->_signView = nil; if (completion) { completion(); } }]; } -(void)setMyPitNumber:(NSInteger)myPitNumber{ _myPitNumber = myPitNumber; switch (self.type) { case QXRoomSeatViewTypeNormal: self.normalSeatView.myPitNumber = myPitNumber; break; case QXRoomSeatViewTypeSing: self.songView.myPitNumber = myPitNumber; break; case QXRoomSeatViewTypeAuction: self.auctionView.myPitNumber = myPitNumber; break; case QXRoomSeatViewTypePK: self.roomPkView.myPitNumber = myPitNumber; break; case QXRoomSeatViewTypeFriend: self.roomFriendView.myPitNumber = myPitNumber; break; case QXRoomSeatViewTypeSinger: self.singerView.myPitNumber = myPitNumber; break; case QXRoomSeatViewTypeSign: self.signView.myPitNumber = myPitNumber; break; default: break; } } -(void)setType:(QXRoomSeatViewType)type{ _type = type; switch (type) { case QXRoomSeatViewTypeNone:{ } break; case QXRoomSeatViewTypeNormal:{ [self initNomarlView]; } break; case QXRoomSeatViewTypeAuction:{ [self initAuctionView]; } break; case QXRoomSeatViewTypeSing:{ [self initSingView]; } break; case QXRoomSeatViewTypeCabin:{ [self initCabinView]; } break; case QXRoomSeatViewTypePK:{ [self initRoomPKView]; } break; case QXRoomSeatViewTypeFriend:{ [self initRoomFriendView]; } break; case QXRoomSeatViewTypeSinger:{ [self initSingerView]; } break; case QXRoomSeatViewTypeSign:{ [self initSignView]; } break; default: break; } } -(void)setLrcUrl:(NSString *)lrcUrl{ if (_songView) { _lrcUrl = lrcUrl; self.songView.lrcUrl = lrcUrl; } } -(void)setProgress:(NSUInteger)progress{ if (_songView) { _progress = progress; self.songView.progress = progress; } } -(void)setSpeakerPitch:(double)speakerPitch{ if (_songView) { _speakerPitch = speakerPitch; self.songView.speakerPitch = speakerPitch; } } -(void)setSongInfo:(QXSongListModel *)songInfo{ if (_songView) { _songInfo = songInfo; self.songView.songInfo = songInfo; } } -(void)setNextInfo:(QXSongListModel *)nextInfo{ if (_songView) { _nextInfo = nextInfo; self.songView.nextInfo = nextInfo; } } -(void)setRoomModel:(QXRoomModel *)roomModel{ _roomModel = roomModel; switch (self.type) { case QXRoomSeatViewTypeNormal: self.normalSeatView.roomModel = roomModel; break; case QXRoomSeatViewTypeSing: self.songView.roomModel = roomModel; break; case QXRoomSeatViewTypeAuction: self.auctionView.roomModel = roomModel; break; case QXRoomSeatViewTypeCabin: self.cabinView.roomModel = roomModel; break; case QXRoomSeatViewTypePK: self.roomPkView.roomModel = roomModel; break; case QXRoomSeatViewTypeFriend: self.roomFriendView.roomModel = roomModel; break; case QXRoomSeatViewTypeSinger: self.singerView.roomModel = roomModel; break; case QXRoomSeatViewTypeSign:{ self.signView.roomModel = roomModel; } break; default: break; } } -(void)setPkRoomModel:(QXRoomModel *)pkRoomModel{ _pkRoomModel = pkRoomModel; if (_roomPkView) { self.roomPkView.pkRoomModel = pkRoomModel; } } -(void)previewUserInfoWithUserId:(NSString *)userId{ [self.onlineListView hide]; _onlineListView = nil; if (self.delegate && [self.delegate respondsToSelector:@selector(didClickUserHeaderWithPitModel:userModel:isPkRoom:pkRoomId:isNoTakeOff:)]) { QXRoomOwnerModel *md = [QXRoomOwnerModel new]; md.user_id = userId; [self.delegate didClickUserHeaderWithPitModel:nil userModel:md isPkRoom:NO pkRoomId:@"" isNoTakeOff:NO]; } } -(void)previewRoomUserCharmListWithUserId:(NSString *)userId{ self.charmListView.roomId = self.roomModel.room_info.room_id; self.charmListView.userId = userId; [self.charmListView showInView:self.viewController.view]; } -(void)didClickUserHeaderWithPitModel:(QXRoomPitModel *)pitModel userModel:(id)userModel isPkRoom:(BOOL)isPkRoom pkRoomId:(NSString *)pkRoomId isNoTakeOff:(BOOL)isNoTakeOff{ if (self.delegate && [self.delegate respondsToSelector:@selector(didClickUserHeaderWithPitModel:userModel:isPkRoom:pkRoomId:isNoTakeOff:)]) { [self.delegate didClickUserHeaderWithPitModel:pitModel userModel:userModel isPkRoom:isPkRoom pkRoomId:pkRoomId isNoTakeOff:isNoTakeOff]; } } -(void)auctionGiftAction:(QXRoomPitModel *)user auctionId:(NSString *)auctionId{ if (self.delegate && [self.delegate respondsToSelector:@selector(auctionGiftAction:auctionId:)]) { [self.delegate auctionGiftAction:user auctionId:auctionId]; } } -(void)sendGiftWithUser:(QXRoomPitModel *)user{ if (self.delegate && [self.delegate respondsToSelector:@selector(sendGiftWithUser:)]) { [self.delegate sendGiftWithUser:user]; } } /// 拍卖类型发生变化 -(void)auctionTypeDidChanged:(NSString *)type{ if (self.roomModel == nil) { return; } if (_auctionView) { [self.auctionView auctionTypeDidChanged:type]; return; } } -(void)cabinRoomHotValueDidChanged:(NSString *)hot_value{ if (_cabinView) { [self.cabinView cabinRoomHotValueDidChanged:hot_value]; } } -(void)clearCharm{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView clearCharm]; break; case QXRoomSeatViewTypeSing: [self.songView clearCharm]; break; case QXRoomSeatViewTypeAuction: [self.auctionView clearCharm]; break; case QXRoomSeatViewTypeCabin: break; case QXRoomSeatViewTypePK: [self.roomPkView clearCharm]; break; case QXRoomSeatViewTypeFriend: [self.roomFriendView clearCharm]; break; case QXRoomSeatViewTypeSinger: [self.singerView clearCharm]; break; case QXRoomSeatViewTypeSign: [self.signView clearCharm]; break; default: break; } } /// 清除个人魅力 -(void)roomClearUserCharmWithUserId:(NSString *)userId{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView roomClearUserCharmWithUserId:userId]; break; case QXRoomSeatViewTypeSing: [self.songView roomClearUserCharmWithUserId:userId]; break; case QXRoomSeatViewTypeAuction: [self.auctionView roomClearUserCharmWithUserId:userId]; break; case QXRoomSeatViewTypeCabin: break; case QXRoomSeatViewTypePK: [self.roomPkView roomClearUserCharmWithUserId:userId]; break; case QXRoomSeatViewTypeFriend: [self.roomFriendView roomClearUserCharmWithUserId:userId]; break; case QXRoomSeatViewTypeSinger: [self.singerView roomClearUserCharmWithUserId:userId]; break; case QXRoomSeatViewTypeSign: [self.signView roomClearUserCharmWithUserId:userId]; break; default: break; } } /// 房间内换麦 -(void)roomSeatExchangedWithFromPitNumber:(NSInteger)fromPitNumber toPitNumber:(NSInteger)toPitNumber userInfo:(QXUserHomeModel*)userInfo isPK:(BOOL)isPK{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView roomSeatExchangedWithFromPitNumber:fromPitNumber toPitNumber:toPitNumber userInfo:userInfo isPK:isPK]; break; case QXRoomSeatViewTypeSing: // [self.songView clearCharm]; break; case QXRoomSeatViewTypeAuction: break; case QXRoomSeatViewTypeCabin: break; case QXRoomSeatViewTypePK: [self.roomPkView roomSeatExchangedWithFromPitNumber:fromPitNumber toPitNumber:toPitNumber userInfo:userInfo isPK:isPK]; break; case QXRoomSeatViewTypeFriend: [self.roomFriendView roomSeatExchangedWithFromPitNumber:fromPitNumber toPitNumber:toPitNumber userInfo:userInfo isPK:isPK]; break; case QXRoomSeatViewTypeSinger: [self.singerView roomSeatExchangedWithFromPitNumber:fromPitNumber toPitNumber:toPitNumber userInfo:userInfo isPK:isPK]; break; case QXRoomSeatViewTypeSign: [self.signView roomSeatExchangedWithFromPitNumber:fromPitNumber toPitNumber:toPitNumber userInfo:userInfo isPK:isPK]; break; default: break; } } -(void)setSeatCharmWithUser:(QXUserHomeModel *)model{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView setSeatCharmWithUser:model]; break; case QXRoomSeatViewTypeSing: [self.songView setSeatCharmWithUser:model]; break; case QXRoomSeatViewTypeAuction: [self.auctionView setSeatCharmWithUser:model]; break; case QXRoomSeatViewTypeCabin: // self.cabinView.roomModel = roomModel; break; case QXRoomSeatViewTypePK: [self.roomPkView setSeatCharmWithUser:model]; break; case QXRoomSeatViewTypeFriend: [self.roomFriendView setSeatCharmWithUser:model]; break; case QXRoomSeatViewTypeSinger: [self.singerView setSeatCharmWithUser:model]; break; case QXRoomSeatViewTypeSign: [self.signView setSeatCharmWithUser:model]; break; default: break; } } -(void)setSeatCharmWithUsers:(NSArray *)users{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView setSeatCharmWithUsers:users]; break; case QXRoomSeatViewTypeSing: [self.songView setSeatCharmWithUsers:users]; break; case QXRoomSeatViewTypeAuction: [self.auctionView setSeatCharmWithUsers:users]; break; case QXRoomSeatViewTypeCabin: // self.cabinView.roomModel = roomModel; break; case QXRoomSeatViewTypePK: [self.roomPkView setSeatCharmWithUsers:users]; break; case QXRoomSeatViewTypeFriend: [self.roomFriendView setSeatCharmWithUsers:users]; break; case QXRoomSeatViewTypeSinger: [self.singerView setSeatCharmWithUsers:users]; break; case QXRoomSeatViewTypeSign: [self.signView setSeatCharmWithUsers:users]; break; default: break; } } -(void)setSeatIsLock:(NSString *)isLock pitNumber:(NSString *)pitNumber{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView setSeatIsLock:isLock pitNumber:pitNumber]; break; case QXRoomSeatViewTypeSing: // [self.songView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number]; break; case QXRoomSeatViewTypeAuction: // [self.auctionView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number]; break; case QXRoomSeatViewTypeCabin: // self.cabinView.roomModel = roomModel; break; case QXRoomSeatViewTypePK: [self.roomPkView setSeatIsLock:isLock pitNumber:pitNumber]; break; case QXRoomSeatViewTypeSinger: [self.singerView setSeatIsLock:isLock pitNumber:pitNumber]; break; default: break; } } -(void)pkStartWithPkEndTimes:(NSString *)pk_end_times pk_id:(NSString*)pk_id{ if (self.roomModel == nil) { return; } if (_roomPkView) { [self.roomPkView pkStartWithPkEndTimes:pk_end_times pk_id:pk_id]; } } -(void)roomPKValueDidChangedWithRoomIdA:(NSString*)room_id_a create_value_a:(NSString*)create_value_a room_id_b:(NSString*)room_id_b receive_value_b:(NSString*)receive_value_b{ if (self.roomModel == nil) { return; } if (_roomPkView) { [self.roomPkView roomPKValueDidChangedWithRoomIdA:room_id_a create_value_a:create_value_a room_id_b:room_id_b receive_value_b:receive_value_b]; } } /// pk结果 -(void)pkResultWithIsVictory:(NSInteger)isVictory end_time:(NSString*)end_time victory_name:(NSString*)victory_name victory_cover:(NSString*)victory_cover defeated_name:(NSString*)defeated_name defeated_cover:(NSString*)defeated_cover{ if (self.roomModel == nil) { return; } if (_roomPkView) { [self.roomPkView pkResultWithIsVictory:isVictory end_time:end_time victory_name:victory_name victory_cover:victory_cover defeated_name:defeated_name defeated_cover:defeated_cover]; } } #pragma mark - 交友房 /// 交友房阶段发生变化 step 阶段 1等待 2心动 3牵手 friend_id 场次id -(void)friendPartDidChangedWithType:(NSString*)step friend_id:(NSString*)friend_id end_time:(NSString*)end_time relationModel:(QXRoomFriendRelationModel*)relationModel{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeFriend:{ [self.roomFriendView friendPartDidChangedWithType:step friend_id:friend_id end_time:end_time relationModel:relationModel]; } break; default: break; } } /// 交友房时间发生延时 end_time 截止时间 -(void)friendTimeDelayWithTime:(NSString*)end_time{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeFriend:{ [self.roomFriendView friendTimeDelayWithTime:end_time]; } break; default: break; } } -(void)friendSeatDidChanged:(NSArray *)pitArray{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeFriend:{ [self.roomFriendView friendSeatDidChanged:pitArray]; } break; default: break; } } -(void)friendHeartNumberDidChanged:(NSArray *)heartArray{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeFriend:{ [self.roomFriendView friendHeartNumberDidChanged:heartArray]; } break; default: break; } } /// 关系创建完成 -(void)friendRelationIsCreatedWithrelationModel:(QXRoomFriendRelationModel*)relationModel{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeFriend:{ [self.roomFriendView friendRelationIsCreatedWithrelationModel:relationModel]; } break; default: break; } } /// 有人退出交友房私密小屋 -(void)friendCabinRoomIsQuit{ switch (self.type) { case QXRoomSeatViewTypeCabin:{ [self.cabinView friendCabinRoomIsQuit]; } break; default: break; } } /// 私密小屋时间发生延时 -(void)friendCabinRoomTimeDelayWithTime:(NSString*)end_time{ switch (self.type) { case QXRoomSeatViewTypeCabin:{ [self.cabinView friendCabinRoomTimeDelayWithTime:end_time]; } break; default: break; } } /// 助力 -(void)friendPowerSendGiftWithUser:(QXRoomPitModel *)user heartId:(NSString *)heartId{ if (self.roomModel == nil) { return; } if ([self.delegate respondsToSelector:@selector(friendPowerSendGiftWithUser:heartId:)]) { [self.delegate friendPowerSendGiftWithUser:user heartId:heartId]; } } -(QXRoomSeatTypeNormalView *)normalSeatView{ if (!_normalSeatView) { _normalSeatView = [[QXRoomSeatTypeNormalView alloc] init]; _normalSeatView.delegate = self; } return _normalSeatView; } -(QXRoomSeatTypeSongView *)songView{ if (!_songView) { _songView = [[QXRoomSeatTypeSongView alloc] init]; _songView.delegate = self; } return _songView; } -(void)didHugSeatWithPitNumber:(NSString *)pitNumber{ [self showOnlineListWithPitNumber:pitNumber]; } -(void)didUpDownSeatWithUser:(QXUserHomeModel *)user isUpSeat:(BOOL)isUpSeat pit_number:(NSInteger)pit_number isPK:(BOOL)isPK{ if (self.roomModel == nil) { return; } switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number isPK:isPK]; break; case QXRoomSeatViewTypeSing: [self.songView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number isPK:isPK]; break; case QXRoomSeatViewTypeAuction: [self.auctionView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number isPK:isPK]; break; case QXRoomSeatViewTypeCabin: // self.cabinView.roomModel = roomModel; break; case QXRoomSeatViewTypePK: [self.roomPkView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number isPK:isPK]; break; case QXRoomSeatViewTypeFriend: [self.roomFriendView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number isPK:isPK]; break; case QXRoomSeatViewTypeSinger: [self.singerView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number isPK:isPK]; break; case QXRoomSeatViewTypeSign: [self.signView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number isPK:isPK]; break; default: break; } } -(void)didAuctiontUpDownSeatWithUser:(QXUserHomeModel *)user isUpSeat:(BOOL)isUpSeat{ if (_auctionView) { [self.auctionView didAuctiontUpDownSeatWithUser:user isUpSeat:isUpSeat]; } } -(void)auctionStartOrEndIsStart:(BOOL)isStart user:(QXRoomAuctionUser *)user getUser:(QXRoomAuctionUser *)getUser{ if (self.roomModel == nil) { return; } if (_auctionView) { [self.auctionView auctionStartOrEndIsStart:isStart user:user getUser:getUser]; } } -(void)auctionListDidChanged:(NSArray *)list{ if (self.roomModel == nil) { return; } if (_auctionView) { [self.auctionView auctionListDidChanged:list]; } } -(void)auctionDelayTimeWithEndTime:(NSString *)endTime{ if (self.roomModel == nil) { return; } if (_auctionView) { [self.auctionView auctionDelayTimeWithEndTime:endTime]; } } -(void)songRoomCharmRankListDidChanged:(NSArray *)list{ if (_songView) { [self.songView songRoomCharmRankListDidChanged:list]; } } -(void)showOnlineListWithPitNumber:(NSString*)pitNumber{ self.onlineListView.isHugSeat = YES; self.onlineListView.pitNumber = pitNumber; self.onlineListView.roomId = self.roomModel.room_info.room_id; [self.onlineListView showInView:self.viewController.view]; } /// 点唱房当前歌曲信息发生变化 -(void)singerSongCurrentSongInfoDidChanged:(QXUserSongListModel*)model{ if (_singerView) { [self.singerView singerSongCurrentSongInfoDidChanged:model]; } } /// 点唱房下一首歌信息发生变化 -(void)singerSongNextSongInfoDidChanged:(QXUserSongListModel*)model{ if (_singerView) { [self.singerView singerSongNextSongInfoDidChanged:model]; } } /// 已点歌曲数量发生变化 -(void)singerSongCountDidChanged:(NSString*)count{ if (_singerView) { [self.singerView singerSongCountDidChanged:count]; } } -(void)signDidStartWithEndTime:(NSString *)endTime signId:(nonnull NSString *)signId signDay:(nonnull NSString *)signDay signValue:(nonnull NSString *)signValue{ if (_signView) { [self.signView signDidStartWithEndTime:endTime signId:signId signDay:signDay signValue:signValue]; } } /// 签约结束 -(void)signDidEndWithUserInfo1:(QXUserHomeModel*)userInfo1 userInfo2:(QXUserHomeModel*)userInfo2 sign_value:(NSString*)sign_value{ if (_signView) { [self.signView signDidEndWithUserInfo1:userInfo1 userInfo2:userInfo2 sign_value:sign_value]; } } /// 签约身价变化 -(void)signValueDidChangedWithSignUserInfo:(QXUserHomeModel*)signUserInfo sign_value:(NSString*)sign_value signId:(NSString*)signId sign_coin_list:(NSArray*)sign_coin_list{ if (_signView) { [self.signView signValueDidChangedWithSignUserInfo:signUserInfo sign_value:sign_value signId:signId sign_coin_list:sign_coin_list]; } } /// 签约发生延时 -(void)signTimeDelayWithEndTime:(NSString*)endTime{ if (_signView) { [self.signView signTimeDelayWithEndTime:endTime]; } } -(void)roomUserInfoDidChanged:(QXUserHomeModel *)user{ switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView roomUserInfoDidChanged:user]; break; case QXRoomSeatViewTypeSing: [self.songView roomUserInfoDidChanged:user]; break; case QXRoomSeatViewTypeAuction: [self.auctionView roomUserInfoDidChanged:user]; break; case QXRoomSeatViewTypeCabin: // self.cabinView.roomModel = roomModel; break; case QXRoomSeatViewTypePK: [self.roomPkView roomUserInfoDidChanged:user]; break; case QXRoomSeatViewTypeFriend: [self.roomFriendView roomUserInfoDidChanged:user]; break; case QXRoomSeatViewTypeSinger: [self.singerView roomUserInfoDidChanged:user]; break; case QXRoomSeatViewTypeSign: [self.signView roomUserInfoDidChanged:user]; break; default: break; } } -(void)stopHWDMP4{ switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView stopHWDMP4]; break; case QXRoomSeatViewTypeSing: [self.songView stopHWDMP4]; break; case QXRoomSeatViewTypeAuction: [self.auctionView stopHWDMP4]; break; case QXRoomSeatViewTypeCabin: [self.cabinView stopHWDMP4]; break; case QXRoomSeatViewTypePK: [self.roomPkView stopHWDMP4]; break; case QXRoomSeatViewTypeFriend: [self.roomFriendView stopHWDMP4]; break; case QXRoomSeatViewTypeSinger: [self.singerView stopHWDMP4]; break; case QXRoomSeatViewTypeSign: [self.signView stopHWDMP4]; break; default: break; } } -(void)playHWDMP4{ switch (self.type) { case QXRoomSeatViewTypeNormal: [self.normalSeatView playHWDMP4]; break; case QXRoomSeatViewTypeSing: [self.songView playHWDMP4]; break; case QXRoomSeatViewTypeAuction: [self.auctionView playHWDMP4]; break; case QXRoomSeatViewTypeCabin: [self.cabinView playHWDMP4]; break; case QXRoomSeatViewTypePK: [self.roomPkView playHWDMP4]; break; case QXRoomSeatViewTypeFriend: [self.roomFriendView playHWDMP4]; break; case QXRoomSeatViewTypeSinger: [self.singerView playHWDMP4]; break; case QXRoomSeatViewTypeSign: [self.signView playHWDMP4]; break; default: break; } } -(void)destroyViews{ if (_normalSeatView) { [self.normalSeatView destroyViews]; _normalSeatView = nil; } if (_songView) { [self.songView destroyViews]; _songView = nil; } if (_auctionView) { [self.auctionView destroyViews]; } if (_roomPkView) { [self.roomPkView destroyViews]; _roomPkView = nil; } if (_roomFriendView) { [self.roomFriendView destroyViews]; _roomFriendView = nil; } if (_cabinView) { [self.cabinView destroyViews]; _cabinView = nil; } if (_singerView) { [self.singerView destroyViews]; _singerView = nil; } if (_signView) { [_singerView destroyViews]; } } -(QXRoomOnlineUserListView *)onlineListView{ if (!_onlineListView) { _onlineListView = [[QXRoomOnlineUserListView alloc] initWithFrame:[UIScreen mainScreen].bounds]; _onlineListView.delegate = self; } return _onlineListView; } -(QXRoomSeatTypeSingerView *)singerView{ if (!_singerView) { _singerView = [[QXRoomSeatTypeSingerView alloc] init]; _singerView.delegate = self; } return _singerView; } -(QXRoomSeatTypeAuctionView *)auctionView{ if (!_auctionView) { _auctionView = [[QXRoomSeatTypeAuctionView alloc] init]; _auctionView.delegate = self; } return _auctionView; } -(QXRoomSeatPKView *)roomPkView{ if (!_roomPkView) { _roomPkView = [[QXRoomSeatPKView alloc] init]; _roomPkView.delegate = self; } return _roomPkView; } -(QXRoomSeatTypeFrientView *)roomFriendView{ if (!_roomFriendView) { _roomFriendView = [[QXRoomSeatTypeFrientView alloc] init]; _roomFriendView.delegate = self; } return _roomFriendView; } - (QXRoomSeatTypeSignView *)signView{ if (!_signView) { _signView = [[QXRoomSeatTypeSignView alloc] init]; _signView.delegate = self; } return _signView; } -(QXRoomUserCharmView *)charmListView{ if (!_charmListView) { _charmListView = [[QXRoomUserCharmView alloc] initWithFrame:[UIScreen mainScreen].bounds]; _charmListView.delegate = self; } return _charmListView; } @end