//
//  KWMSelectedGoodsVC.m
//  iCemarose
//
//  Created by 陈荣科 on 16/8/31.
//  Copyright © 2016年 kollway. All rights reserved.
//

#import "KWMSelectedGoodsVC.h"
#import "KWMProductDetailVC.h"
#import "KWMBeforePayVC.h"
#import "KWMMineTitleView.h"
#import "KWMStringUtil.h"
#import "KWMImageBlurUtil.h"

@interface KWMSelectedGoodsVC ()
@end

@implementation KWMSelectedGoodsVC{
    UIButton *rightButton;
    BOOL isSelect;
    UIView *vStopTap;
    NSInteger openPosition;//标记展开标尺的pruduct下标
}

+(NSString *)kwmTag{
    return @"KWMSelectedGoodsVC";
}

- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
//    [_vTitle removeFromSuperview];
}

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:NO];
}


static NSString *idStr = @"KWMBrandCaramelCell";
- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self initView];
    [self reLoadData];
}

- (void)initView{
    self.collectionSort = BUYCollectionSortCreatedDescending;
    if(self.productType != nil){
        //初始化双行标题栏
        NSString *mTitle;
        if(self.tagType == 0){
            mTitle = @"婴儿";
        }else if(self.tagType == 1){
            mTitle = @"女孩";
        }else if(self.tagType == 2){
            mTitle = @"男孩";
        }else if(self.tagType == 3){
            mTitle = @"鞋子";
        }
        KWMDoubleTitleView *doubleTitleView = [[KWMDoubleTitleView alloc] initWithFrame:CGRectMake(0, 0, 200, 40)];
        doubleTitleView.lbTitle.text = mTitle;
        doubleTitleView.lbSecondTitle.text = self.productType.value;
        self.navigationItem.titleView=doubleTitleView;
    }
    openPosition = -1;
    self.automaticallyAdjustsScrollViewInsets = NO;
    
    isSelect = NO;
    vStopTap = [[UIView alloc] initWithFrame:CGRectMake(0, 20, UI_SCREEN_WIDTH, 44)];
    vStopTap.backgroundColor = [UIColor clearColor];
    _vHeard.backgroundColor = [UIColor sam_colorWithHex:@"F4F5F7"];
    [self initCacheData];
}

-(void)initCacheData{
    NSNumber *collectionId;
    NSArray *tags;
    if(self.collection!=nil){
        collectionId = self.collection.identifier;
    }
    if(self.productType!=nil){
        if(![KWMStringUtil isEmpty:self.productType.collectionId]){
            NSInteger num = [self.productType.collectionId integerValue];
            collectionId = @(num);
        }
        NSString *tag;
        if(self.tagType == 0){
            tag = @"baby";
        }else if(self.tagType == 1){
            tag = @"girls";
        }else if(self.tagType == 2){
            tag = @"boys";
        }else if(self.tagType == 3){
            tag = @"shoes";
        }
        tags = [NSArray arrayWithObjects:tag, nil];
    }

    NSArray *products =  [self.userDao getCollectionCache:collectionId tags:tags];
    if(products && products.count>0){
        [self appendDataList:products setPage:1];
        self.currentPage = 0;
    }
}

-(UITableView *)targetTableView{
    return self.tbvSelectedGoods;
}

-(void)loadData{
    [self requesProductList:self.collectionSort];
}

-(void)reLoadData{
    self.currentPage = 0;
    [self requesProductList:self.collectionSort];
}


- (void)setAnimatedWith:(CGFloat)moveHeight{
    [UIImageView animateWithDuration:1.0 animations:^{
        self.vGoodsStyle.frame = CGRectMake(0, moveHeight, UI_SCREEN_WIDTH, 340);
    } completion:^(BOOL finished) {
        [vStopTap removeFromSuperview];
        if (moveHeight>0) {
            self.vBackground.hidden = NO;
        }else{
            self.vBackground.hidden = YES;
        }
    }];
}

#pragma mark -- KWMBrandCaramelCellDelegate

//点击左边商品回调
- (void)kwm_onClickLeftIamge:(KWMBrandCaramelCell *)brandCell{
    KWMProductDetailVC *productDetailVC = (KWMProductDetailVC*)[KWMBaseVC findControllerBy:[KWMProductDetailVC kwmTag] fromStoryboard:@"New"];
    productDetailVC.product = brandCell.leftProduct;
    [self.navigationController pushViewController:productDetailVC animated:YES];
}

//点击右边商品回调
- (void)kwm_onClickRightIamge:(KWMBrandCaramelCell *)brandCell{
    KWMProductDetailVC *productDetailVC = (KWMProductDetailVC*)[KWMBaseVC findControllerBy:[KWMProductDetailVC kwmTag] fromStoryboard:@"New"];
    productDetailVC.product = brandCell.rightProduct;
    [self.navigationController pushViewController:productDetailVC animated:YES];
}

- (void)kwm_openRule:(BUYProduct *)product Or:(KWMDataProduct *)dataProduct And:(KWMBrandCaramelCell *)brandCell{
    
    if (product == nil) {
        return;
    }
    [self.dataList enumerateObjectsUsingBlock:^(BUYProduct *obj, NSUInteger idx, BOOL * _Nonnull stop) {
        if ([obj isEqual:product]) {
            if (openPosition != idx) {
                openPosition = idx;
                [self.tbvSelectedGoods reloadData];
            }
            *stop = YES;
        }
    }];
    
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.05 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        if (openPosition % 2 ) {
            [brandCell openRule:NO];
        }else{
            [brandCell openRule:YES];
        }
        
    });
}

#pragma mark -- UITableViewDelegateU
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    if(self.dataList == nil){
        return 0;
    }
    NSInteger count = self.dataList.count;
    if(count%2 == 0){
        return count/2;
    }else{
        return count/2+1;
    }
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    
    KWMBrandCaramelCell *brandCaramelCell = [tableView dequeueReusableCellWithIdentifier:idStr];
    if(!brandCaramelCell){
        [tableView registerNib:[UINib nibWithNibName:idStr bundle:nil] forCellReuseIdentifier:idStr];
        brandCaramelCell = [tableView dequeueReusableCellWithIdentifier:idStr];
    }
    brandCaramelCell.delegate = self;
    brandCaramelCell.selectionStyle = UITableViewCellSelectionStyleNone;
    NSInteger position = indexPath.row * 2;
    if(self.dataList!=nil && self.dataList.count>0){
        BUYProduct *leftProduct = [self.dataList objectAtIndex:position];
        BUYProduct *rightProduct = self.dataList.count>(position+1)?[self.dataList objectAtIndex:(position+1)]:nil;
        [brandCaramelCell setData:leftProduct rightProduct:rightProduct];
    }    
    return brandCaramelCell;
}

#pragma mark -- ITableViewDataSource
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return (UI_SCREEN_WIDTH/2 - 20 + 64);
}

- (void)requesProductList:(BUYCollectionSort)collectionSort{
    if(!self.hasNextPage){
        [self showToast:NSLocalizedString(@"WarnLastPage", @"WarnLastPage")];
        [self hideLoading];
        return;
    }
    NSNumber *collectionId;
    NSArray *tags;
    if([TestModel isEqualToString:@"YES"]){
        //测试
        self.collection = [[BUYCollection alloc] init];
        self.collection.identifier = @(293330499);
    }
    if(self.collection!=nil){
        collectionId = self.collection.identifier;
    }
    if(self.productType!=nil){
        if(![KWMStringUtil isEmpty:self.productType.collectionId]){
            NSInteger num = [self.productType.collectionId integerValue];
            collectionId = @(num);
        }
        NSString *tag;
        if(self.tagType == 0){
            tag = @"baby";
        }else if(self.tagType == 1){
            tag = @"girls";
        }else if(self.tagType == 2){
            tag = @"boys";
        }else if(self.tagType == 3){
            tag = @"shoes";
        }
        tags = [NSArray arrayWithObjects:tag, nil];
    }
    
    if(collectionId == nil){
        return;
    }
    
    [self showLoading];
    self.isLoading = YES;
    __weak KWMSelectedGoodsVC *weakSelf = self;
    NSInteger tagetPage = self.currentPage.integerValue + 1;
    
    
    [self.client getProductsPage:tagetPage inCollection:collectionId withTags:tags sortOrder:collectionSort completion:^(NSArray *products,NSUInteger page, BOOL reachedEnd, NSError *error){
        [weakSelf hideLoading];
        
        if(tagetPage == 1){
            [weakSelf.userDao saveCollectionCache:products collectionId:collectionId tags:tags];
        }
        
        weakSelf.isLoading = NO;
        if (error == nil && products) {
            weakSelf.hasNextPage = !reachedEnd;
            [weakSelf appendDataList:products setPage:page];
        }
        else {
            [self showError:error];
            NSLog(@"Error fetching products: %@", error);
        }
    }];
}


@end