Files
yinmeng-ios-store/yinmeng-ios/DingDangApp/CodeClass/MyInfo/CC/DDMyRoomListViewController.m

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