ifish/Ifish/controllers/IfishTabControllers/设备/Informations/ViewControlller/IfishInformationViewControl...

422 lines
14 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// 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 <AlibcTradeSDK/AlibcTradeSDK.h>
#import "IfishAlibcWebViewController.h"
@interface IfishInformationViewController ()<UITableViewDelegate,UITableViewDataSource>
{
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<AlibcTradePage> page = [AlibcTradePageFactory itemDetailPage: @"535991514644"];
//根据链接打开页面
id<AlibcTradePage> 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<pagecount-1) {
weskSelf.page++;
NSInteger first=(NSInteger)weskSelf.page*10;
NSInteger pageSize = 10;
[weskSelf addRefreshFooterTaskWithFirst:first pageSize:pageSize isRefres:YES];
}else{
[weskSelf endRefreshing];
[weskSelf.view makeToast:@"已无更多数据"];
}
}];
}
-(void)endRefreshing{
if (self.isRefreshing) {
self.isRefreshing=NO;
[self.tableView headerEndRefreshingWithResult:JHRefreshResultNone];
}
if (self.isLoadMore) {
self.isLoadMore=NO;
[self.tableView footerEndRefreshing];
}
}
#pragma mark -刷新
-(void)addRefreshHeaderTaskWithFirst:(NSInteger)firstResult pageSize:(NSInteger)pageSize isRefresh:(BOOL)isRefresh{
[self loadDataWith:firstResult pageSize:pageSize isRefres:isRefresh];
}
#pragma mark -加载更多
-(void)addRefreshFooterTaskWithFirst:(NSInteger)firstResult pageSize:(NSInteger)pageSize isRefres:(BOOL)isRefresh
{
[self loadDataWith:firstResult pageSize:pageSize isRefres:isRefresh];
}
-(void)loadDataWith:(NSInteger)firstResult pageSize:(NSInteger)pageSize isRefres:(BOOL)isRefresh
{
__weak typeof (self)weakSelf = self;
NSString *userId= [dataContorl dataControlGetUserIdInfo];
[AFHttpTool ifishGetInformations:firstResult pageSize:pageSize userId:userId success:^(id response) {
NSDictionary *reDic=[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil];
NSString *result=reDic[@"result"];
_total = reDic[@"total"];
if ([result isEqualToString:@"100"]) {
NSArray *dataarr =reDic[@"data"];
if (self.isRefreshing&&isRefresh) {
[_listDataArr removeAllObjects];
}
for (NSDictionary *dic in dataarr) {
IfishInformations *info =[[IfishInformations alloc] initWithDict:dic];
[_listDataArr addObject:info];
//[[IfishDatabaseManager sharedManager] insertIfishInformations:model];
}
NSIndexSet *asset = [NSIndexSet indexSetWithIndex:1];
[weakSelf.tableView reloadSections:asset withRowAnimation:UITableViewRowAnimationNone];
}
[weakSelf endRefreshing];
} failure:^(NSError *err) {
[weakSelf endRefreshing];
}];
}
#pragma mark - 增加点击数
-(void)addClicknumber:(int)infoId{
[AFHttpTool ifishAdditionClickNum:infoId success:^(id response) {
NSDictionary *reDic=[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil];
NSString *result=reDic[@"result"];
if ([result isEqualToString:@"100"]) {
//NSDictionary *dict = reDic[@"data"];
//int clickNum = [[dict objectForKey:@"clickNum"] intValue];
//int infoId = [[dict objectForKey:@"infoId"] intValue];
}
} failure:^(NSError *err) {
}];
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end