// // DDMyRoomListViewController.m // DingDangApp // // Created by apple on 2023/6/20. // #import "DDMyRoomListViewController.h" #import "DDMyRoomListTableViewCell.h" #import "DDRealNameModel.h" #import "DDMyAuthorStatusViewController.h" #import "DDMyAuthorViewController.h" #import "CreatRoomViewController.h" @interface DDMyRoomListViewController () @end @implementation DDMyRoomListViewController - (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; } - (void)dealloc{ } - (void)viewDidLoad { [super viewDidLoad]; [self creatV]; [self initRequest]; [[AppMessageManager shareManager].delegate addDelegate:self delegateQueue:dispatch_get_main_queue()]; } //发送房间信息更新 - (void)sendReloadRoomInfo:(RoomModel*)roomModel{ NSMutableArray * tempArr = [NSMutableArray array]; [tempArr addObjectsFromArray:self.dataArr]; [tempArr enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { if ([obj isKindOfClass:[RoomModel class]]) { RoomModel * model = obj; if ([model.room_id isEqualToString:roomModel.room_id]) { [tempArr replaceObjectAtIndex:idx withObject:roomModel]; *stop = YES; } } }]; self.dataArr = tempArr; dispatch_async(dispatch_get_main_queue(), ^{ [self.myTableView reloadData]; }); } //关闭房间 - (void)sendRoomIsOpenMessage:(NSDictionary *)dic{ NSString * room_id = dic[@"room_id"]; NSString * online = dic[@"online"]; __block NSInteger removeIndex = 0; NSMutableArray * tempArr = [NSMutableArray array]; [tempArr addObjectsFromArray:self.dataArr]; [tempArr enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { if ([obj isKindOfClass:[RoomModel class]]) { RoomModel * model = obj; if ([model.room_id isEqualToString:room_id]) { removeIndex = idx; model.online = online; [tempArr replaceObjectAtIndex:idx withObject:model]; *stop = YES; } } }]; if ([online isEqualToString:@"-1"]) { [self initRequest]; } self.dataArr = tempArr; dispatch_async(dispatch_get_main_queue(), ^{ [self.myTableView reloadData]; }); } -(void)creatV { self.view.backgroundColor = [UIColor jk_colorWithHexString:@"#F6F6F6"]; [self.view addSubview:self.myTableView]; if ([self.type isEqualToString:@"myRoom"]) { [self.myTableView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.view); make.left.right.mas_equalTo(0); make.bottom.mas_equalTo(-DDBottomHeight()-50); }]; [self.view addSubview:self.creatRoomBtn]; [self.creatRoomBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.myTableView.mas_bottom).offset(3); make.centerX.equalTo(self.view); make.width.mas_equalTo(320); make.height.mas_equalTo(44); }]; [self.creatRoomBtn layoutIfNeeded]; [self.creatRoomBtn setBackgroundImage:[UIImage imageNamed:@"myinfo_53"] forState:(UIControlStateNormal)]; [self.creatRoomBtn roundCorners:UIRectCornerAllCorners radius:self.creatRoomBtn.height/2]; }else{ [self.myTableView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.view); make.left.right.mas_equalTo(0); make.bottom.mas_equalTo(-DDBottomHeight()); }]; } } -(void)initRequest { self.pageNum = 1; [self requestData]; } -(void)requestData { NSMutableDictionary *requestDict = [NSMutableDictionary dictionary]; [requestDict setObject:@(20) forKey:@"current_page"]; [requestDict setObject:@(self.pageNum) forKey:@"page_number"]; NSString *postUrl = @""; if ([self.type isEqualToString:@"myRoom"]) { /// /my/room/list postUrl = [DDEncryptManager dd_aesDecryptWithText:@"mcsaWqOdUsSOpNBfRcldbA=="]; }else{ /// /my/collect/list postUrl = [DDEncryptManager dd_aesDecryptWithText:@"AQO+entAAdrXRwECGySbUyHcb+nbWudrBtFn4gZ8FBA="]; } WeakSelf(weakSelf) [NetworkRequest requestPOST:postUrl parameters:requestDict block:^(BaseResponse * _Nonnull response) { if (response.code == 200) { if ([ToolsObject IsNullWithObject:response.data]) { [weakSelf endrefresh]; return; } if (weakSelf.pageNum == 1) { [weakSelf.dataArr removeAllObjects]; } weakSelf.oneself_num = [response.data[@"oneself_num"] integerValue]; [weakSelf.dataArr addObjectsFromArray:[NSArray yy_modelArrayWithClass:RoomModel.class json:response.data[@"record"]]]; [weakSelf endrefresh]; dispatch_async(dispatch_get_main_queue(), ^{ [weakSelf.myTableView reloadData]; }); if ([response.data[@"next"]integerValue] == 0) { [weakSelf.myTableView.mj_footer endRefreshingWithNoMoreData]; } }else{ [weakSelf endrefresh]; } }]; } -(void)endrefresh { [self.myTableView.mj_header endRefreshing]; [self.myTableView.mj_footer endRefreshing]; } - (void)creatRoomClick{ if ([ToolsObject getUserModel].realname_status == 1) { if (self.oneself_num>=2) { DDCustomAlertView * alertView = [[DDCustomAlertView alloc] init:@[@"我知道了"] title:@"创建房间已到上限" content:@"" alertType:0]; [alertView showAlertView]; return; } WeakSelf(ws); CreatRoomViewController *vc = [[CreatRoomViewController alloc] init]; vc.creatRoomSuccess = ^(NSString * _Nonnull roomID) { dispatch_async(dispatch_get_main_queue(), ^{ [ws.myTableView.mj_header beginRefreshing]; [[ToolsObject shareTools] jumpToRoomVC:roomID followUser:[RoomUserInfoModel new]]; }); }; [self.navigationController pushViewController:vc animated:YES]; return; } DDCustomAlertView * alertView = [[DDCustomAlertView alloc] init:@[@"取消",@"去认证"] title:@"开播需要先进行实名认证,是否立即去实名认证?" content:@"" alertType:0]; WeakSelf(weakSelf) alertView.alertViewClickBlock = ^(NSInteger index, NSString * _Nonnull title) { if (index == 1){ [NetworkRequest requestPOST:@"/user/check/realname" parameters:@{}.mutableCopy block:^(BaseResponse * _Nonnull response) { if ([ToolsObject IsNullWithObject:response.data]) { return; } if (response.code == 200) { DDRealNameModel *model = [DDRealNameModel yy_modelWithJSON:response.data]; if (model.status == 4) { DDMyAuthorViewController *vc = [[DDMyAuthorViewController alloc]init]; vc.hidesBottomBarWhenPushed = YES; [weakSelf.navigationController pushViewController:vc animated:YES]; }else{ DDMyAuthorStatusViewController * statusVC = [[DDMyAuthorStatusViewController alloc] init]; statusVC.realNameModel = model; statusVC.authenType = model.status; [weakSelf.navigationController pushViewController:statusVC animated:YES]; } } }]; } }; [alertView showAlertView]; } -(UITableView *)myTableView { if (!_myTableView) { _myTableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; _myTableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; _myTableView.estimatedSectionHeaderHeight = 0; _myTableView.estimatedSectionFooterHeight = 0; _myTableView.dataSource = self; _myTableView.delegate = self; _myTableView.estimatedRowHeight = 0; _myTableView.separatorStyle = UITableViewCellSeparatorStyleNone; _myTableView.separatorColor = [UIColor clearColor]; _myTableView.backgroundColor = [UIColor clearColor]; [_myTableView registerClass:DDMyRoomListTableViewCell.class forCellReuseIdentifier:@"DDMyRoomListTableViewCell"]; WeakSelf(weakSelf) _myTableView.mj_header = [MJRefreshGifHeader headerWithRefreshingBlock:^{ [weakSelf initRequest]; }]; _myTableView.mj_footer = [MJRefreshAutoGifFooter footerWithRefreshingBlock:^{ weakSelf.pageNum ++ ; [weakSelf requestData]; }]; } return _myTableView; } -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { return CGFLOAT_MIN; } -(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { return CGFLOAT_MIN; } -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return self.dataArr.count; } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 110; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *indentifiers = @"DDMyRoomListTableViewCell"; DDMyRoomListTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:indentifiers]; if (!cell) { cell = [[DDMyRoomListTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:indentifiers]; } if (indexPath.row < self.dataArr.count) { RoomModel *model = self.dataArr[indexPath.row]; cell.model = model; } cell.selectionStyle = UITableViewCellSelectionStyleNone; return cell; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (self.isClick) { return ; } self.isClick = YES; RoomModel *model = self.dataArr[indexPath.row]; [[ToolsObject shareTools] jumpToRoomVC:model.room_id followUser:[RoomUserInfoModel new]]; WeakSelf(weakSelf) dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1*NSEC_PER_SEC), dispatch_get_main_queue(), ^{ weakSelf.isClick = NO; }); } -(UIButton *)creatRoomBtn { if (!_creatRoomBtn) { _creatRoomBtn = [UIButton buttonWithType:(UIButtonTypeCustom)]; [_creatRoomBtn setTitle:@"创建房间" forState:(UIControlStateNormal)]; [_creatRoomBtn setTitleColor:UIColor.whiteColor forState:(UIControlStateNormal)]; _creatRoomBtn.titleLabel.font = [UIFont systemFontOfSize:16]; WeakSelf(weakSelf) [_creatRoomBtn jk_addTapActionWithBlock:^(UIGestureRecognizer *gestureRecoginzer) { [weakSelf creatRoomClick]; }]; } return _creatRoomBtn; } -(NSMutableArray *)dataArr { if (!_dataArr) { _dataArr = [NSMutableArray array]; } return _dataArr; } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end