//
//  KWMPaySuccess.m
//  iCemarose
//
//  Created by HouWeiBin on 16/9/5.
//  Copyright © 2016年 kollway. All rights reserved.
//

#import "KWMPaySuccessVC.h"
#import "UIColor+SAMAdditions.h"
#import "KWMInformationVC.h"
#import "KWMShopCartData.h"
#import "UIViewController+BackButtonHandler.h"
#import "KWMOrderVC.h"

@interface KWMPaySuccessVC ()<KWMRecommendDelegate>

@end

@implementation KWMPaySuccessVC

- (void)viewDidLoad {
    [super viewDidLoad];
    self.title = @"支付成功";
   
    [self initButton];
    [self requestProductWithHandle:@"products-list-app-homepage" tags:nil valueKeyPath:@"productArray"];
    self.hotRecommendView.title = @"热卖单品";
    self.hotRecommendView.delegate = self;
}

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

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

- (void)initButton{
    self.btnGetTime.layer.masksToBounds = YES;
    //btn.layer.cornerRadius = 20/2; //圆角(圆形)
    self.btnGetTime.layer.borderColor  = [UIColor sam_colorWithHex:@"979797"].CGColor; //要设置的颜色
    self.btnGetTime.layer.borderWidth = 1; //要设置的描边宽
    self.btnStartTime.layer.masksToBounds = YES;
    self.btnStartTime.layer.borderColor  = [UIColor sam_colorWithHex:@"979797"].CGColor; //要设置的颜色
    self.btnStartTime.layer.borderWidth = 1; //要设置的描边宽
    self.btnMyOrder.layer.masksToBounds = YES;
    self.btnMyOrder.layer.borderColor  = [UIColor sam_colorWithHex:@"979797"].CGColor; //要设置的颜色
    self.btnMyOrder.layer.borderWidth = 1; //要设置的描边宽
    self.btnBackHome.layer.masksToBounds = YES;
    self.btnBackHome.layer.borderColor  = [UIColor sam_colorWithHex:@"979797"].CGColor; //要设置的颜色
    self.btnBackHome.layer.borderWidth = 1; //要设置的描边宽
}


-(void)onClickStartTime:(id)sender{
    KWMInformationVC *informationVC = (KWMInformationVC *)[KWMBaseVC findControllerBy:[KWMInformationVC kwmTag] fromStoryboard:@"Main"];
    informationVC.inforStr = NSLocalizedString(@"WhenPutGoods",@"WhenPutGoods");
    informationVC.inforTitleStr = NSLocalizedString(@"WhenPutGoodsTitle",@"WhenPutGoodsTitle");
    informationVC.titleStr = @"何时发货";
    [self.navigationController pushViewController:informationVC animated:YES];
}

-(void)onClickGetTime:(id)sender{
    KWMInformationVC *informationVC = (KWMInformationVC *)[KWMBaseVC findControllerBy:[KWMInformationVC kwmTag] fromStoryboard:@"Main"];
    informationVC.inforStr = NSLocalizedString(@"WhenPutGoods",@"WhenPutGoods");
    informationVC.inforTitleStr = NSLocalizedString(@"WhenPutGoodsTitle",@"WhenPutGoodsTitle");
    informationVC.titleStr = @"多久到货";
    [self.navigationController pushViewController:informationVC animated:YES];
}

-(void)onClickMyOrder:(id)sender{
    KWMOrderVC *orderVC = (KWMOrderVC *)[KWMBaseVC findControllerBy:[KWMOrderVC kwmTag] fromStoryboard:@"Mine"];
    orderVC.paidCheckout = self.paidCheckout;
    [self.navigationController pushViewController:orderVC animated:YES];
}

-(void)onClickBackHome:(id)sender{
    [self.navigationController popToRootViewControllerAnimated:YES];
}

-(BOOL) navigationShouldPopOnBackButton {
    [self.navigationController popToRootViewControllerAnimated:YES];

     return NO; // Ignore 'Back' button this time
}

#pragma mark KWMRecommendDelegate
-(void)kwm_gotoRecommendPage:(KWMRecommendView *)recommendView{
    [self openURLWithString:@"https://cemarose.myshopify.com/collections/products-list-app-homepage?title=热卖单品"];
}

-(void)kwm_onClickProduct:(BUYProduct *)product{
    [self openURLWithString:[NSString stringWithFormat:@"https://cemarose.myshopify.com/products/%@",product.handle]];
}

#pragma makr - api
- (void) requestProductWithHandle:(NSString *) handle tags:(NSArray *) tags valueKeyPath:(nonnull NSString *) valueKeyPath {
    NSDictionary *parameters = [KWMPPCacheUtil getProductCacheKeyDictionary:1 tags:tags handle:handle];
    BOOL useProductDataCache = [self useProductDataCache:parameters valueKeyPath:valueKeyPath page:1];
    __weak KWMPaySuccessVC *weakSelf = self;
    [self.client getCollectionByHandle:handle completion:^(BUYCollection * _Nullable collection, NSError * _Nullable error) {
        if (!error) {
            [weakSelf.client getProductsPage:1 inCollection:collection.identifier withTags:tags sortOrder:BUYCollectionSortCollectionDefault completion:^(NSArray<BUYProduct *> * _Nullable products, NSUInteger page, BOOL reachedEnd, NSError * _Nullable error) {
                if (!error) {
                    [KWMPPCacheUtil saveDataToCache:parameters urlKey:CACHE_KEY_SDK_getCollectionByHandle_getProductsPage products:products];
                    if(products){
                        NSArray *productIds;
                            @try {
                                if(self.paidCheckout && self.paidCheckout.lineItemsArray){
                                    productIds = [[self.paidCheckout.lineItems array] rx_mapWithBlock:^id(BUYLineItem* each) {
                                        NSNumber *a = each.productId ?: @(0);
                                        return a;
                                    }];
                                }
                            }
                            @catch (NSException *exception) {
                                // 捕获到的异常exception
                            }
                        self.hotRecommendView.productArray = products;
                        self.hotRecommendView.boughtProductIdArray = productIds;
                    }
                }
            }];
        }
    }];
}

-(BOOL)useProductDataCache:(NSDictionary *)cacheKeyDictionary valueKeyPath:(NSString *)valueKeyPath page:(NSUInteger)page{
    if(!kIsNetwork || page == 1){
        NSArray *productIds;
        NSArray *products = [KWMPPCacheUtil getProductDataByCache:cacheKeyDictionary urlKey:CACHE_KEY_SDK_getCollectionByHandle_getProductsPage];
        if(products && products.count > 0){
            @try {
                if(self.paidCheckout && self.paidCheckout.lineItemsArray){
                    productIds = [[self.paidCheckout.lineItems array] rx_mapWithBlock:^id(BUYLineItem* each) {
                        NSNumber *a = each.productId ?: @(0);
                        return a;
                    }];
                }
            }
            @catch (NSException *exception) {
                // 捕获到的异常exception
            }
            self.hotRecommendView.productArray = products;
            self.hotRecommendView.boughtProductIdArray = productIds;
        }else{
            return false;
        }
    }
    return !kIsNetwork;
}

@end