From 24d55bc807e15ac2eac68c977def0e384c736c7c Mon Sep 17 00:00:00 2001 From: liyuhua <15626451870@163.com> Date: Thu, 23 Nov 2023 10:56:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xcshareddata/xcschemes/YuMi.xcscheme | 2 +- YuMi/Modules/YMLogin/Api/PILoginManager.m | 25 +++-------------- .../View/NewLogin/XPLoginViewController.m | 2 +- YuMi/Modules/YMNewHome/Api/Api+Home.h | 2 ++ YuMi/Modules/YMNewHome/Api/Api+Home.m | 5 +++- .../Presenter/XPHomeContainerPresenter.h | 3 +- .../Presenter/XPHomeContainerPresenter.m | 16 ++++++++++- .../Protocol/XPHomeContainerProtocol.h | 6 ++-- .../YMNewHome/View/XPNewHomeViewController.m | 28 +++++++++++++++++++ .../XPRoomActivityContainerView.m | 7 +++-- .../View/XPCandyTreeViewController.m | 3 ++ .../XPRoomMessageContainerView.m | 1 + .../Cell/XPGiftWeekStarCollectionViewCell.m | 2 +- .../View/XPTreasureFairyViewController.m | 3 ++ YuMi/Modules/YMTabbar/Api/Api+Main.h | 3 +- YuMi/Modules/YMTabbar/Api/Api+Main.m | 5 +--- .../YMTabbar/Presenter/MainPresenter.h | 3 +- .../YMTabbar/Presenter/MainPresenter.m | 16 +---------- YuMi/Modules/YMTabbar/Protocol/MainProtocol.h | 4 +-- .../YMTabbar/View/TabbarViewController.m | 18 ++++-------- YuMi/Structure/MVP/Model/AccountInfoStorage.h | 2 +- 21 files changed, 85 insertions(+), 71 deletions(-) diff --git a/YuMi.xcodeproj/xcshareddata/xcschemes/YuMi.xcscheme b/YuMi.xcodeproj/xcshareddata/xcschemes/YuMi.xcscheme index 9e3921f5..d258e3d3 100644 --- a/YuMi.xcodeproj/xcshareddata/xcschemes/YuMi.xcscheme +++ b/YuMi.xcodeproj/xcshareddata/xcschemes/YuMi.xcscheme @@ -31,7 +31,7 @@ - +@optional ///获取所有的tag成功 - (void)getHomeTagListSuccess:(NSArray *)array; ///获取首页轮播图列表成功 @@ -21,7 +21,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)homeChatPickSuccess:(NSString *)uid; ///一键匹配失败 - (void)homeChatPickFail:(NSString *)msg; - +/// +-(void)checkIpRegionFailWithMsg:(NSString *)msg; +-(void)checkIpRegionSuccess:(NSInteger)seconds; @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/XPNewHomeViewController.m b/YuMi/Modules/YMNewHome/View/XPNewHomeViewController.m index 3077c66c..fad29863 100644 --- a/YuMi/Modules/YMNewHome/View/XPNewHomeViewController.m +++ b/YuMi/Modules/YMNewHome/View/XPNewHomeViewController.m @@ -79,6 +79,7 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; @property(nonatomic,strong) XPHomePartyViewController * homeVC; @property(nonatomic,strong) XPHomeRecommendViewController * recommendVC; @property(nonatomic,assign) NSInteger type; +@property(nonatomic,assign) BOOL isCheckIp; @end @implementation XPNewHomeViewController @@ -93,6 +94,7 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; [[NSNotificationCenter defaultCenter]removeObserver:self]; [timer fire]; timer = nil; + } - (BOOL)isHiddenNavBar { return YES; @@ -143,7 +145,9 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; } #pragma mark - Private Method - (void)addTimer { + @kWeakify(self); timer = [XPWeakTimer scheduledTimerWithTimeInterval:15 block:^(id userInfo) { + @kStrongify(self); [self.homeVC headerRefresh]; [self.recommendVC headerRefresh]; } userInfo:nil repeats:YES]; @@ -199,7 +203,14 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; } ]; }; + [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(logOut) name:@"kInLoginVC" object:nil]; + + + +} +-(void)logOut{ + [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(requestCheckIp) object:nil]; } -(void)headerRefresh{ [self initHttp]; @@ -256,6 +267,8 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; - (void)initHttp { [self.presenter getHomeTopBannerList]; [self.presenter getCurrentResourceList]; + [self requestCheckIp]; + } @@ -397,6 +410,21 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; } #pragma mark - XPNewHomeHeadViewDelegate +/// +-(void)checkIpRegionSuccess:(NSInteger)seconds{ + if(seconds <= 0)return; + [self performSelector:@selector(requestCheckIp) withObject:nil afterDelay:seconds]; +} +- (void)checkIpRegionFailWithMsg:(NSString *)msg{ + [self tokenInvalid]; + [self showErrorToast:msg]; +} +-(void)requestCheckIp{ + if([AccountInfoStorage instance].getTicket.length > 0 && [AccountInfoStorage instance].name.length > 0){ + [self.presenter checkIpRegionAction]; + } + +} ///选择 -(void)selectItemWithModel:(PIHomeItemModel *)model{ if (model.resourceType == HomeMenuResourceType_H5) { diff --git a/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.m b/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.m index b50ce7ba..769c8d96 100644 --- a/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.m +++ b/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.m @@ -379,7 +379,7 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; if([getInfo.bannerPic isEqualToString:pic]){ info = getInfo; } - if([getInfo.bannerPic hasPrefix:@"http"]){ + if(getInfo.skipType == 3){ [inftList addObject:getInfo]; } } @@ -406,7 +406,10 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; }else { if (info.skipType == ActivitySkipType_Room) { [self.hostDelegate exitRoom]; - [XPRoomViewController openRoom:info.skipUri viewController:self.hostDelegate.getCurrentNav]; + + [XPRoomViewController openRoom:info.skipUri viewController:kWindow.rootViewController]; + + } else if(info.skipType == ActivitySkipType_Web) { PIRoomActivityWebView * webView = [[PIRoomActivityWebView alloc]initWithFrame:CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight)]; diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/XPCandyTreeViewController.m b/YuMi/Modules/YMRoom/View/CandyTree/View/XPCandyTreeViewController.m index 3a8b5257..6f79d898 100644 --- a/YuMi/Modules/YMRoom/View/CandyTree/View/XPCandyTreeViewController.m +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/XPCandyTreeViewController.m @@ -655,6 +655,7 @@ UIKIT_EXTERN NSString * const kRoomReceivedCandyNotificationKey; - (UIButton *)fristLoveBtn{ if(!_fristLoveBtn){ _fristLoveBtn = [UIButton new]; + _fristLoveBtn.yn_acceptEventInterval = 1; [_fristLoveBtn setBackgroundImage:kImage(@"room_candy_tree_frist_tap_bg") forState:UIControlStateNormal]; [_fristLoveBtn addTarget:self action:@selector(fineLoveAction:) forControlEvents:UIControlEventTouchUpInside]; } @@ -663,6 +664,7 @@ UIKIT_EXTERN NSString * const kRoomReceivedCandyNotificationKey; - (UIButton *)tenthLoveBtn{ if(!_tenthLoveBtn){ _tenthLoveBtn = [UIButton new]; + _tenthLoveBtn.yn_acceptEventInterval = 1; [_tenthLoveBtn setBackgroundImage:kImage(@"room_candy_tree_ten_tap_bg") forState:UIControlStateNormal]; [_tenthLoveBtn addTarget:self action:@selector(fineLoveAction:) forControlEvents:UIControlEventTouchUpInside]; } @@ -671,6 +673,7 @@ UIKIT_EXTERN NSString * const kRoomReceivedCandyNotificationKey; - (UIButton *)hundredthLoveBtn{ if(!_hundredthLoveBtn){ _hundredthLoveBtn = [UIButton new]; + _hundredthLoveBtn.yn_acceptEventInterval = 1; [_hundredthLoveBtn setBackgroundImage:kImage(@"room_candy_tree_hundredth_tap_bg") forState:UIControlStateNormal]; [_hundredthLoveBtn addTarget:self action:@selector(fineLoveAction:) forControlEvents:UIControlEventTouchUpInside]; } diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/XPRoomMessageContainerView.m b/YuMi/Modules/YMRoom/View/MessageContainerView/XPRoomMessageContainerView.m index d36682c6..086aff1e 100644 --- a/YuMi/Modules/YMRoom/View/MessageContainerView/XPRoomMessageContainerView.m +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/XPRoomMessageContainerView.m @@ -343,6 +343,7 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey"; ///执行插入动画并滚动 - (void)scrollToBottom:(BOOL)animated { if(self.datasource.count > 0){ + [self.messageTableView.superview layoutIfNeeded]; CGPoint point = CGPointMake(0, self.messageTableView.contentSize.height - self.messageTableView.frame.size.height); [self.messageTableView setContentOffset:point]; self.atCount = 0; diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/XPGiftWeekStarCollectionViewCell.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/XPGiftWeekStarCollectionViewCell.m index 675ad423..d852d343 100644 --- a/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/XPGiftWeekStarCollectionViewCell.m +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/XPGiftWeekStarCollectionViewCell.m @@ -105,7 +105,7 @@ #pragma mark - Getters And Setters - (void)setWeekStarGiftList:(NSArray *)weekStarGiftList { _weekStarGiftList = weekStarGiftList; - if (_weekStarGiftList.count > 0) { + if (_weekStarGiftList.count > 0 && self.selectGiftInfo == nil) { self.selectGiftInfo = _weekStarGiftList.firstObject; } NSInteger page = 0; diff --git a/YuMi/Modules/YMRoom/View/TreasureFairy/View/XPTreasureFairyViewController.m b/YuMi/Modules/YMRoom/View/TreasureFairy/View/XPTreasureFairyViewController.m index 27ff2291..60e8c64a 100644 --- a/YuMi/Modules/YMRoom/View/TreasureFairy/View/XPTreasureFairyViewController.m +++ b/YuMi/Modules/YMRoom/View/TreasureFairy/View/XPTreasureFairyViewController.m @@ -827,6 +827,7 @@ - (UIButton *)oneButton { if (!_oneButton) { _oneButton = [UIButton buttonWithType:UIButtonTypeCustom]; + _oneButton.yn_acceptEventInterval = 1; [_oneButton setImage:[UIImage imageNamed:@"room_treasure_fairy_one_bg"] forState:UIControlStateNormal]; [_oneButton setImage:[UIImage imageNamed:@"room_treasure_fairy_one_bg"] forState:UIControlStateSelected]; [_oneButton addTarget:self action:@selector(oneButtonAction:) forControlEvents:UIControlEventTouchUpInside]; @@ -838,6 +839,7 @@ - (UIButton *)tenButton { if (!_tenButton) { _tenButton = [UIButton buttonWithType:UIButtonTypeCustom]; + _tenButton.yn_acceptEventInterval = 1; [_tenButton setImage:[UIImage imageNamed:@"room_treasure_fairy_ten_bg"] forState:UIControlStateNormal]; [_tenButton setImage:[UIImage imageNamed:@"room_treasure_fairy_ten_bg"] forState:UIControlStateSelected]; [_tenButton addTarget:self action:@selector(tenButtonAction:) forControlEvents:UIControlEventTouchUpInside]; @@ -849,6 +851,7 @@ - (UIButton *)hundredButton { if (!_hundredButton) { _hundredButton = [UIButton buttonWithType:UIButtonTypeCustom]; + _hundredButton.yn_acceptEventInterval = 1; [_hundredButton setImage:[UIImage imageNamed:@"room_treasure_fairy_hundred_bg"] forState:UIControlStateNormal]; [_hundredButton setImage:[UIImage imageNamed:@"room_treasure_fairy_hundred_bg"] forState:UIControlStateSelected]; [_hundredButton addTarget:self action:@selector(hundredButtonAction:) forControlEvents:UIControlEventTouchUpInside]; diff --git a/YuMi/Modules/YMTabbar/Api/Api+Main.h b/YuMi/Modules/YMTabbar/Api/Api+Main.h index b4f61b66..a518d240 100644 --- a/YuMi/Modules/YMTabbar/Api/Api+Main.h +++ b/YuMi/Modules/YMTabbar/Api/Api+Main.h @@ -58,8 +58,7 @@ NS_ASSUME_NONNULL_BEGIN /// @param completion 完成 +(void)requestAuthorizationCodeInfo:(HttpRequestHelperCompletion)completion; +(void)requestMineChannel:(HttpRequestHelperCompletion)completion; -///ip检测 -+(void)checkIpRegionComplection:(HttpRequestHelperCompletion)complection; + @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMTabbar/Api/Api+Main.m b/YuMi/Modules/YMTabbar/Api/Api+Main.m index d5bc83e7..02724a0d 100644 --- a/YuMi/Modules/YMTabbar/Api/Api+Main.m +++ b/YuMi/Modules/YMTabbar/Api/Api+Main.m @@ -121,8 +121,5 @@ +(void)requestMineChannel:(HttpRequestHelperCompletion)completion{ [self makeRequest:@"charge/guide/channel" method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, nil]; } -///ip检测 -+(void)checkIpRegionComplection:(HttpRequestHelperCompletion)complection{ - [self makeRequest:@"ipRegion/check" method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, nil]; -} + @end diff --git a/YuMi/Modules/YMTabbar/Presenter/MainPresenter.h b/YuMi/Modules/YMTabbar/Presenter/MainPresenter.h index f3f9b989..a17baff9 100644 --- a/YuMi/Modules/YMTabbar/Presenter/MainPresenter.h +++ b/YuMi/Modules/YMTabbar/Presenter/MainPresenter.h @@ -45,8 +45,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)clientStartApp; ///判断是否绑定授权码 -(void)getAuthorizationCodeInfo; -///ip检测 --(void)checkIpRegionAction; + @end diff --git a/YuMi/Modules/YMTabbar/Presenter/MainPresenter.m b/YuMi/Modules/YMTabbar/Presenter/MainPresenter.m index 60f1aa5c..9c394522 100644 --- a/YuMi/Modules/YMTabbar/Presenter/MainPresenter.m +++ b/YuMi/Modules/YMTabbar/Presenter/MainPresenter.m @@ -237,19 +237,5 @@ static NSString * kUpdateVersionNum = @"kUpdateVersionNum"; [[self getView]getAuthorizationCodeInfoWithPhonefail]; } errorToast:NO]]; } -///ip检测 --(void)checkIpRegionAction{ - [Api checkIpRegionComplection:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { - if(code == 200){ - if(data.data != nil){ - NSInteger time = [data.data integerValue]/1000; - [[self getView]checkIpRegionSuccess:time]; - } - return; - } - if(code == 401){ - [[self getView]checkIpRegionFailWithMsg:msg]; - } - }]; -} + @end diff --git a/YuMi/Modules/YMTabbar/Protocol/MainProtocol.h b/YuMi/Modules/YMTabbar/Protocol/MainProtocol.h index 63ceb083..cbf4694c 100644 --- a/YuMi/Modules/YMTabbar/Protocol/MainProtocol.h +++ b/YuMi/Modules/YMTabbar/Protocol/MainProtocol.h @@ -34,9 +34,7 @@ NS_ASSUME_NONNULL_BEGIN -(void)getAuthorizationCodeInfoWithPhoneSuccess:(BOOL)flag; //////判断是否绑定授权码 -(void)getAuthorizationCodeInfoWithPhonefail; -/// --(void)checkIpRegionFailWithMsg:(NSString *)msg; --(void)checkIpRegionSuccess:(NSInteger)seconds; + @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMTabbar/View/TabbarViewController.m b/YuMi/Modules/YMTabbar/View/TabbarViewController.m index fe1f46d0..4e2ea3a9 100644 --- a/YuMi/Modules/YMTabbar/View/TabbarViewController.m +++ b/YuMi/Modules/YMTabbar/View/TabbarViewController.m @@ -213,7 +213,6 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; - (void)autoLoginSuccess { [self.presenter loginNIM]; [self.presenter getUserInfo]; - [self.presenter checkIpRegionAction]; ///登录成功之后 在验证是否有漏单的行为 [self.presenter checkTranscation]; ///检查更新 @@ -262,6 +261,7 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; return; } self.userInfo = userInfo; + [AccountInfoStorage instance].name = self.userInfo.nick; if ((userInfo.nick == nil || userInfo.avatar == nil) && self.isFormLogin == NO) { [self completeUserInfo]; return; @@ -327,18 +327,7 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; - (void)bindCodeSuccess{ [self completeUserInfo]; } -/// --(void)checkIpRegionSuccess:(NSInteger)seconds{ - if(seconds <= 0)return; - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(seconds * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - [self.presenter checkIpRegionAction]; - }); -} -- (void)checkIpRegionFailWithMsg:(NSString *)msg{ - [self tokenInvalid]; - [self showErrorToast:msg]; - -} + /// -(void)requestGiftList{ [self dealWithDefaultSvga]; @@ -719,10 +708,13 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; UIViewController *me; UIViewController * home; UIViewController * monents; + ///取消检查ip定时器,释放XPNewHomeViewController + [[NSNotificationCenter defaultCenter]postNotificationName:@"kInLoginVC" object:nil]; if (logined) { msg = [[XPSessionMainViewController alloc] init]; if ([ClientConfig shareConfig].canOpen) { + home = [[XPNewHomeViewController alloc] init]; monents = [[XPMonentsViewController alloc] init]; me = [[XPMineViewController alloc] init]; diff --git a/YuMi/Structure/MVP/Model/AccountInfoStorage.h b/YuMi/Structure/MVP/Model/AccountInfoStorage.h index 879396b2..ace32a22 100644 --- a/YuMi/Structure/MVP/Model/AccountInfoStorage.h +++ b/YuMi/Structure/MVP/Model/AccountInfoStorage.h @@ -12,7 +12,7 @@ @interface AccountInfoStorage : NSObject @property (nonatomic, strong, readonly) AccountModel *accountModel; - +@property(nonatomic,copy) NSString *name;///判断帐号是否填写资料 ///判断是否正在请求ticket,yes的话,不能用ticket请求数据,不然会出现401,要重新登录 @property (nonatomic,assign) BOOL isRequestRicket; ///如果是第三方登录的话 保存一下用户信息