个人中心-增加收藏房间列表

This commit is contained in:
chenguilong
2022-07-27 15:51:09 +08:00
parent 4703746f80
commit 20b0884769
9 changed files with 303 additions and 1 deletions

View File

@@ -259,6 +259,8 @@
9BD63FAB277EE885006EB744 /* Api+RoomRadio.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD63FAA277EE885006EB744 /* Api+RoomRadio.m */; };
9BD63FAE277EE97A006EB744 /* XPReleaseRadioPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD63FAD277EE97A006EB744 /* XPReleaseRadioPresenter.m */; };
9BD63FB4277EF1B3006EB744 /* XPReleaseRadioModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD63FB3277EF1B3006EB744 /* XPReleaseRadioModel.m */; };
9BD8D4E328911E9900AE03FF /* XPMineCollectRoomListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD8D4E228911E9900AE03FF /* XPMineCollectRoomListViewController.m */; };
9BD8D4E628911F7700AE03FF /* XPMineCollectRoomListPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD8D4E528911F7700AE03FF /* XPMineCollectRoomListPresenter.m */; };
9BD9A17927A0EC57004186FE /* XPMineVisitorPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD9A17827A0EC57004186FE /* XPMineVisitorPresenter.m */; };
9BD9A17C27A0EE24004186FE /* XPMineVisitorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD9A17B27A0EE24004186FE /* XPMineVisitorViewController.m */; };
9BD9A18027A0EFC7004186FE /* XPMineVisitorTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD9A17F27A0EFC7004186FE /* XPMineVisitorTableViewCell.m */; };
@@ -1386,6 +1388,11 @@
9BD63FB1277EF14A006EB744 /* XPReleaseRadioProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPReleaseRadioProtocol.h; sourceTree = "<group>"; };
9BD63FB2277EF1B3006EB744 /* XPReleaseRadioModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPReleaseRadioModel.h; sourceTree = "<group>"; };
9BD63FB3277EF1B3006EB744 /* XPReleaseRadioModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPReleaseRadioModel.m; sourceTree = "<group>"; };
9BD8D4E128911E9900AE03FF /* XPMineCollectRoomListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineCollectRoomListViewController.h; sourceTree = "<group>"; };
9BD8D4E228911E9900AE03FF /* XPMineCollectRoomListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineCollectRoomListViewController.m; sourceTree = "<group>"; };
9BD8D4E428911F7700AE03FF /* XPMineCollectRoomListPresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineCollectRoomListPresenter.h; sourceTree = "<group>"; };
9BD8D4E528911F7700AE03FF /* XPMineCollectRoomListPresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineCollectRoomListPresenter.m; sourceTree = "<group>"; };
9BD8D4E728911FBD00AE03FF /* XPMineCollectRoomListProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineCollectRoomListProtocol.h; sourceTree = "<group>"; };
9BD9A17627A0E953004186FE /* XPMineVisitorProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineVisitorProtocol.h; sourceTree = "<group>"; };
9BD9A17727A0EC57004186FE /* XPMineVisitorPresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineVisitorPresenter.h; sourceTree = "<group>"; };
9BD9A17827A0EC57004186FE /* XPMineVisitorPresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineVisitorPresenter.m; sourceTree = "<group>"; };
@@ -6736,6 +6743,8 @@
E8E70D7F26F2F39000F03460 /* SubViews */,
E8E70D7526F2F15100F03460 /* XPMineViewController.h */,
E8E70D7626F2F15100F03460 /* XPMineViewController.m */,
9BD8D4E128911E9900AE03FF /* XPMineCollectRoomListViewController.h */,
9BD8D4E228911E9900AE03FF /* XPMineCollectRoomListViewController.m */,
9BD9A17A27A0EE24004186FE /* XPMineVisitorViewController.h */,
9BD9A17B27A0EE24004186FE /* XPMineVisitorViewController.m */,
9BD2ECCC288F829600F5CD9A /* XPMineFootPrintViewController.h */,
@@ -6806,6 +6815,8 @@
9B1B729728002147003FACE9 /* XPMineFansTeamPresenter.m */,
9BD2ECD3288F838200F5CD9A /* XPMineFootPrintPresenter.h */,
9BD2ECD4288F838200F5CD9A /* XPMineFootPrintPresenter.m */,
9BD8D4E428911F7700AE03FF /* XPMineCollectRoomListPresenter.h */,
9BD8D4E528911F7700AE03FF /* XPMineCollectRoomListPresenter.m */,
);
path = Presenter;
sourceTree = "<group>";
@@ -6838,6 +6849,7 @@
9BD9A17627A0E953004186FE /* XPMineVisitorProtocol.h */,
9B1B7299280021E7003FACE9 /* XPMineAnchorFansTeamProtocol.h */,
9BD2ECD6288F849300F5CD9A /* XPMineFootPrintProtocol.h */,
9BD8D4E728911FBD00AE03FF /* XPMineCollectRoomListProtocol.h */,
);
path = Protocol;
sourceTree = "<group>";
@@ -7363,6 +7375,7 @@
9BDA3E7A27FD43EF00517FE6 /* XPAnchorFansTeamEntranceView.m in Sources */,
E81C279826EB3AC40031E639 /* LoginForgetPasswordProtocol.h in Sources */,
E8C6FFD42754AA87004DC9F0 /* XPNoteView.m in Sources */,
9BD8D4E328911E9900AE03FF /* XPMineCollectRoomListViewController.m in Sources */,
9B2EA7C628041EFC00ED17BF /* XPAnchorPkPanelView.m in Sources */,
E84150BB27747BAF00A7F548 /* XPFirstRechargePresenter.m in Sources */,
E800806B27FD42B00055A8AB /* XPClanRoomCollectionViewCell.m in Sources */,
@@ -7863,6 +7876,7 @@
186A534C26FC6ED900D67B2C /* TTAlertView.m in Sources */,
E801275527E3326000BAC3F2 /* XPRoomPKUserView.m in Sources */,
E8D4824D278D2CE4003C1D08 /* XPAcrossRoomPKInviteResultView.m in Sources */,
9BD8D4E628911F7700AE03FF /* XPMineCollectRoomListPresenter.m in Sources */,
E866B6E52759F96F009B002A /* XPMiniRoomView.m in Sources */,
9B7B605B27BB53060070BB72 /* XPAnchorAudienceUpMicView.m in Sources */,
E8B825BF26E9E57D009E8E9F /* LoginTicketInfo.m in Sources */,

View File

@@ -262,6 +262,13 @@ NS_ASSUME_NONNULL_BEGIN
/// @param mgId 游戏id
+ (void)requestMineQuickMatchLittleGame:(HttpRequestHelperCompletion)completion uid:(NSString *)uid mgId:(NSString *)mgId;
/// 请求收藏房间列表
/// @param completion 完成
/// @param uid 用户的uid
/// @param page 当前页数
/// @param pageSize 一页多少个
+ (void)requestMineCollectRoomList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize;
@end
NS_ASSUME_NONNULL_END

View File

@@ -291,4 +291,13 @@
[self makeRequest:@"home/fastPickV2" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, mgId, nil];
}
///
/// @param completion
/// @param uid uid
/// @param page
/// @param pageSize
+ (void)requestMineCollectRoomList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize {
[self makeRequest:@"fans/fansRoomList" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__,uid , page, pageSize,nil];
}
@end

View File

@@ -0,0 +1,21 @@
//
// XPMineCollectRoomListPresenter.h
// xplan-ios
//
// Created by GreenLand on 2022/7/27.
//
#import "BaseMvpPresenter.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPMineCollectRoomListPresenter : BaseMvpPresenter
/// 获取收藏房间列表
/// @param page 当前的页数
/// @param pageSize 一页多少个
- (void)getCollectRoomList:(int)page pageSize:(int)pageSize state:(int)state;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,29 @@
//
// XPMineCollectRoomListPresenter.m
// xplan-ios
//
// Created by GreenLand on 2022/7/27.
//
#import "XPMineCollectRoomListPresenter.h"
#import "Api+Mine.h"
#import "XPMineCollectRoomListProtocol.h"
#import "AccountInfoStorage.h"
#import "HomeCollectRoomModel.h"
@implementation XPMineCollectRoomListPresenter
///
/// @param page
/// @param pageSize
- (void)getCollectRoomList:(int)page pageSize:(int)pageSize state:(int)state {
NSString * uid = [AccountInfoStorage instance].getUid;
[Api requestMineCollectRoomList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray * array = [HomeCollectRoomModel modelsWithArray:data.data[@"fansRoomList"]];
[[self getView] onGetCollectRoomListSuccess:array state:state];
} fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView] getCollectRoomListFail:state];
}] uid:uid page:[NSString stringWithFormat:@"%d", page] pageSize:[NSString stringWithFormat:@"%d", pageSize]];
}
@end

View File

@@ -0,0 +1,18 @@
//
// XPMineCollectRoomListProtocol.h
// xplan-ios
//
// Created by GreenLand on 2022/7/27.
//
#import <Foundation/Foundation.h>
@protocol XPMineCollectRoomListProtocol <NSObject>
///获取收藏房间列表成功
- (void)onGetCollectRoomListSuccess:(NSArray *)array state:(int)state;
///获取收藏房间列表失败
- (void)getCollectRoomListFail:(int)state;
@end

View File

@@ -0,0 +1,16 @@
//
// XPMineCollectRoomListViewController.h
// xplan-ios
//
// Created by GreenLand on 2022/7/27.
//
#import "MvpViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPMineCollectRoomListViewController : MvpViewController
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,181 @@
//
// XPMineCollectRoomListViewController.m
// xplan-ios
//
// Created by GreenLand on 2022/7/27.
//
#import "XPMineCollectRoomListViewController.h"
///Third
#import <Masonry/Masonry.h>
#import <MJRefresh/MJRefresh.h>
///Tool
#import "ThemeColor.h"
///Model
#import "HomeCollectRoomModel.h"
///View
#import "XPHomeCollectRoomTableViewCell.h"
#import "XPMineVisitorEmptyTableViewCell.h"
///P
#import "XPMineCollectRoomListPresenter.h"
#import "XPMineCollectRoomListProtocol.h"
///VC
#import "XPRoomViewController.h"
@interface XPMineCollectRoomListViewController ()<UITableViewDelegate,UITableViewDataSource, XPMineCollectRoomListProtocol>
///
@property (nonatomic,strong) UITableView *tableView;
///
@property (nonatomic,strong) NSMutableArray *datasource;
///
@property (nonatomic,assign) int page;
///
@property (nonatomic,assign) BOOL hasNoMoreData;
@end
@implementation XPMineCollectRoomListViewController
- (XPMineCollectRoomListPresenter *)createPresenter {
return [[XPMineCollectRoomListPresenter alloc] init];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self initHeaderAndFooterRrfresh];
[self initSubViews];
[self initSubViewConstraints];
}
#pragma mark -
- (void)initHeaderAndFooterRrfresh {
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
header.stateLabel.textColor = [ThemeColor secondTextColor];
header.lastUpdatedTimeLabel.textColor = [ThemeColor secondTextColor];
self.tableView.mj_header = header;
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
footer.stateLabel.textColor = [ThemeColor secondTextColor];
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
self.tableView.mj_footer = footer;
[self headerRefresh];
}
#pragma mark - fangfa
- (void)headerRefresh {
self.page = 1;
[self.presenter getCollectRoomList:self.page pageSize:20 state:0];
}
- (void)footerRefresh {
if (self.hasNoMoreData) {
[self showErrorToast:@"没有更多收藏记录了"];
return;
}
self.page++;
[self.presenter getCollectRoomList:self.page pageSize:20 state:1];
}
#pragma mark - Private Method
- (void)initSubViews {
self.title = @"收藏的房间";
[self.view addSubview:self.tableView];
}
- (void)initSubViewConstraints {
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.view);
}];
}
#pragma mark - XPMineCollectRoomListProtocol
///访
- (void)onGetCollectRoomListSuccess:(NSArray *)array state:(int)state {
if (state == 0) {
[self.datasource removeAllObjects];
[self.tableView.mj_header endRefreshing];
}
[self.tableView.mj_footer endRefreshing];
if (array.count > 0) {
self.hasNoMoreData = NO;
[self.datasource addObjectsFromArray:array];
} else {
self.hasNoMoreData = YES;
[self.tableView.mj_footer endRefreshingWithNoMoreData];
}
[self.tableView reloadData];
}
///访
- (void)getCollectRoomListFail:(int)state {
if (state == 0) {
[self.tableView.mj_header endRefreshing];
} else {
[self.tableView.mj_footer endRefreshing];
}
}
#pragma mark - UITableViewDelegate And UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.datasource.count > 0 ? self.datasource.count : 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (self.datasource.count > 0) {
XPHomeCollectRoomTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPHomeCollectRoomTableViewCell class])];
if (cell == nil) {
cell = [[XPHomeCollectRoomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPHomeCollectRoomTableViewCell class])];
}
cell.roomInfo = [self.datasource objectAtIndex:indexPath.row];
return cell;
}
XPMineVisitorEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineVisitorEmptyTableViewCell class])];
if (cell == nil) {
cell = [[XPMineVisitorEmptyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineVisitorEmptyTableViewCell class])];
}
cell.emptyTitle = @"暂无收藏的房间";
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 66 + 8 + 10;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
HomeCollectRoomModel * roomInfo = [self.datasource objectAtIndex:indexPath.row];
if (roomInfo.roomUid.integerValue > 0) {
[XPRoomViewController openRoom:roomInfo.roomUid viewController:self];
}
}
#pragma mark - Getters And Setters
- (UITableView *)tableView {
if (!_tableView) {
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.tableFooterView = [UIView new];
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_tableView.backgroundColor = [UIColor clearColor];
if (@available(iOS 11.0, *)) {
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
_tableView.contentInset = UIEdgeInsetsMake(8, 0, 0, 0);
[_tableView registerClass:[XPMineVisitorEmptyTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineVisitorEmptyTableViewCell class])];
[_tableView registerClass:[XPHomeCollectRoomTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPHomeCollectRoomTableViewCell class])];
}
return _tableView;
}
- (NSMutableArray *)datasource {
if (!_datasource) {
_datasource = [NSMutableArray array];
}
return _datasource;
}
@end

View File

@@ -57,6 +57,7 @@
#import "XPMineClanViewController.h"
#import "XPMineGuildViewController.h"
#import "XPMineFootPrintViewController.h"
#import "XPMineCollectRoomListViewController.h"
@interface XPMineViewController ()<UITableViewDelegate, UITableViewDataSource, XPMineProtocol, XPMineHeadItemTableViewCellDelegate, XPMineHeadViewDelegate, XPMineGameTableViewCellDelegate, XPHomeBannerTableViewCellDelegate>
///
@@ -212,6 +213,12 @@
} uid:roomUid intoUid:roomUid];
}
break;
case XPMineItemType_Collect_Room://
{
XPMineCollectRoomListViewController *collectVC = [[XPMineCollectRoomListViewController alloc] init];
[self.navigationController pushViewController:collectVC animated:YES];
}
break;
case XPMineItemType_My_Dressup:
{
XPMineDressUpViewController * dressUpVC = [[XPMineDressUpViewController alloc] init];
@@ -393,7 +400,7 @@
[self.functionArray removeAllObjects];
[self.functionArray addObjectsFromArray:items];
[self.functionArray enumerateObjectsUsingBlock:^(XPMineFuntionItemModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if (obj.skipType == XPMineItemType_Collect_Room | obj.skipType == XPMineItemType_CP) {
if (obj.skipType == XPMineItemType_CP) {
[self.functionArray removeObject:obj];
}
}];