From 5f3eb53b0a596ad4e61e06c43a3ce50476eba18b Mon Sep 17 00:00:00 2001 From: chenguilong <598604202@qq.com> Date: Thu, 1 Dec 2022 11:20:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=8A=AB=E6=8C=81=E5=A5=96?= =?UTF-8?q?=E5=8A=B1=E6=8F=90=E7=A4=BA=E5=8F=8A=E8=B7=B3=E8=BD=AC=E6=88=BF?= =?UTF-8?q?=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xplan-ios.xcodeproj/project.pbxproj | 12 +++++++ xplan-ios/Main/Home/Api/Api+Home.h | 5 +++ xplan-ios/Main/Home/Api/Api+Home.m | 7 ++++ .../Home/Model/HomeSearchHijackAwardModel.h | 23 +++++++++++++ .../Home/Model/HomeSearchHijackAwardModel.m | 12 +++++++ .../Home/Model/HomeSearchHijackBaseModel.h | 20 +++++++++++ .../Home/Model/HomeSearchHijackBaseModel.m | 12 +++++++ .../Home/Presenter/XPHomeSearchPresenter.h | 3 ++ .../Home/Presenter/XPHomeSearchPresenter.m | 11 +++++++ .../Main/Home/Protocol/XPHomeSearchProtocol.h | 7 +++- .../HomeSearchHijack/XPHomeSearchAwardView.h | 3 ++ .../HomeSearchHijack/XPHomeSearchAwardView.m | 14 +++++++- .../XPRoomSearchContainerViewController.m | 33 +++++++++++++++---- 13 files changed, 154 insertions(+), 8 deletions(-) create mode 100644 xplan-ios/Main/Home/Model/HomeSearchHijackAwardModel.h create mode 100644 xplan-ios/Main/Home/Model/HomeSearchHijackAwardModel.m create mode 100644 xplan-ios/Main/Home/Model/HomeSearchHijackBaseModel.h create mode 100644 xplan-ios/Main/Home/Model/HomeSearchHijackBaseModel.m diff --git a/xplan-ios.xcodeproj/project.pbxproj b/xplan-ios.xcodeproj/project.pbxproj index 9158f310..218ec008 100644 --- a/xplan-ios.xcodeproj/project.pbxproj +++ b/xplan-ios.xcodeproj/project.pbxproj @@ -332,6 +332,8 @@ 9BE9F0FF27FED76500667200 /* XPAnchorFansTaskModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE9F0FE27FED76500667200 /* XPAnchorFansTaskModel.m */; }; 9BE9F10227FEE5C200667200 /* XPAnchorFansTaskDetailModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE9F10127FEE5C200667200 /* XPAnchorFansTaskDetailModel.m */; }; 9BE9F10527FF04CF00667200 /* XPAnchorFansTaskTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE9F10427FF04CF00667200 /* XPAnchorFansTaskTableViewCell.m */; }; + 9BEBBF4329384BB20024E0B4 /* HomeSearchHijackBaseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BEBBF4229384BB20024E0B4 /* HomeSearchHijackBaseModel.m */; }; + 9BEBBF4629384BDE0024E0B4 /* HomeSearchHijackAwardModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BEBBF4529384BDE0024E0B4 /* HomeSearchHijackAwardModel.m */; }; 9BEE3D0E27853BD000C83219 /* ThemeColor+NobleCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BEE3D0D27853BD000C83219 /* ThemeColor+NobleCenter.m */; }; 9BEE3D11278584FE00C83219 /* XPNobleCenterEmptyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BEE3D10278584FE00C83219 /* XPNobleCenterEmptyView.m */; }; 9BEE3D142785884A00C83219 /* XPNobleCenterResidueView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BEE3D132785884A00C83219 /* XPNobleCenterResidueView.m */; }; @@ -1894,6 +1896,10 @@ 9BE9F10127FEE5C200667200 /* XPAnchorFansTaskDetailModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAnchorFansTaskDetailModel.m; sourceTree = ""; }; 9BE9F10327FF04CF00667200 /* XPAnchorFansTaskTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAnchorFansTaskTableViewCell.h; sourceTree = ""; }; 9BE9F10427FF04CF00667200 /* XPAnchorFansTaskTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAnchorFansTaskTableViewCell.m; sourceTree = ""; }; + 9BEBBF4129384BB20024E0B4 /* HomeSearchHijackBaseModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeSearchHijackBaseModel.h; sourceTree = ""; }; + 9BEBBF4229384BB20024E0B4 /* HomeSearchHijackBaseModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeSearchHijackBaseModel.m; sourceTree = ""; }; + 9BEBBF4429384BDE0024E0B4 /* HomeSearchHijackAwardModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeSearchHijackAwardModel.h; sourceTree = ""; }; + 9BEBBF4529384BDE0024E0B4 /* HomeSearchHijackAwardModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeSearchHijackAwardModel.m; sourceTree = ""; }; 9BEE3D0C27853BD000C83219 /* ThemeColor+NobleCenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ThemeColor+NobleCenter.h"; sourceTree = ""; }; 9BEE3D0D27853BD000C83219 /* ThemeColor+NobleCenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "ThemeColor+NobleCenter.m"; sourceTree = ""; }; 9BEE3D0F278584FE00C83219 /* XPNobleCenterEmptyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNobleCenterEmptyView.h; sourceTree = ""; }; @@ -8256,6 +8262,10 @@ 9B39C8852885408C00564D17 /* HomeLiveLookRecordModel.m */, F183EF3F2935E1C000E2465F /* HomeEveryOneSearchModel.h */, F183EF402935E1C000E2465F /* HomeEveryOneSearchModel.m */, + 9BEBBF4129384BB20024E0B4 /* HomeSearchHijackBaseModel.h */, + 9BEBBF4229384BB20024E0B4 /* HomeSearchHijackBaseModel.m */, + 9BEBBF4429384BDE0024E0B4 /* HomeSearchHijackAwardModel.h */, + 9BEBBF4529384BDE0024E0B4 /* HomeSearchHijackAwardModel.m */, ); path = Model; sourceTree = ""; @@ -9775,6 +9785,7 @@ E8EEB91726FC7B35007C6EBA /* XPMineUserInfoDesViewController.m in Sources */, 9B1B72AC280031DB003FACE9 /* XPAnchorPKViewController.m in Sources */, E80CBDED27D0D899001E1EC2 /* XPHomeLikeEmptyTableViewCell.m in Sources */, + 9BEBBF4329384BB20024E0B4 /* HomeSearchHijackBaseModel.m in Sources */, 180806FB2729A354001FD836 /* ThemeColor+Room.m in Sources */, 9BC8C83028090C9200C24F85 /* XPRoomAnchorRankBannerView.m in Sources */, E81A653F283511BE00F55894 /* XPMonentsInteractiveViewController.m in Sources */, @@ -10038,6 +10049,7 @@ 9B53D57A28E2CF18005187A3 /* XPTeenagerHomeView.m in Sources */, E8AB632428AE10310023B0D2 /* XPMoentsTopicListViewController.m in Sources */, E8098CAA282E03B40090B9F0 /* XPMonentsRecommendPresenter.m in Sources */, + 9BEBBF4629384BDE0024E0B4 /* HomeSearchHijackAwardModel.m in Sources */, 9B1B729828002147003FACE9 /* XPMineFansTeamPresenter.m in Sources */, E86507E8281A8212006951B0 /* ContentTweetModel.m in Sources */, E8D55CA0281186D6006935A5 /* SessionAudioRecordView.m in Sources */, diff --git a/xplan-ios/Main/Home/Api/Api+Home.h b/xplan-ios/Main/Home/Api/Api+Home.h index ceda7ff4..34046b45 100644 --- a/xplan-ios/Main/Home/Api/Api+Home.h +++ b/xplan-ios/Main/Home/Api/Api+Home.h @@ -50,6 +50,11 @@ NS_ASSUME_NONNULL_BEGIN /// @param sid sid + (void)requestEveryOneSearchRoomList:(HttpRequestHelperCompletion)completion wordId:(NSString *)sid; +/// 搜索劫持 +/// @param completion 完成 +/// @param key 搜索关键词 ++ (void)requestSearchHijack:(HttpRequestHelperCompletion)completion key:(NSString *)key; + /// 首页推荐的轮播图 /// @param completion 完成 /// @param uid 用户的uid diff --git a/xplan-ios/Main/Home/Api/Api+Home.m b/xplan-ios/Main/Home/Api/Api+Home.m index eaa9e06a..c2c7a9b6 100644 --- a/xplan-ios/Main/Home/Api/Api+Home.m +++ b/xplan-ios/Main/Home/Api/Api+Home.m @@ -51,6 +51,13 @@ [self makeRequest:@"every/one/search/getRoomList" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, sid, nil]; } +/// 搜索劫持 +/// @param completion 完成 +/// @param key 搜索关键词 ++ (void)requestSearchHijack:(HttpRequestHelperCompletion)completion key:(NSString *)key { + [self makeRequest:@"search/hijack/get" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, key, nil]; +} + /// 首页推荐的轮播图 /// @param completion 完成 /// @param uid 用户的uid diff --git a/xplan-ios/Main/Home/Model/HomeSearchHijackAwardModel.h b/xplan-ios/Main/Home/Model/HomeSearchHijackAwardModel.h new file mode 100644 index 00000000..d28dbeca --- /dev/null +++ b/xplan-ios/Main/Home/Model/HomeSearchHijackAwardModel.h @@ -0,0 +1,23 @@ +// +// HomeSearchHijackAwardModel.h +// xplan-ios +// +// Created by GreenLand on 2022/12/1. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface HomeSearchHijackAwardModel : NSObject + +@property (nonatomic, copy) NSString *awardName; +@property (nonatomic, assign) NSInteger awardId; +@property (nonatomic, copy) NSString *awardPrice; +@property (nonatomic, assign) NSInteger awardNum; +@property (nonatomic, assign) NSInteger storageNum; +@property (nonatomic, copy) NSString *awardUrl; + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/Model/HomeSearchHijackAwardModel.m b/xplan-ios/Main/Home/Model/HomeSearchHijackAwardModel.m new file mode 100644 index 00000000..8d38ec29 --- /dev/null +++ b/xplan-ios/Main/Home/Model/HomeSearchHijackAwardModel.m @@ -0,0 +1,12 @@ +// +// HomeSearchHijackAwardModel.m +// xplan-ios +// +// Created by GreenLand on 2022/12/1. +// + +#import "HomeSearchHijackAwardModel.h" + +@implementation HomeSearchHijackAwardModel + +@end diff --git a/xplan-ios/Main/Home/Model/HomeSearchHijackBaseModel.h b/xplan-ios/Main/Home/Model/HomeSearchHijackBaseModel.h new file mode 100644 index 00000000..48f3291d --- /dev/null +++ b/xplan-ios/Main/Home/Model/HomeSearchHijackBaseModel.h @@ -0,0 +1,20 @@ +// +// HomeSearchHijackBaseModel.h +// xplan-ios +// +// Created by GreenLand on 2022/12/1. +// + +#import +#import "HomeSearchHijackAwardModel.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface HomeSearchHijackBaseModel : NSObject + +@property (nonatomic, copy) NSString *roomUid; +@property (nonatomic, strong) HomeSearchHijackAwardModel *awardVo; + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/Model/HomeSearchHijackBaseModel.m b/xplan-ios/Main/Home/Model/HomeSearchHijackBaseModel.m new file mode 100644 index 00000000..4f7904f8 --- /dev/null +++ b/xplan-ios/Main/Home/Model/HomeSearchHijackBaseModel.m @@ -0,0 +1,12 @@ +// +// HomeSearchHijackBaseModel.m +// xplan-ios +// +// Created by GreenLand on 2022/12/1. +// + +#import "HomeSearchHijackBaseModel.h" + +@implementation HomeSearchHijackBaseModel + +@end diff --git a/xplan-ios/Main/Home/Presenter/XPHomeSearchPresenter.h b/xplan-ios/Main/Home/Presenter/XPHomeSearchPresenter.h index ff58a0c2..687d90b4 100644 --- a/xplan-ios/Main/Home/Presenter/XPHomeSearchPresenter.h +++ b/xplan-ios/Main/Home/Presenter/XPHomeSearchPresenter.h @@ -23,6 +23,9 @@ NS_ASSUME_NONNULL_BEGIN /// @param sid keyID - (void)getEveryOneSearchRoomList:(NSString *)sid; +///搜索劫持 +- (void)getSearchHijack:(NSString *)key; + @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/Presenter/XPHomeSearchPresenter.m b/xplan-ios/Main/Home/Presenter/XPHomeSearchPresenter.m index d3b9f779..85a83869 100644 --- a/xplan-ios/Main/Home/Presenter/XPHomeSearchPresenter.m +++ b/xplan-ios/Main/Home/Presenter/XPHomeSearchPresenter.m @@ -11,6 +11,7 @@ #import "AccountInfoStorage.h" #import "HomeSearchResultModel.h" #import "HomeRecommendRoomModel.h" +#import "HomeSearchHijackBaseModel.h" @implementation XPHomeSearchPresenter @@ -45,4 +46,14 @@ }] wordId:sid]; } +///搜索劫持 +- (void)getSearchHijack:(NSString *)key { + [Api requestSearchHijack:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + HomeSearchHijackBaseModel *model = [HomeSearchHijackBaseModel modelWithJSON:data.data]; + [[self getView] searchHijackSuccess:model key:key]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self getView] searchHijackFail:key]; + }] key:key]; +} + @end diff --git a/xplan-ios/Main/Home/Protocol/XPHomeSearchProtocol.h b/xplan-ios/Main/Home/Protocol/XPHomeSearchProtocol.h index 30f2d3f0..71d4c208 100644 --- a/xplan-ios/Main/Home/Protocol/XPHomeSearchProtocol.h +++ b/xplan-ios/Main/Home/Protocol/XPHomeSearchProtocol.h @@ -8,7 +8,7 @@ #import NS_ASSUME_NONNULL_BEGIN - +@class HomeSearchHijackBaseModel; @protocol XPHomeSearchProtocol ///搜索成功 @@ -22,6 +22,11 @@ NS_ASSUME_NONNULL_BEGIN /// 大家都在搜房间列表成功 - (void)everyoneSearchListSuccess:(NSArray *)list; +///获取搜索劫持成功 +- (void)searchHijackSuccess:(HomeSearchHijackBaseModel *)data key:(NSString *)key; +///获取搜索劫持失败 +- (void)searchHijackFail:(NSString *)key; + @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/SubViews/HomeSearchHijack/XPHomeSearchAwardView.h b/xplan-ios/Main/Home/View/SubViews/HomeSearchHijack/XPHomeSearchAwardView.h index aca5b23c..47e4edb5 100644 --- a/xplan-ios/Main/Home/View/SubViews/HomeSearchHijack/XPHomeSearchAwardView.h +++ b/xplan-ios/Main/Home/View/SubViews/HomeSearchHijack/XPHomeSearchAwardView.h @@ -6,11 +6,14 @@ // #import +#import "HomeSearchHijackAwardModel.h" NS_ASSUME_NONNULL_BEGIN @interface XPHomeSearchAwardView : UIView +@property (nonatomic, strong) HomeSearchHijackAwardModel *data; + @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/SubViews/HomeSearchHijack/XPHomeSearchAwardView.m b/xplan-ios/Main/Home/View/SubViews/HomeSearchHijack/XPHomeSearchAwardView.m index 05039100..c5611a1b 100644 --- a/xplan-ios/Main/Home/View/SubViews/HomeSearchHijack/XPHomeSearchAwardView.m +++ b/xplan-ios/Main/Home/View/SubViews/HomeSearchHijack/XPHomeSearchAwardView.m @@ -41,6 +41,8 @@ - (void)initView { self.backgroundColor = [UIColor whiteColor]; + self.layer.cornerRadius = 20; + self.layer.masksToBounds = YES; [self addSubview:self.awardTitle]; [self addSubview:self.closeBtn]; [self addSubview:self.awardImageView]; @@ -86,12 +88,19 @@ [TTPopup dismiss]; } +- (void)setData:(HomeSearchHijackAwardModel *)data { + self.awardImageView.imageUrl = data.awardUrl; + self.giftTitle.text = data.awardName; +} + #pragma mark - getter - (UILabel *)awardTitle { if (!_awardTitle) { UILabel *label = [[UILabel alloc] init]; label.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; label.textColor = [ThemeColor mainTextColor]; + label.text = @"不错哟~你获得了神秘奖励"; + label.textAlignment = NSTextAlignmentCenter; _awardTitle = label; } return _awardTitle; @@ -100,7 +109,7 @@ - (UIButton *)closeBtn { if (!_closeBtn) { _closeBtn = [UIButton buttonWithType:UIButtonTypeCustom]; - [_closeBtn setImage:[UIImage imageNamed:@""] forState:UIControlStateNormal]; + [_closeBtn setImage:[UIImage imageNamed:@"room_little_game_close"] forState:UIControlStateNormal]; [_closeBtn addTarget:self action:@selector(onCloseBtnClick:) forControlEvents:UIControlEventTouchUpInside]; } return _closeBtn; @@ -111,6 +120,7 @@ NetImageConfig *config = [[NetImageConfig alloc] init]; config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder]; _awardImageView = [[NetImageView alloc] initWithConfig:config]; + _awardImageView.contentMode = UIViewContentModeScaleAspectFit; _awardImageView.layer.masksToBounds = YES; _awardImageView.layer.cornerRadius = 8; } @@ -122,6 +132,7 @@ UILabel *label = [[UILabel alloc] init]; label.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; label.textColor = [ThemeColor mainTextColor]; + label.textAlignment = NSTextAlignmentCenter; _giftTitle = label; } return _giftTitle; @@ -133,6 +144,7 @@ label.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; label.textColor = [ThemeColor secondTextColor]; label.text = @"奖励已自动发放"; + label.textAlignment = NSTextAlignmentCenter; _giftDes = label; } return _giftDes; diff --git a/xplan-ios/Main/Home/View/XPRoomSearchContainerViewController.m b/xplan-ios/Main/Home/View/XPRoomSearchContainerViewController.m index aaea5b45..879f90f0 100644 --- a/xplan-ios/Main/Home/View/XPRoomSearchContainerViewController.m +++ b/xplan-ios/Main/Home/View/XPRoomSearchContainerViewController.m @@ -14,14 +14,18 @@ #import "XPMacro.h" #import "ThemeColor.h" #import "XPHomeSearchNavView.h" +#import "TTPopup.h" ///View #import "XPHomeSearchViewController.h" #import "XPRoomSearchRecordViewController.h" #import "XPHomeSearchRelateView.h" #import "XPRoomViewController.h" +#import "XPHomeSearchAwardView.h" ///P #import "XPHomeSearchPresenter.h" #import "XPHomeSearchProtocol.h" +///Model +#import "HomeSearchHijackBaseModel.h" UIKIT_EXTERN NSString *kFromSearchToHomeViewKey; UIKIT_EXTERN NSString *kTabShowAnchorCardKey; @@ -97,6 +101,7 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; } - (void)searchVCLoadData:(NSString *)text { + self.recordVc.view.hidden = YES; [self.roomVC searchText:text]; [self.userVC searchText:text]; } @@ -117,9 +122,8 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; - (BOOL)textFieldShouldReturn:(UITextField *)textField { if (textField.text.length > 0) { [textField resignFirstResponder]; - [self searchVCLoadData:textField.text]; + [self.presenter getSearchHijack:textField.text]; [self.recordVc storeSearchRecord:textField.text]; - self.recordVc.view.hidden = YES; } else { [self showErrorToast:@"请输入需要搜索的内容"]; } @@ -130,9 +134,8 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; - (void)xPHomeSearchNavView:(XPHomeSearchNavView *)view didClickSearch:(UIButton *)sender { if (view.searchTextField.text.length > 0) { [view.searchTextField resignFirstResponder]; - [self searchVCLoadData:view.searchTextField.text]; + [self.presenter getSearchHijack:view.searchTextField.text]; [self.recordVc storeSearchRecord:view.searchTextField.text]; - self.recordVc.view.hidden = YES; } else { [self showErrorToast:@"请输入需要搜索的内容"]; } @@ -160,9 +163,8 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; - (void)xPRoomSearchRecordViewControllerSearchWithWord:(NSString *)word { if (word.length > 0) { self.searchView.searchTextField.text = word; - [self searchVCLoadData:word]; + [self.presenter getSearchHijack:word]; [self.recordVc storeSearchRecord:word]; - self.recordVc.view.hidden = YES; } else { [self showErrorToast:@"请输入需要搜索的内容"]; } @@ -204,6 +206,25 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; } +///获取搜索劫持成功 +- (void)searchHijackSuccess:(HomeSearchHijackBaseModel *)data key:(nonnull NSString *)key { + if (data.roomUid.length) { + [self dismissViewControllerAnimated:YES completion:nil]; + [XPRoomViewController openRoom:data.roomUid viewController:self.presentingViewController]; + } else if (data.awardVo) { + XPHomeSearchAwardView *view = [[XPHomeSearchAwardView alloc] init]; + view.data = data.awardVo; + [TTPopup popupView:view style:TTPopupStyleAlert]; + } else { + [self searchVCLoadData:key]; + } +} + +///获取搜索劫持失败 +- (void)searchHijackFail:(NSString *)key { + [self searchVCLoadData:key]; +} + #pragma mark - XPHomeSearchRelateViewDelegate ///进入房间 - (void)xPHomeSearchRelateViewEnterRoom:(NSString *)roomUid {