307 lines
11 KiB
Objective-C
307 lines
11 KiB
Objective-C
//
|
|
// 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
|