From 92883d25d472ed2dbc3ad2bfb76e03cfdc848e67 Mon Sep 17 00:00:00 2001 From: fengshuo <963787902@qq.com> Date: Tue, 19 Oct 2021 18:30:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E5=85=A5=E6=88=BF=E9=97=B4=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E6=8E=A5=E5=8F=A3=E5=AE=8C=E5=96=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xplan-ios.xcodeproj/project.pbxproj | 20 ++- xplan-ios/Base/MVP/Model/UserInfoModel.h | 3 +- .../Main/Mine/View/XPMineViewController.m | 10 +- xplan-ios/Main/Room/Model/RoomInfoModel.h | 2 + .../Main/Room/Presenter/XPRoomPresenter.h | 24 +++- .../Main/Room/Presenter/XPRoomPresenter.m | 29 ++-- xplan-ios/Main/Room/Protocol/XPRoomProtocol.h | 12 +- ...RoomViewController+RoomInfoContainerView.h | 16 +++ ...RoomViewController+RoomInfoContainerView.m | 30 +++++ .../XPRoomInfoContainerView.h | 15 ++- .../XPRoomInfoContainerView.m | 8 +- xplan-ios/Main/Room/View/XPRoomModuleHelper.h | 19 --- xplan-ios/Main/Room/View/XPRoomModuleHelper.m | 83 ------------ .../Main/Room/View/XPRoomViewController.h | 24 +++- .../Main/Room/View/XPRoomViewController.m | 127 +++++++++++++++++- 15 files changed, 276 insertions(+), 146 deletions(-) create mode 100644 xplan-ios/Main/Room/View/Category/XPRoomViewController+RoomInfoContainerView.h create mode 100644 xplan-ios/Main/Room/View/Category/XPRoomViewController+RoomInfoContainerView.m delete mode 100644 xplan-ios/Main/Room/View/XPRoomModuleHelper.h delete mode 100644 xplan-ios/Main/Room/View/XPRoomModuleHelper.m diff --git a/xplan-ios.xcodeproj/project.pbxproj b/xplan-ios.xcodeproj/project.pbxproj index 23b4d3b9..f6e540e6 100644 --- a/xplan-ios.xcodeproj/project.pbxproj +++ b/xplan-ios.xcodeproj/project.pbxproj @@ -149,10 +149,10 @@ E88B5CBD26FB3BDF00DA9178 /* XPTeenagerAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = E88B5CBC26FB3BDF00DA9178 /* XPTeenagerAlertView.m */; }; E88B5CC126FB407B00DA9178 /* XPMineUserInfoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E88B5CC026FB407B00DA9178 /* XPMineUserInfoViewController.m */; }; E88B5CC526FB42B000DA9178 /* XPMineUserInfoHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = E88B5CC426FB42B000DA9178 /* XPMineUserInfoHeaderView.m */; }; + E88F5EB0271ECEF000FF9B33 /* XPRoomViewController+RoomInfoContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = E88F5EAE271ECEF000FF9B33 /* XPRoomViewController+RoomInfoContainerView.m */; }; E89D60BA271D643A001F8895 /* Api+Room.m in Sources */ = {isa = PBXBuildFile; fileRef = E89D60B9271D643A001F8895 /* Api+Room.m */; }; E89D60BD271D647A001F8895 /* XPRoomPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = E89D60BC271D647A001F8895 /* XPRoomPresenter.m */; }; E89D60C1271D64B9001F8895 /* RoomInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E89D60C0271D64B9001F8895 /* RoomInfoModel.m */; }; - E89D60C4271D7AAD001F8895 /* XPRoomModuleHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = E89D60C3271D7AAD001F8895 /* XPRoomModuleHelper.m */; }; E89DA66427005932008483C1 /* XPIAPHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = E89DA66327005932008483C1 /* XPIAPHelper.m */; }; E89DA66727006443008483C1 /* RechargeStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = E89DA66627006443008483C1 /* RechargeStorage.m */; }; E89DA67227008D59008483C1 /* WalletInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E89DA67127008D59008483C1 /* WalletInfoModel.m */; }; @@ -503,6 +503,8 @@ E88B5CC026FB407B00DA9178 /* XPMineUserInfoViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineUserInfoViewController.m; sourceTree = ""; }; E88B5CC326FB42B000DA9178 /* XPMineUserInfoHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineUserInfoHeaderView.h; sourceTree = ""; }; E88B5CC426FB42B000DA9178 /* XPMineUserInfoHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineUserInfoHeaderView.m; sourceTree = ""; }; + E88F5EAE271ECEF000FF9B33 /* XPRoomViewController+RoomInfoContainerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "XPRoomViewController+RoomInfoContainerView.m"; sourceTree = ""; }; + E88F5EAF271ECEF000FF9B33 /* XPRoomViewController+RoomInfoContainerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "XPRoomViewController+RoomInfoContainerView.h"; sourceTree = ""; }; E89D60B8271D643A001F8895 /* Api+Room.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+Room.h"; sourceTree = ""; }; E89D60B9271D643A001F8895 /* Api+Room.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+Room.m"; sourceTree = ""; }; E89D60BB271D647A001F8895 /* XPRoomPresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPresenter.h; sourceTree = ""; }; @@ -510,8 +512,6 @@ E89D60BE271D648D001F8895 /* XPRoomProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomProtocol.h; sourceTree = ""; }; E89D60BF271D64B9001F8895 /* RoomInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoomInfoModel.h; sourceTree = ""; }; E89D60C0271D64B9001F8895 /* RoomInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RoomInfoModel.m; sourceTree = ""; }; - E89D60C2271D7AAD001F8895 /* XPRoomModuleHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomModuleHelper.h; sourceTree = ""; }; - E89D60C3271D7AAD001F8895 /* XPRoomModuleHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomModuleHelper.m; sourceTree = ""; }; E89DA66227005931008483C1 /* XPIAPHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPIAPHelper.h; sourceTree = ""; }; E89DA66327005932008483C1 /* XPIAPHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPIAPHelper.m; sourceTree = ""; }; E89DA66527006443008483C1 /* RechargeStorage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RechargeStorage.h; sourceTree = ""; }; @@ -1424,6 +1424,15 @@ path = MineInfo; sourceTree = ""; }; + E88F5EAA271ECCDC00FF9B33 /* Category */ = { + isa = PBXGroup; + children = ( + E88F5EAF271ECEF000FF9B33 /* XPRoomViewController+RoomInfoContainerView.h */, + E88F5EAE271ECEF000FF9B33 /* XPRoomViewController+RoomInfoContainerView.m */, + ); + path = Category; + sourceTree = ""; + }; E89D60B7271D6417001F8895 /* Model */ = { isa = PBXGroup; children = ( @@ -1479,6 +1488,7 @@ E8AEAED8271413530017FCE0 /* View */ = { isa = PBXGroup; children = ( + E88F5EAA271ECCDC00FF9B33 /* Category */, E8AEAED4271412EC0017FCE0 /* XPRoomViewController.h */, E8AEAED5271412EC0017FCE0 /* XPRoomViewController.m */, E8AEAEE527141ACC0017FCE0 /* ActivityContainerView */, @@ -1487,8 +1497,6 @@ E8AEAEE627141ACC0017FCE0 /* MessageContainerView */, E8AEAEEA27141ACC0017FCE0 /* PositionContainerView */, E8AEAEE827141ACC0017FCE0 /* RoomInfoContainerView */, - E89D60C2271D7AAD001F8895 /* XPRoomModuleHelper.h */, - E89D60C3271D7AAD001F8895 /* XPRoomModuleHelper.m */, ); path = View; sourceTree = ""; @@ -2051,6 +2059,7 @@ E8E70D7726F2F15100F03460 /* XPMineViewController.m in Sources */, E8AC722C26F49580007D6E91 /* XPMineNotificaViewController.m in Sources */, 189DD52E26DE255300AB55B1 /* AppDelegate.m in Sources */, + E88F5EB0271ECEF000FF9B33 /* XPRoomViewController+RoomInfoContainerView.m in Sources */, E86596542701A55500846EBD /* StatisticsServiceHelper.m in Sources */, E8E70D8C26F2F5A500F03460 /* XPMineMatchCollectionViewCell.m in Sources */, 186A534A26FC6ED900D67B2C /* TTActionSheetConfig.m in Sources */, @@ -2064,7 +2073,6 @@ E88B5CAD26FB16A800DA9178 /* XPMineTeenagerDesView.m in Sources */, E824545126F5CE6E00BE8163 /* XPMineModifPayPwdPresenter.m in Sources */, E8EEB90F26FC6AB8007C6EBA /* XPMineUserInfoEditPresenter.m in Sources */, - E89D60C4271D7AAD001F8895 /* XPRoomModuleHelper.m in Sources */, E8AC723A26F49AAE007D6E91 /* XPMineNotifyStatus.m in Sources */, 18E7B33226F317A20064BC9B /* XPWebViewController.m in Sources */, E8AEAEF927141CA30017FCE0 /* XPRoomInfoContainerView.m in Sources */, diff --git a/xplan-ios/Base/MVP/Model/UserInfoModel.h b/xplan-ios/Base/MVP/Model/UserInfoModel.h index 6182a3b0..d8fb28c7 100644 --- a/xplan-ios/Base/MVP/Model/UserInfoModel.h +++ b/xplan-ios/Base/MVP/Model/UserInfoModel.h @@ -30,7 +30,6 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic , assign) NSInteger fansNum; @property (nonatomic , assign) BOOL isBindBankCard; @property (nonatomic , assign) BOOL hasRegPacket; -@property (nonatomic , assign) BOOL isCertified; @property (nonatomic , assign) GenderType gender; @property (nonatomic , assign) NSInteger platformRole; @property (nonatomic , assign) NSInteger uid; @@ -51,6 +50,8 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic,copy) NSString *userDesc; ///出生日期 @property (nonatomic,assign) long birth; +///是否实名认证 +@property (nonatomic,assign) BOOL isCertified; @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Mine/View/XPMineViewController.m b/xplan-ios/Main/Mine/View/XPMineViewController.m index 2a0cef01..0489d903 100644 --- a/xplan-ios/Main/Mine/View/XPMineViewController.m +++ b/xplan-ios/Main/Mine/View/XPMineViewController.m @@ -33,7 +33,6 @@ #warning todo 测试 #import "BaseNavigationController.h" #import "XPRoomViewController.h" -#import "XPRoomModuleHelper.h" @interface XPMineViewController () @@ -132,13 +131,14 @@ case XPMineItemType_Account: { #warning to do 测试 - [[XPRoomModuleHelper shareHelper] enterRoomVCWithRoomUid:[NSString stringWithFormat:@"%ld", self.userInfo.uid] viewController:self]; - return; - XPRoomViewController * roomVC = [[XPRoomViewController alloc] init]; + roomVC.roomUid = [NSString stringWithFormat:@"%ld", self.userInfo.uid]; BaseNavigationController * nav = [[BaseNavigationController alloc] initWithRootViewController:roomVC]; nav.modalPresentationStyle = UIModalPresentationFullScreen; - [self.navigationController presentViewController:nav animated:YES completion:nil]; + [self presentViewController:nav animated:YES completion:nil]; + return; + + } break; diff --git a/xplan-ios/Main/Room/Model/RoomInfoModel.h b/xplan-ios/Main/Room/Model/RoomInfoModel.h index c2ebfedb..ce129d16 100644 --- a/xplan-ios/Main/Room/Model/RoomInfoModel.h +++ b/xplan-ios/Main/Room/Model/RoomInfoModel.h @@ -58,6 +58,8 @@ typedef NS_ENUM(NSInteger, RoomType) { @property (nonatomic , assign) NSInteger closeScreenFlag; @property (nonatomic , assign) NSInteger operatorStatus; @property (nonatomic , assign) BOOL isRoomFans; +///房间密码 +@property(nonatomic, copy) NSString *roomPwd; @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/Presenter/XPRoomPresenter.h b/xplan-ios/Main/Room/Presenter/XPRoomPresenter.h index 3cf69516..2dc71ea6 100644 --- a/xplan-ios/Main/Room/Presenter/XPRoomPresenter.h +++ b/xplan-ios/Main/Room/Presenter/XPRoomPresenter.h @@ -6,18 +6,30 @@ // #import "BaseMvpPresenter.h" - +#import "RoomInfoModel.h" NS_ASSUME_NONNULL_BEGIN -@class UserInfoModel, RoomInfoModel; + @interface XPRoomPresenter : BaseMvpPresenter + + /// 获取用户信息 -/// @param success 成功 -- (void)getUserInfoSuccess:(void(^)(UserInfoModel * info))success; +- (void)getUserInfoWithUid:(NSString *)uid; /// 获取进入的那个房间信息 /// @param uid 进入的房间的uid -/// @param success 成功 -- (void)getRoomInfoWithUid:(NSString *)uid success:(void(^)(RoomInfoModel *roomInfo))success; +- (void)getRoomInfoWithUid:(NSString *)uid; + +/// 开启用户自己的房间 +/// @param title 房间标题 +/// @param type 房间类型 +/// @param roomPwd 房间密码 +/// @param roomDesc 房间介绍 +/// @param backPic 房间背景 +- (void)openUserRoomWithTitle:(NSString *)title + type:(RoomType)type + roomPwd:(NSString *)roomPwd + roomDesc:(NSString *)roomDesc + backPic:(NSString *)backPic; @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/Presenter/XPRoomPresenter.m b/xplan-ios/Main/Room/Presenter/XPRoomPresenter.m index 7fe2e3d2..8872cf57 100644 --- a/xplan-ios/Main/Room/Presenter/XPRoomPresenter.m +++ b/xplan-ios/Main/Room/Presenter/XPRoomPresenter.m @@ -8,38 +8,36 @@ #import "XPRoomPresenter.h" ///API #import "Api+Room.h" -#import "RoomInfoModel.h" #import "UserInfoModel.h" ///Tool #import "AccountInfoStorage.h" +///P +#import "XPRoomProtocol.h" @implementation XPRoomPresenter /// 获取用户信息 -/// @param success 成功 -- (void)getUserInfoSuccess:(void(^)(UserInfoModel * info))success { - NSString * uid = [AccountInfoStorage instance].getUid; +- (void)getUserInfoWithUid:(NSString *)uid { [Api getUserInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) { UserInfoModel * infoModel = [UserInfoModel modelWithJSON:data.data]; - if (infoModel && success) { - success(infoModel); - } + [[self getView] getUserInfoSuccess:infoModel]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self getView] getUserInfoFail]; }] uid:uid]; } /// 获取进入的那个房间信息 /// @param uid 进入的房间的uid -/// @param success 成功 -- (void)getRoomInfoWithUid:(NSString *)uid success:(void(^)(RoomInfoModel *roomInfo))success { +- (void)getRoomInfoWithUid:(NSString *)uid { NSString * intoUid = [AccountInfoStorage instance].getUid; [Api getRoomInfoWithComplection:[self createHttpCompletion:^(BaseModel * _Nonnull data) { RoomInfoModel * model = [RoomInfoModel modelWithJSON:data.data]; - if (model && success) { - success(model); - } - } showLoading:YES] uid:uid intoUid:intoUid]; + [[self getView] getRoomInfoSuccess:model]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self getView] getRoomInfoFail]; + }] uid:uid intoUid:intoUid]; } @@ -69,7 +67,10 @@ } [Api openRoomWithComplection:[self createHttpCompletion:^(BaseModel * _Nonnull data) { -#warning to do s1 应该用不到房间开启吧 + RoomInfoModel * infoModel = [RoomInfoModel modelWithJSON:data.data]; + [[self getView] openRoomSuccess:infoModel]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self getView] openRoomFail]; }] title:title type:type roomPwd:roomPwd roomDesc:roomDesc backPic:backPic uid:uid ticket:ticket]; } diff --git a/xplan-ios/Main/Room/Protocol/XPRoomProtocol.h b/xplan-ios/Main/Room/Protocol/XPRoomProtocol.h index bc131f54..9182047f 100644 --- a/xplan-ios/Main/Room/Protocol/XPRoomProtocol.h +++ b/xplan-ios/Main/Room/Protocol/XPRoomProtocol.h @@ -8,9 +8,19 @@ #import NS_ASSUME_NONNULL_BEGIN - +@class RoomInfoModel,UserInfoModel; @protocol XPRoomProtocol +///获取用户信息成功 +- (void)getUserInfoSuccess:(UserInfoModel *)userInfo; +- (void)getUserInfoFail; +///获取房间信息成功 +- (void)getRoomInfoSuccess:(RoomInfoModel *)roomInfo; +- (void)getRoomInfoFail; +///开启房间成功 +- (void)openRoomSuccess:(RoomInfoModel *)roomInfo; +- (void)openRoomFail; + @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/View/Category/XPRoomViewController+RoomInfoContainerView.h b/xplan-ios/Main/Room/View/Category/XPRoomViewController+RoomInfoContainerView.h new file mode 100644 index 00000000..b9a8f514 --- /dev/null +++ b/xplan-ios/Main/Room/View/Category/XPRoomViewController+RoomInfoContainerView.h @@ -0,0 +1,16 @@ +// +// XPRoomViewController+RoomInfo.h +// xplan-ios +// +// Created by 冯硕 on 2021/10/19. +// + +#import "XPRoomViewController.h" +#import "XPRoomInfoContainerView.h" +NS_ASSUME_NONNULL_BEGIN + +@interface XPRoomViewController (RoomInfoContainerView) +- (void)configRoomInfoContainerViewWithRoomInfo:(RoomInfoModel *)roomInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/View/Category/XPRoomViewController+RoomInfoContainerView.m b/xplan-ios/Main/Room/View/Category/XPRoomViewController+RoomInfoContainerView.m new file mode 100644 index 00000000..4a67d2bf --- /dev/null +++ b/xplan-ios/Main/Room/View/Category/XPRoomViewController+RoomInfoContainerView.m @@ -0,0 +1,30 @@ +// +// XPRoomViewController+RoomInfo.m +// xplan-ios +// +// Created by 冯硕 on 2021/10/19. +// + +#import "XPRoomViewController+RoomInfoContainerView.h" + +@implementation XPRoomViewController (RoomInfoContainerView) + +- (void)configRoomInfoContainerViewWithRoomInfo:(RoomInfoModel *)roomInfo { + self.roomInfoContainerView.roomInfo = roomInfo; +} + + +#pragma mark - XPRoomInfoContainerView +- (void)xpRoomInfoContainerView:(XPRoomInfoContainerView *)view didClickBackButton:(UIButton *)sender { + [self disMissRoomVC]; +} + + +- (void)xpRoomInfoContainerView:(XPRoomInfoContainerView *)view didClickSettingButton:(UIButton *)sender { + +} + +#pragma mark - Private Method + + +@end diff --git a/xplan-ios/Main/Room/View/RoomInfoContainerView/XPRoomInfoContainerView.h b/xplan-ios/Main/Room/View/RoomInfoContainerView/XPRoomInfoContainerView.h index c78e519b..e04c9a79 100644 --- a/xplan-ios/Main/Room/View/RoomInfoContainerView/XPRoomInfoContainerView.h +++ b/xplan-ios/Main/Room/View/RoomInfoContainerView/XPRoomInfoContainerView.h @@ -8,10 +8,21 @@ #import NS_ASSUME_NONNULL_BEGIN -@class RoomInfoModel; +@class RoomInfoModel,XPRoomInfoContainerView; +@protocol XPRoomInfoContainerViewDelegate + +///点击了返回按钮 +- (void)xpRoomInfoContainerView:(XPRoomInfoContainerView *)view didClickBackButton:(UIButton *)sender; + +///点击了设置按钮 +- (void)xpRoomInfoContainerView:(XPRoomInfoContainerView *)view didClickSettingButton:(UIButton *)sender; +@end + @interface XPRoomInfoContainerView : UIView -/// +///房间信息 @property (nonatomic,strong) RoomInfoModel *roomInfo; +///代理 +@property (nonatomic,weak) id delegate; @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/View/RoomInfoContainerView/XPRoomInfoContainerView.m b/xplan-ios/Main/Room/View/RoomInfoContainerView/XPRoomInfoContainerView.m index 0a372419..0f8abb50 100644 --- a/xplan-ios/Main/Room/View/RoomInfoContainerView/XPRoomInfoContainerView.m +++ b/xplan-ios/Main/Room/View/RoomInfoContainerView/XPRoomInfoContainerView.m @@ -56,7 +56,9 @@ #pragma mark - Response - (void)backButtonAction:(UIButton *)sender { - + if (self.delegate && [self.delegate respondsToSelector:@selector(xpRoomInfoContainerView:didClickBackButton:)]) { + [self.delegate xpRoomInfoContainerView:self didClickBackButton:sender]; + } } - (void)shareButtonAction:(UIButton *)sender{ @@ -64,7 +66,9 @@ } - (void)settingButtonAction:(UIButton *)sender { - + if (self.delegate && [self.delegate respondsToSelector:@selector(xpRoomInfoContainerView:didClickSettingButton:)]) { + [self.delegate xpRoomInfoContainerView:self didClickSettingButton:sender]; + } } diff --git a/xplan-ios/Main/Room/View/XPRoomModuleHelper.h b/xplan-ios/Main/Room/View/XPRoomModuleHelper.h deleted file mode 100644 index b2c5176a..00000000 --- a/xplan-ios/Main/Room/View/XPRoomModuleHelper.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// XPRoomModuleHelper.h -// xplan-ios -// -// Created by 冯硕 on 2021/10/18. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface XPRoomModuleHelper : NSObject - -+ (instancetype)shareHelper; -///进入房间 -- (void)enterRoomVCWithRoomUid:(NSString *)roomUid viewController:(UIViewController *)viewController; -@end - -NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/View/XPRoomModuleHelper.m b/xplan-ios/Main/Room/View/XPRoomModuleHelper.m deleted file mode 100644 index cf852745..00000000 --- a/xplan-ios/Main/Room/View/XPRoomModuleHelper.m +++ /dev/null @@ -1,83 +0,0 @@ -// -// XPRoomModuleHelper.m -// xplan-ios -// -// Created by 冯硕 on 2021/10/18. -// - -#import "XPRoomModuleHelper.h" -#import -///Model -#import "RoomInfoModel.h" -///P -#import "XPRoomPresenter.h" -///VC -#import "XPRoomViewController.h" -#import "BaseNavigationController.h" - -@interface XPRoomModuleHelper () -///是否正在进房 -@property (nonatomic,assign) BOOL isEntering; -/// -@property (nonatomic,strong) XPRoomPresenter *roomPresenter; -@end - -@implementation XPRoomModuleHelper - -+ (instancetype)shareHelper { - static dispatch_once_t onceToken; - static XPRoomModuleHelper * helper; - dispatch_once(&onceToken, ^{ - helper = [[XPRoomModuleHelper alloc] init]; - }); - return helper; -} - - -- (void)enterRoomVCWithRoomUid:(NSString *)roomUid viewController:(nonnull UIViewController *)viewController{ - if (viewController == nil || roomUid <= 0) { - return; - } - @weakify(self); - [self.roomPresenter getRoomInfoWithUid:roomUid success:^(RoomInfoModel * _Nonnull roomInfo) { - roomInfo.valid = YES; - @strongify(self); - if (roomInfo.valid) { - self.isEntering = YES; - [self presenterRoomVCWithRoomInfo:roomInfo viewController:viewController]; - } else { -#warning to do - 如果房间无效的话 - } - }]; -} - -- (void)presenterRoomVCWithRoomInfo:(RoomInfoModel *)roomInfo viewController:(nonnull UIViewController *)viewController { - if (roomInfo == nil) { - return; - } - - if (self.isEntering) { -#warning to do - 显示toast - return; - } - -#warning to do - 还需完善 如果当前有房间的话 需要关闭当前的房间 然后进入需要进入的房间 - - XPRoomViewController * roomVC = [[XPRoomViewController alloc] init]; - roomVC.roomInfo = roomInfo; - BaseNavigationController * nav = [[BaseNavigationController alloc] initWithRootViewController:roomVC]; - nav.modalPresentationStyle = UIModalPresentationFullScreen; - [viewController presentViewController:nav animated:YES completion:^{ - self.isEntering = NO; - }]; -} - - -- (XPRoomPresenter *)roomPresenter { - if (!_roomPresenter) { - _roomPresenter = [[XPRoomPresenter alloc] init]; - } - return _roomPresenter; -} - -@end diff --git a/xplan-ios/Main/Room/View/XPRoomViewController.h b/xplan-ios/Main/Room/View/XPRoomViewController.h index 9aecd4f1..846d48a2 100644 --- a/xplan-ios/Main/Room/View/XPRoomViewController.h +++ b/xplan-ios/Main/Room/View/XPRoomViewController.h @@ -8,12 +8,30 @@ #import "MvpViewController.h" NS_ASSUME_NONNULL_BEGIN -@class RoomInfoModel; +@class XPRoomBackContainerView,XPRoomInfoContainerView,XPRoomMessageContainerView,XPRoomMenuContainerView,XPRoomActivityContainerView, XPRoomPositionContainView, RoomInfoModel; @interface XPRoomViewController : MvpViewController -///房间信息 -@property (nonatomic,strong) RoomInfoModel *roomInfo; +///房间的Uid +@property (nonatomic,copy) NSString * roomUid; +///背景 +@property (nonatomic,strong, readonly) XPRoomBackContainerView *backContainerView; +///房间信息 +@property (nonatomic,strong, readonly) XPRoomInfoContainerView *roomInfoContainerView; +///坑位信息 +@property (nonatomic,strong, readonly) XPRoomPositionContainView *positionContainerView; +///公屏 +@property (nonatomic,strong, readonly) XPRoomMessageContainerView *messageContainerView; +///底部操作栏 +@property (nonatomic,strong, readonly) XPRoomMenuContainerView *menuContainerView; +///活动 +@property (nonatomic,strong, readonly) XPRoomActivityContainerView *activityContainerView; +///房间信息 +@property (nonatomic,strong, readonly) RoomInfoModel *roomInfo; + + +///dismissVC +- (void)disMissRoomVC; @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/View/XPRoomViewController.m b/xplan-ios/Main/Room/View/XPRoomViewController.m index 55d47ae7..d91b7311 100644 --- a/xplan-ios/Main/Room/View/XPRoomViewController.m +++ b/xplan-ios/Main/Room/View/XPRoomViewController.m @@ -10,8 +10,10 @@ #import ///Tool #import "XPMacro.h" +#import "AccountInfoStorage.h" ///Model #import "RoomInfoModel.h" +#import "UserInfoModel.h" ///View #import "XPRoomActivityContainerView.h" #import "XPRoomBackContainerView.h" @@ -19,8 +21,13 @@ #import "XPRoomMessageContainerView.h" #import "XPRoomPositionContainView.h" #import "XPRoomInfoContainerView.h" +///P +#import "XPRoomPresenter.h" +#import "XPRoomProtocol.h" +///Category +#import "XPRoomViewController+RoomInfoContainerView.h" -@interface XPRoomViewController () +@interface XPRoomViewController () ///背景 @property (nonatomic,strong) XPRoomBackContainerView *backContainerView; ///房间信息 @@ -33,10 +40,25 @@ @property (nonatomic,strong) XPRoomMenuContainerView *menuContainerView; ///活动 @property (nonatomic,strong) XPRoomActivityContainerView *activityContainerView; +///如果是打开房间的话 +@property (nonatomic,assign) BOOL isOpenRoom; +///用户信息 +@property (nonatomic,strong) UserInfoModel *usereInfo; +///房间信息 +@property (nonatomic,strong) RoomInfoModel *roomInfo; @end @implementation XPRoomViewController + +- (void)dealloc { +#warning to do - 时刻注意这个方法 功能做完的时候删除此方法 +} + +- (XPRoomPresenter *)createPresenter { + return [[XPRoomPresenter alloc] init]; +} + - (BOOL)isHiddenNavBar { return YES; } @@ -94,11 +116,106 @@ }]; } +///获取房间信息成功 +- (void)requestRoomInfoSuccess:(RoomInfoModel *)roomInfo { + [self hideHUD]; + self.roomInfo = roomInfo; + [self configRoomInfoContainerViewWithRoomInfo:roomInfo]; + ///获取房间信息成功之后 就要准备登录云信了 获取确保用户信息存在 + if (self.usereInfo == nil) { + [self.presenter getUserInfoWithUid:self.roomUid]; + } else { + [self enterChatRoomWithUseInfo:self.usereInfo]; + } +} + +///dismissVC +- (void)disMissRoomVC { + if (self.presentingViewController) { + [self dismissViewControllerAnimated:YES completion:nil]; + } +} + +///开启房间 +- (void)openRoomWithUserInfo { + NSString * title = [NSString stringWithFormat:@"%@的房间", self.usereInfo.nick]; + [self.presenter openUserRoomWithTitle:title type:RoomType_Game roomPwd:@"" roomDesc:@"" backPic:@""]; +} + +- (void)enterChatRoomWithUseInfo:(UserInfoModel *)userInfo { + ///进入房间的时候 必须要有用户信息 并且房间状态一切正常 +#warning to do - 进入云信房间的逻辑 +} + +#pragma mark - XPRoomProtocol +- (void)getRoomInfoSuccess:(RoomInfoModel *)roomInfo { + NSString * uid = [AccountInfoStorage instance].getUid; + if ([self.roomUid isEqualToString:uid]) {///如果是自己进入房间的话 + if (roomInfo == nil || roomInfo.valid) { + self.isOpenRoom = YES; + if (self.usereInfo) { + [self openRoomWithUserInfo]; + } else { + [self.presenter getUserInfoWithUid:uid]; + } + } else { + [self requestRoomInfoSuccess:roomInfo]; + } + } else {///如果是进入别人房间的话 + if (roomInfo.valid) { + if (roomInfo.roomPwd.length > 0) { + [self hideHUD]; +#warning to do - 输入密码 + } else { + [self requestRoomInfoSuccess:roomInfo]; + } + } else { +#warning to do - 房主已下线 + [self hideHUD]; + } + } +} + +- (void)getRoomInfoFail { + [self hideHUD]; + [self disMissRoomVC]; +} + +- (void)getUserInfoSuccess:(UserInfoModel *)userInfo { + self.usereInfo = userInfo; + if (self.isOpenRoom) { + [self openRoomWithUserInfo]; + } else { + if (self.roomInfo) { + [self enterChatRoomWithUseInfo:userInfo]; + } + } +} + +- (void)getUserInfoFail { + [self hideHUD]; + [self disMissRoomVC]; +} + +- (void)openRoomSuccess:(RoomInfoModel *)roomInfo { + [self requestRoomInfoSuccess:roomInfo]; +} + +- (void)openRoomFail { + [self hideHUD]; + [self disMissRoomVC]; +} #pragma mark - Getters And Setters -- (void)setRoomInfo:(RoomInfoModel *)roomInfo { - _roomInfo = roomInfo; - self.roomInfoContainerView.roomInfo = _roomInfo; +- (void)setRoomUid:(NSString *)roomUid { + _roomUid = roomUid; + if (_roomUid) { + [self showLoading]; + ///获取用户信息 + [self.presenter getUserInfoWithUid:_roomUid]; + ///获取房间信息 + [self.presenter getRoomInfoWithUid:_roomUid]; + } } - (XPRoomBackContainerView *)backContainerView { @@ -111,6 +228,7 @@ - (XPRoomInfoContainerView *)roomInfoContainerView { if (!_roomInfoContainerView) { _roomInfoContainerView = [[XPRoomInfoContainerView alloc] init]; + _roomInfoContainerView.delegate = self; } return _roomInfoContainerView; } @@ -143,4 +261,5 @@ return _activityContainerView; } + @end