// // IfishInformationViewController.m // Ifish // // Created by imac on 17/3/13. // Copyright © 2017年 lianlian. All rights reserved. // #import "IfishInformationViewController.h" #import "IfishInformationListViewCell.h" #import "IfishZiXunAdViewCell.h" #import "PushMasssageWebViewController.h" #import "IfishInformations.h" #import "PushMasssageWebViewController.h" #import "JHRefresh.h" #import "IfishUserDefaultHelper.h" #import #import "IfishAlibcWebViewController.h" @interface IfishInformationViewController () { BOOL _isPush; BOOL _isRefreshing; BOOL _isLoadMore; } @property (nonatomic,strong) UITableView *tableView; @property (nonatomic,strong) NSMutableArray *bannerDataArr; @property (nonatomic,strong) NSMutableArray *listDataArr; @property(nonatomic,copy) NSString* total; @property(nonatomic) int page; @property(nonatomic)BOOL isRefreshing; @property(nonatomic)BOOL isLoadMore; @property(nonatomic) NSIndexPath *didSelectIndexPath; @end @implementation IfishInformationViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. [self addTitleViewWithTitle:@"资讯"]; _isPush = NO; _bannerDataArr = [[NSMutableArray alloc] init]; _listDataArr = [[NSMutableArray alloc] init]; [self creatTab]; [self initBannerData]; [self initInformations]; [self creatReatRefreshView]; } -(void)initInformations { //NSArray *arr = [[IfishDatabaseManager sharedManager] readInformations]; //IfishInformations *mode = arr[0]; //NSLog(@"arr##%@",arr); //NSLog(@"IfishInformations0## mode.title:%@ , mode.clickNum:%d",mode.title,mode.clickNum); [self loadDataWith:0 pageSize:10 isRefres:NO]; } -(void)creatTab{ _tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped]; _tableView.dataSource = self; _tableView.delegate = self; _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; _tableView.backgroundColor = RGB(242, 242, 242); [self.view addSubview:_tableView]; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ if (section ==0) { return 1; } return _listDataArr.count; } -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 2; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ if (indexPath.section ==0) { IfishZiXunAdViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"IfishZiXunAdViewCell"]; if (!cell) { cell = [[[NSBundle mainBundle] loadNibNamed:@"IfishZiXunAdViewCell" owner:self options:nil] lastObject]; } if (_bannerDataArr.count !=0) { NSArray *ads =self.bannerDataArr; NSMutableArray *imgs = [[NSMutableArray alloc] init]; [ads enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { if ([obj isKindOfClass:[IfishBannerData class]]) { IfishBannerData *banner = (IfishBannerData *)obj; [imgs addObject:banner.adImage]; } }]; cell.newsAdview.adList = imgs; __weak typeof (self)weakSelf = self; cell.newsAdview.tapActionBlock =^(LXAdScrollView *adScrollView) { IfishBannerData *bdata = _bannerDataArr[adScrollView.currentPage]; [weakSelf tapAdWithLink:bdata.adLink]; }; }else{ //默认加载本地 cell.newsAdview.adList = @[@"Ifishbanner_zixun.jpg"]; cell.newsAdview.tapActionBlock =^(LXAdScrollView *adScrollView) { }; } return cell; } IfishInformationListViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"IfishInformationListViewCell"]; if (!cell) { cell = [[[NSBundle mainBundle] loadNibNamed:@"IfishInformationListViewCell" owner:self options:nil] lastObject]; } IfishInformations *model =_listDataArr[indexPath.row]; [cell loadCellDataWith:model]; return cell; } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ if (indexPath.section==0) { return self.view.frame.size.width * 0.427;//320/750 } return 95; } -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ return 0.01f; } -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ [tableView deselectRowAtIndexPath:indexPath animated:YES]; if (indexPath.section !=0) { //每日打开资讯链接 加金币 [[IfishUserObsever sharedInstance] addGoldWith:READINFORMATION addType:IFISHADDGOLDTYPE0]; _isPush = YES; PushMasssageWebViewController*webVC=[[PushMasssageWebViewController alloc]init]; webVC.pushtitle = @"资讯详情"; IfishInformations *model =_listDataArr[indexPath.row]; webVC.pushlink = model.link; //观看数加一 不考虑打开成功与否 model.clickNum ++; _didSelectIndexPath = indexPath; [self addClicknumber:model.infoId]; NSString *infoIdstr = [NSString stringWithFormat:@"%d",model.infoId]; //首页资讯红点标志位 //是否比当前值大 大则存储 NSString *oldId = [IfishUserDefaultHelper getDefualtInfoId]; if (!oldId) { oldId = @""; } if (infoIdstr.intValue >= oldId.intValue) { [IfishUserDefaultHelper saveinfoId:infoIdstr]; } self.hidesBottomBarWhenPushed = YES; [self.navigationController pushViewController:webVC animated:YES]; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; if (_isPush) { //NSIndexSet *asset = [NSIndexSet indexSetWithIndex:0]; //[self.tableView reloadSections:asset withRowAnimation:UITableViewRowAnimationNone]; NSIndexPath *indexPath =[NSIndexPath indexPathForRow:0 inSection:0]; NSArray *arr =nil; if (_didSelectIndexPath) { arr =@[indexPath,_didSelectIndexPath]; }else{ arr =@[indexPath]; } [self.tableView reloadRowsAtIndexPaths:arr withRowAnimation:UITableViewRowAnimationNone]; } } -(void)initBannerData { __weak typeof (self)weakSelf = self; [AFHttpTool getIfishBannerData:IfishAdTypeZiXun success:^(id response) { NSDictionary *reDic=[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil]; NSString *result=reDic[@"result"]; if ([result isEqualToString:@"100"]) { NSArray *data= reDic[@"data"]; if (data&&data.count!=0) { for (NSDictionary *dic in data) { IfishBannerData *bannerdata = [[IfishBannerData alloc] initWithDict:dic]; [_bannerDataArr addObject:bannerdata]; } NSIndexPath *indexPath =[NSIndexPath indexPathForRow:0 inSection:0]; NSArray *arr=@[indexPath]; [weakSelf.tableView reloadRowsAtIndexPaths:arr withRowAnimation:UITableViewRowAnimationNone]; } }else{ //[weakSelf.view makeToast:@"广告位获取失败"]; } } failure:^(NSError *err) { }]; } #pragma mark - banner 点击事件 -(void)tapAdWithLink:(NSString *)pushlink { if (![pushlink isKindOfClass:[NSNull class]] &&pushlink && ![pushlink isEqualToString:@""]) { _isPush = YES; //字条串是否包含有某字符串 if ([pushlink rangeOfString:@"taobao"].location == NSNotFound) { self.hidesBottomBarWhenPushed = YES; PushMasssageWebViewController*webVC=[[PushMasssageWebViewController alloc]init]; webVC.pushlink =pushlink; webVC.pushtitle = @"详情"; [self.navigationController pushViewController:webVC animated:YES]; } else { [self openAliBCWithLink:pushlink]; } } } -(void)openAliBCWithLink:(NSString *)linkUrl{ //535991514644 //根据商品ID //id page = [AlibcTradePageFactory itemDetailPage: @"535991514644"]; //根据链接打开页面 id page = [AlibcTradePageFactory page:linkUrl]; AlibcTradeShowParams* showParam = [[AlibcTradeShowParams alloc] init]; //app 内闭环交易 强制H5 打开 showParam.openType = AlibcOpenTypeH5; //AlibcWebViewController* myView = [[AlibcWebViewController alloc] init]; //自定义web IfishAlibcWebViewController* myView = [[IfishAlibcWebViewController alloc] init]; NSInteger ret = [[AlibcTradeSDK sharedInstance].tradeService show:self.navigationController webView:myView.webView page:page showParams:showParam taoKeParams:nil trackParam:nil tradeProcessSuccessCallback:^(AlibcTradeResult * _Nullable result) { } tradeProcessFailedCallback:^(NSError * _Nullable error) { }]; //返回1,说明h5打开,否则不应该展示页面 if (ret == 1) { self.hidesBottomBarWhenPushed = YES; [self.navigationController pushViewController:myView animated:YES]; } } #pragma mark - 刷新 加载时更多 -(void)creatReatRefreshView{ __weak typeof (self)weskSelf=self; // 下拉刷新 [weskSelf.tableView addRefreshHeaderViewWithAniViewClass:[JHRefreshAmazingAniView class] beginRefresh:^{ if (weskSelf.isRefreshing) { return ; } weskSelf.isRefreshing=YES; _page=0; NSInteger firstResult = 0; NSInteger pageSize = 10; [weskSelf addRefreshHeaderTaskWithFirst:firstResult pageSize:pageSize isRefresh:YES]; }]; //上拉加载更多 [weskSelf.tableView addRefreshFooterViewWithAniViewClass:[JHRefreshCommonAniView class] beginRefresh:^{ if (weskSelf.isLoadMore) { return ; } weskSelf.isLoadMore=YES; NSInteger pagecount =[self.total integerValue]/10+1; if (weskSelf.page