交友房初步完成

This commit is contained in:
启星
2025-08-22 19:02:44 +08:00
parent 4ab82fa98f
commit ddeec09ea5
147 changed files with 3566 additions and 363 deletions

View File

@@ -15,6 +15,7 @@
#import "QXRankCPListCell.h"
#import "QXRankCPTopThreeView.h"
#import "QXHomePageNetwork.h"
#import "QXUserHomePageViewController.h"
@interface QXRankHomeSubVC ()<UITableViewDelegate,UITableViewDataSource>
@property (nonatomic,strong)QXRankTypeView *rankTypeView;
@@ -189,6 +190,19 @@
}
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
QXMyRankModel *model = self.dataArray[indexPath.row];
// if (self.rankType == 0) {
// if ([model.room_id isExist]) {
// [[QXGlobal shareGlobal] joinRoomWithRoomId:model.room_id isRejoin:NO navagationController:self.navigationController];
// }
// return;
// }
if (self.rankType == 1 || self.rankType == 2) {
QXUserHomePageViewController *vc = [[QXUserHomePageViewController alloc] init];
vc.user_id = model.user_id;
[self.navigationController pushViewController:vc animated:YES];
return;
}
// if (self.rankType != 4) {//CP
// QXHomeRoomListModel *model = self.dataArray[indexPath.row];
// SRPersonalViewController *pvc = [[SRPersonalViewController alloc] initWithUserId:[model.user_id longLongValue]];

View File

@@ -0,0 +1,22 @@
//
// QXRoomViewController+Friend.h
// QXLive
//
// Created by 启星 on 2025/8/20.
//
#import "QXRoomViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXRoomViewController (Friend)
/// 重置麦位视图
-(void)resetFriendViews;
/// 交友房阶段发生变化 step 阶段 1等待 2心动 3牵手 friend_id 场次id
//-(void)friendPartDidChangedWithType:(NSString*)step friend_id:(NSString*)friend_id;
///// 交友房时间发生延时 end_time 截止时间
//-(void)friendTimeDelayWithTime:(NSString*)end_time;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,87 @@
//
// QXRoomViewController+Friend.m
// QXLive
//
// Created by on 2025/8/20.
//
#import "QXRoomViewController+Friend.h"
#import "QXAgoraEngine.h"
@implementation QXRoomViewController (Friend)
-(void)resetFriendViews{
[self.seatContentView setType:QXRoomSeatViewTypeFriend];
[self.seatContentView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.right.equalTo(self.view);
make.top.mas_equalTo(self.titleView.bottom);
make.height.mas_equalTo(ScaleWidth(377));
}];
[self.chatListView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.bottomView.mas_top);
make.left.equalTo(self.view);
make.top.equalTo(self.seatContentView.mas_bottom);
// make.right.equalTo(self.soundBtn.mas_left).offset(-16);
make.width.mas_equalTo(ScaleWidth(280));
}];
}
-(void)friendPartDidChangedWithType:(NSString*)step friend_id:(NSString*)friend_id end_time:(NSString*)end_time relationModel:(nonnull QXRoomFriendRelationModel *)relationModel{
[self.seatContentView friendPartDidChangedWithType:step friend_id:friend_id end_time:end_time relationModel:relationModel];
}
-(void)friendTimeDelayWithTime:(NSString *)end_time{
[self.seatContentView friendTimeDelayWithTime:end_time];
}
-(void)friendSeatDidChanged:(NSArray<QXRoomPitModel *> *)pitArray{
BOOL haveMe = NO;
if (self.seatContentView.myPitNumber == 9 || self.seatContentView.myPitNumber == 10) {
haveMe = YES;
}
for (QXRoomPitModel*md in pitArray) {
if ([md.user_id isEqualToString:QXGlobal.shareGlobal.loginModel.user_id]) {
self.seatContentView.myPitNumber = md.pit_number.integerValue;
haveMe = YES;
break;
}
}
if (haveMe == NO) {
self.bottomView.status = 1;
[[QXAgoraEngine sharedEngine] setClientRoleBroadcaster:NO];
}else{
self.bottomView.status = 2;
if ([QXAgoraEngine sharedEngine].isOpenMic) {
[self.bottomView setMuteAudioStatus:1];
}else{
[self.bottomView setMuteAudioStatus:0];
}
}
[self.seatContentView friendSeatDidChanged:pitArray];
}
-(void)friendPowerSendGiftWithUser:(QXRoomPitModel *)user heartId:(NSString *)heartId{
self.sendGiftView.type = QXSendGiftViewTypeFriend;
QXRoomPitModel *model = [[QXRoomPitModel alloc] init];
model.pit_number = user.pit_number;
model.user_id = user.user_id;
model.nickname = user.nickname;
model.avatar = user.avatar;
self.sendGiftView.userModel = model;
self.sendGiftView.heartId = heartId;
self.sendGiftView.roomId = self.roomId;
[self.sendGiftView showInView:self.view];
}
-(void)friendHeartNumberDidChanged:(NSArray<QXRoomFriendHeartListModel *> *)heartArray{
[self.seatContentView friendHeartNumberDidChanged:heartArray];
}
///
-(void)friendRelationIsCreatedWithrelationModel:(QXRoomFriendRelationModel*)relationModel{
[self.seatContentView friendRelationIsCreatedWithrelationModel:relationModel];
}
/// 退
-(void)friendCabinRoomIsQuit{
[[QXGlobal shareGlobal] quitRoomWithRoomId:self.roomId];
[self.navigationController popViewControllerAnimated:YES];
}
///
-(void)friendCabinRoomTimeDelayWithTime:(NSString*)end_time{
[self.seatContentView friendCabinRoomTimeDelayWithTime:end_time];
}
@end

View File

@@ -6,13 +6,33 @@
//
#import "QXBaseViewController.h"
#import "QXGlobal.h"
#import "QXRoomSeatView.h"
#import "QXRoomChatListView.h"
#import "QXRoomTitleView.h"
#import "QXRoomBottomView.h"
#import "QXRoomMessageManager.h"
#import "QXSendGiftView.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXRoomViewController : QXBaseViewController
@interface QXRoomViewController : QXBaseViewController<QXRoomMessageManagerDelegate,QXRoomSeatDelegate>
@property (nonatomic,strong)NSString *roomId;
/// 是否为最小化房间进来
@property (nonatomic,assign)BOOL isReJoin;
/// 麦位视图
@property (nonatomic,strong)QXRoomSeatView *seatContentView;
/// 聊天列表
@property (nonatomic,strong)QXRoomChatListView *chatListView;
/// 顶部房间信息
@property (nonatomic,strong)QXRoomTitleView *titleView;
/// 底部工具栏
@property (nonatomic,strong)QXRoomBottomView *bottomView;
/// 发送礼物
@property (nonatomic,strong)QXSendGiftView *sendGiftView;
-(void)configBottomTools;
@end
NS_ASSUME_NONNULL_END

View File

@@ -6,16 +6,10 @@
//
#import "QXRoomViewController.h"
#import "QXRoomTitleView.h"
#import "QXRoomSeatView.h"
#import "QXRoomBottomView.h"
#import "QXRoomChatListView.h"
#import "QXRoomSongListView.h"
#import "QXSendGiftView.h"
#import "QXSoundListView.h"
#import "QXUpSeatView.h"
#import "QXMineNetwork.h"
#import "QXRoomMessageManager.h"
#import "QXGiftPlayerManager.h"
#import "QXAgoraEngine.h"
#import "QXRoomSettingView.h"
@@ -34,29 +28,18 @@
#import "QXReportViewController.h"
#import "QXMessageViewController.h"
#import "QXRoomSubsidyViewController.h"
#import "QXRoomViewController+Friend.h"
@interface QXRoomViewController ()<
QXRoomBottomViewDelegate,
QXRoomMessageManagerDelegate,
QXRoomSettingViewDelegate,
QXAgoraEngineMediaPlayerDelegate,
QXRoomSeatDelegate,
QXRoomUserInfoViewDelegate
>
@property (nonatomic,strong)UIImageView *roomBgImageView;
@property (nonatomic,strong)UIView *roomBgCoverView;
///
@property (nonatomic,strong)QXRoomTitleView *titleView;
///
@property (nonatomic,strong)QXRoomSeatView *seatContentView;
///
@property (nonatomic,strong)QXRoomBottomView *bottomView;
///
@property (nonatomic,strong)QXRoomChatListView *chatListView;
/// view
@property (nonatomic,strong)QXRoomSongListView *songListView;
///
@property (nonatomic,strong)QXSendGiftView *sendGiftView;
///
@property (nonatomic,strong)QXSoundListView *soundListView;
///
@@ -388,6 +371,9 @@ QXRoomUserInfoViewDelegate
make.width.mas_equalTo(ScaleWidth(280));
}];
[self.view insertSubview:self.movieView atIndex:0];
}else if (self.roomModel.room_info.type_id.intValue == 7) {
///
[self resetFriendViews];
}
if (self.roomModel.room_info.last_pk_room_id.isExist) {
@@ -542,9 +528,9 @@ QXRoomUserInfoViewDelegate
if ((self.roomModel.room_info.type_id.intValue == 1 || self.roomModel.room_info.type_id.intValue == 3 || self.roomModel.room_info.type_id.intValue == 4) && self.roomModel.room_info.label_id.intValue == 1) {
hasPK = YES;
}
BOOL hasSong = YES;
if (self.roomModel.room_info.type_id.intValue == 2){
hasSong = NO;
BOOL hasSong = NO;
if (self.roomModel.room_info.type_id.intValue == 1 || self.roomModel.room_info.type_id.intValue == 3 || self.roomModel.room_info.type_id.intValue == 4){
hasSong = YES;
}
///
if (self.seatContentView.myPitNumber <= 0) {
@@ -1597,14 +1583,28 @@ QXRoomUserInfoViewDelegate
_sendGiftView.roomId = self.roomId;
// [_sendGiftView reloadData];
MJWeakSelf
_sendGiftView.roomSendSuccessBlock = ^(BOOL isAuction, QXGiftModel * _Nonnull giftModel, NSString * _Nonnull userId, NSString * _Nonnull auctionId) {
_sendGiftView.roomSendSuccessBlock = ^(QXSendGiftViewType sendType, QXGiftModel * _Nonnull giftModel, NSString * _Nonnull userId, NSString * _Nonnull optionId) {
if (self->_continuousView == nil) {
[weakSelf.view addSubview:weakSelf.continuousView];
}
weakSelf.continuousView.giftModel = giftModel;
weakSelf.continuousView.isAuction = isAuction;
weakSelf.continuousView.sendType = sendType;
weakSelf.continuousView.userId = userId;
weakSelf.continuousView.auctionId = auctionId;
switch (sendType) {
case QXSendGiftViewTypeFriend:{
weakSelf.continuousView.heartId = optionId;
weakSelf.continuousView.auctionId = @"";
}
break;
case QXSendGiftViewTypeAuction:{
weakSelf.continuousView.auctionId = optionId;
weakSelf.continuousView.heartId = @"";
}
break;
default:
break;
}
};
}
return _sendGiftView;