diff --git a/Podfile b/Podfile index 8d34483..c87deb5 100644 --- a/Podfile +++ b/Podfile @@ -16,7 +16,7 @@ pod 'TOWebViewController' #pod 'AFNetworking','~> 3.1' pod 'PPNetworkHelper' -pod 'JSONModel','~> 1.2.0' +pod 'JSONModel','~> 1.7.0' pod 'SDWebImage','~> 3.7.1' pod 'SAMCategories', '~> 0.5.1' pod 'SAMTextView', '~> 0.2.1' diff --git a/iCemarose.xcodeproj/project.pbxproj b/iCemarose.xcodeproj/project.pbxproj index e2472be..689a69c 100644 --- a/iCemarose.xcodeproj/project.pbxproj +++ b/iCemarose.xcodeproj/project.pbxproj @@ -345,6 +345,7 @@ C0F586AE1E279574001248E2 /* KWMBottomView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C0F586AD1E279574001248E2 /* KWMBottomView.xib */; }; C0FBD88E1F049D510009E375 /* KWMOrderPaid.m in Sources */ = {isa = PBXBuildFile; fileRef = C0FBD88D1F049D510009E375 /* KWMOrderPaid.m */; }; C0FC278E1D9B73B000C5CFFE /* KWMGiftCardCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C0FC278D1D9B73B000C5CFFE /* KWMGiftCardCell.m */; }; + DA4E36921F1613C70007E4D0 /* KWMHomeDataResult.m in Sources */ = {isa = PBXBuildFile; fileRef = DA4E36911F1613C70007E4D0 /* KWMHomeDataResult.m */; }; DAB6431A1F04CFE5002CD7FE /* AppDelegate+Deeplink.m in Sources */ = {isa = PBXBuildFile; fileRef = DAB643191F04CFE5002CD7FE /* AppDelegate+Deeplink.m */; }; /* End PBXBuildFile section */ @@ -959,6 +960,8 @@ C0FBD88D1F049D510009E375 /* KWMOrderPaid.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMOrderPaid.m; sourceTree = "<group>"; }; C0FC278C1D9B73B000C5CFFE /* KWMGiftCardCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMGiftCardCell.h; sourceTree = "<group>"; }; C0FC278D1D9B73B000C5CFFE /* KWMGiftCardCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMGiftCardCell.m; sourceTree = "<group>"; }; + DA4E36901F1613C70007E4D0 /* KWMHomeDataResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMHomeDataResult.h; sourceTree = "<group>"; }; + DA4E36911F1613C70007E4D0 /* KWMHomeDataResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMHomeDataResult.m; sourceTree = "<group>"; }; DAB643181F04CFE5002CD7FE /* AppDelegate+Deeplink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "AppDelegate+Deeplink.h"; sourceTree = "<group>"; }; DAB643191F04CFE5002CD7FE /* AppDelegate+Deeplink.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "AppDelegate+Deeplink.m"; sourceTree = "<group>"; }; /* End PBXFileReference section */ @@ -1909,6 +1912,8 @@ 9BE61CFA1ECD56E70031D21E /* KWMDictioaryResult.m */, 9BE61CFF1ECD71610031D21E /* KWMCartResult.h */, 9BE61D001ECD71610031D21E /* KWMCartResult.m */, + DA4E36901F1613C70007E4D0 /* KWMHomeDataResult.h */, + DA4E36911F1613C70007E4D0 /* KWMHomeDataResult.m */, ); path = Cemarose; sourceTree = "<group>"; @@ -2680,6 +2685,7 @@ 805C04381DD1FA7100ACC071 /* KWMBrandsTypeResult.m in Sources */, C034E6DA1D6AEF1B006EE129 /* KWMTextFieldUtil.m in Sources */, C0F5868D1E24F821001248E2 /* SHorizontalView.m in Sources */, + DA4E36921F1613C70007E4D0 /* KWMHomeDataResult.m in Sources */, C034E7041D6AF205006EE129 /* RTSpinKitView.m in Sources */, C0CCB3B91EEA579900BC2FB8 /* KWMFilterView.m in Sources */, C05910941E34A729002990B3 /* KWMNewGiftCardCell.m in Sources */, diff --git a/iCemarose/Class/Api/Cemarose/KWMHomeDataResult.h b/iCemarose/Class/Api/Cemarose/KWMHomeDataResult.h new file mode 100644 index 0000000..4e57818 --- /dev/null +++ b/iCemarose/Class/Api/Cemarose/KWMHomeDataResult.h @@ -0,0 +1,16 @@ +// +// KWMHomeDataResult.h +// iCemarose +// +// Created by Sanchew on 2017/7/12. +// Copyright © 2017年 kollway. All rights reserved. +// + +#import "KWMCemaroseResult.h" +#import "KWMHomeData.h" + +@interface KWMHomeDataResult : KWMCemaroseResult + +@property (nonatomic, strong) KWMHomeData *data; + +@end diff --git a/iCemarose/Class/Api/Cemarose/KWMHomeDataResult.m b/iCemarose/Class/Api/Cemarose/KWMHomeDataResult.m new file mode 100644 index 0000000..c4ae7ef --- /dev/null +++ b/iCemarose/Class/Api/Cemarose/KWMHomeDataResult.m @@ -0,0 +1,34 @@ +// +// KWMHomeDataResult.m +// iCemarose +// +// Created by Sanchew on 2017/7/12. +// Copyright © 2017年 kollway. All rights reserved. +// + +#import "KWMHomeDataResult.h" + +@implementation KWMHomeDataResult + + + +- (instancetype)initWithDictionary:(NSDictionary *)dict error:(NSError **)err { + if (self = [super init]) { + self.data = [[KWMHomeData alloc] initWithDictionary:dict error:nil]; +// NSArray *dataArray = dict[@"items"]; +// if(dataArray){ +// self.items = [self buildListData:[KWMShopCartModel class] jsonDictionary:dataArray]; +// } + } + + return self; +} + +- (instancetype)initWithDictionary:(NSDictionary *)dict modelClass:(Class)modelClass error:(NSError *__autoreleasing *)err { + if (self = [self initWithDictionary:dict error:err]) { + } + return self; +} + + +@end diff --git a/iCemarose/Class/Api/KWMAPIManager.h b/iCemarose/Class/Api/KWMAPIManager.h index a76fafa..8bef273 100644 --- a/iCemarose/Class/Api/KWMAPIManager.h +++ b/iCemarose/Class/Api/KWMAPIManager.h @@ -35,7 +35,7 @@ #import "KWMWechatPayData.h" #import "KWMOrderPaid.h" #import "KWMWish.h" - +#import "KWMHomeDataResult.h" @@ -161,6 +161,17 @@ failure:(void(^)(NSURLSessionDataTask *task,NSError *error))failure; /** + * 首页板块数据 + * + * @param success <#success description#> + * @param failure <#failure description#> + * + * @return <#return value description#> + */ +- (NSURLSessionDataTask *) getHomeDataWithSuccess:(void(^)(NSURLSessionDataTask *task,KWMHomeDataResult *result))success + failure:(void(^)(NSURLSessionDataTask *task,NSError *error))failure; + +/** * 商品——新品API * @return NSURLSessionDataTask */ diff --git a/iCemarose/Class/Api/KWMAPIManager.m b/iCemarose/Class/Api/KWMAPIManager.m index 573dcf7..50efce0 100644 --- a/iCemarose/Class/Api/KWMAPIManager.m +++ b/iCemarose/Class/Api/KWMAPIManager.m @@ -24,6 +24,8 @@ #import <SAMKeychain/SAMKeychain.h> #import "KWMUserModel.h" #import "KWMHttpUtil.h" +#import "KWMHomeDataResult.h" +#import <PPNetworkHelper/PPNetworkHelper.h> @@ -354,6 +356,7 @@ static NSString *const passwordTest = @"9e84aae218c57cdf0762763c4cf5a651"; return task; } + - (NSURLSessionDataTask *)startSessionTask:(KWMHTTPMethod)httpMethod apiPath:(NSString *)apiPath parameters:(NSDictionary *)parameters @@ -679,6 +682,11 @@ static NSString *const passwordTest = @"9e84aae218c57cdf0762763c4cf5a651"; failure:failure]; } +- (NSURLSessionDataTask *)getHomeDataWithSuccess:(void (^)(NSURLSessionDataTask *, KWMHomeDataResult *))success failure:(void (^)(NSURLSessionDataTask *, NSError *))failure { + NSString *apiPath = @"https://ogbgohpla.qnssl.com/App.Home.json?1"; + return [self startSessionTask:KWMHTTPMethodGET apiPath:apiPath parameters:nil result:[KWMHomeDataResult class] model:nil success:success failure:failure]; +} + /** diff --git a/iCemarose/Class/AppDelegate+Deeplink.m b/iCemarose/Class/AppDelegate+Deeplink.m index 2b20f5b..3eb3d46 100644 --- a/iCemarose/Class/AppDelegate+Deeplink.m +++ b/iCemarose/Class/AppDelegate+Deeplink.m @@ -16,10 +16,11 @@ - (void)registerRouter { JLRoutes *routes = [JLRoutes routesForScheme:@"cemarose"]; - [routes addRoute:@"/collections/*" handler:^BOOL(NSDictionary<NSString *,id> * _Nonnull parameters) { - NSArray *tags = parameters[JLRouteWildcardComponentsKey]; + [routes addRoute:@"/collections/:handle/*" handler:^BOOL(NSDictionary<NSString *,id> * _Nonnull parameters) { + NSArray *tags = [parameters[JLRouteWildcardComponentsKey] componentsSeparatedByString:@"+"]; NSLog(@"trace tags %@",[tags componentsJoinedByString:@","]); KWMSelectedGoodsVC * selectedGoodsVC = (KWMSelectedGoodsVC *)[KWMBaseVC findControllerBy:[KWMSelectedGoodsVC kwmTag] fromStoryboard:@"New"]; + selectedGoodsVC.handle = parameters[@"handle"]; selectedGoodsVC.ctags = tags; [[AppDelegate mainViewController].selectedViewController pushViewController:selectedGoodsVC animated:YES]; return YES; diff --git a/iCemarose/Class/Model/KWMAdvertisement.h b/iCemarose/Class/Model/KWMAdvertisement.h index f9eb8ca..5e5d98f 100644 --- a/iCemarose/Class/Model/KWMAdvertisement.h +++ b/iCemarose/Class/Model/KWMAdvertisement.h @@ -8,7 +8,7 @@ #import "KWMBaseModel.h" -@interface KWMAdvertisement : KWMBaseModel +@interface KWMAdvertisement :JSONModel //标题 @property (nonatomic) NSString *title; diff --git a/iCemarose/Class/Model/KWMHomeData.h b/iCemarose/Class/Model/KWMHomeData.h index 38030fc..5f1dc97 100644 --- a/iCemarose/Class/Model/KWMHomeData.h +++ b/iCemarose/Class/Model/KWMHomeData.h @@ -10,12 +10,14 @@ #import "KWMAdvertisement.h" #import "KWMHotSales.h" -@interface KWMHomeData : KWMBaseModel +@protocol KWMAdvertisement; -@property (nonatomic) NSArray *adBanner; +@interface KWMHomeData : JSONModel -@property (nonatomic) KWMAdvertisement *clothingSets; +@property (nonatomic) NSArray <KWMAdvertisement> *ad_banner; -@property (nonatomic) KWMHotSales *hotSales; +@property (nonatomic) KWMAdvertisement *clothing_sets; + +@property (nonatomic) KWMHotSales *hot_sales; @end diff --git a/iCemarose/Class/Model/KWMHotSales.h b/iCemarose/Class/Model/KWMHotSales.h index 6c460a0..c90cfb6 100644 --- a/iCemarose/Class/Model/KWMHotSales.h +++ b/iCemarose/Class/Model/KWMHotSales.h @@ -8,9 +8,9 @@ #import "KWMBaseModel.h" -@interface KWMHotSales : KWMBaseModel +@interface KWMHotSales :JSONModel //大图商品数量 -@property (nonatomic) NSNumber *singleShowCount; +@property (nonatomic) NSNumber *single_show_count; @end diff --git a/iCemarose/Class/UI/NewHome/Cell/KWMMenuHeader.xib b/iCemarose/Class/UI/NewHome/Cell/KWMMenuHeader.xib index 15b7f80..5b90cd3 100644 --- a/iCemarose/Class/UI/NewHome/Cell/KWMMenuHeader.xib +++ b/iCemarose/Class/UI/NewHome/Cell/KWMMenuHeader.xib @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12121" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12120" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> <device id="retina4_7" orientation="portrait"> <adaptation id="fullscreen"/> </device> <dependencies> <deployment identifier="iOS"/> - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12088"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <objects> @@ -57,7 +57,7 @@ <constraint firstAttribute="height" constant="40" id="m2N-Ea-82N"/> </constraints> </imageView> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="火爆热卖" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3sg-P6-odK"> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="发现新鲜" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3sg-P6-odK"> <rect key="frame" x="20.5" y="50" width="48" height="17"/> <fontDescription key="fontDescription" name="PingFangSC-Regular" family="PingFang SC" pointSize="12"/> <color key="textColor" red="0.13725490200000001" green="0.14117647059999999" blue="0.16078431369999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> @@ -107,7 +107,7 @@ <constraint firstAttribute="width" constant="40" id="n6V-12-EnZ"/> </constraints> </imageView> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="直邮说明" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Izf-6L-av5"> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="服务说明" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Izf-6L-av5"> <rect key="frame" x="20.5" y="50" width="48" height="17"/> <fontDescription key="fontDescription" name="PingFangSC-Regular" family="PingFang SC" pointSize="12"/> <color key="textColor" red="0.13725490200000001" green="0.14117647059999999" blue="0.16078431369999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> diff --git a/iCemarose/Class/UI/NewHome/KWMNewHomeVC.m b/iCemarose/Class/UI/NewHome/KWMNewHomeVC.m index 4783f99..0359101 100644 --- a/iCemarose/Class/UI/NewHome/KWMNewHomeVC.m +++ b/iCemarose/Class/UI/NewHome/KWMNewHomeVC.m @@ -12,6 +12,8 @@ #import "KWMSearchBar.h" #import "KWMHomeData.h" #import "KWMShoppingCart.h" +#import <RegexKitLite/RegexKitLite.h> +#import <RXCollections/RXCollection.h> typedef enum{ @@ -46,7 +48,9 @@ typedef enum{ @property(nonatomic) KWMHomeData *homeData; -@property(nonatomic) NSArray<BUYProduct *>* productArray; +@property(nonatomic) NSMutableArray<BUYProduct *>* productArray; + +@property(nonatomic) NSMutableDictionary *dataMapping; @end @@ -55,7 +59,9 @@ typedef enum{ - (void)viewDidLoad { [super viewDidLoad]; [self initView]; - [self requestProduct:@""]; +// [self requestProduct:@""]; + [self loadHomeData]; + } - (void)viewWillAppear:(BOOL)animated{ @@ -84,52 +90,32 @@ typedef enum{ } } -- (void)initTestData{ - KWMHomeData *homeData = [KWMHomeData new]; - - KWMHotSales *hotSales = [KWMHotSales new]; - hotSales.singleShowCount = @(3); - - KWMAdvertisement *clothingSets = [KWMAdvertisement new]; - clothingSets.image = @"http://o42yton8r.qnssl.com/s/files/1/1089/5284/collections/b_8d773a6f-6a70-4d15-a280-e4dd13a7a744_large.jpg?v=1464083899"; - clothingSets.url = @"http://www.baidu.com"; - clothingSets.title = @"boy"; - - NSMutableArray *adBanner = [NSMutableArray array]; - [adBanner addObject:[clothingSets copy]]; - [adBanner addObject:[clothingSets copy]]; - [adBanner addObject:[clothingSets copy]]; - - homeData.hotSales = hotSales; - homeData.clothingSets = clothingSets; - homeData.adBanner = adBanner; - - self.homeData = homeData; - [self initData]; -} - -- (void)initData{ - if(self.homeData){ - self.adHeader.adArray = self.homeData.adBanner; - self.recommendHeader.productArray = self.productArray; - self.clothingSetsHeader.productArray = self.productArray; - self.clothingSetsHeader.headerImage = self.homeData.clothingSets.image; - - NSMutableArray *testArray = [NSMutableArray array]; - [testArray addObject:[self.productArray objectAtIndex:0]]; - [testArray addObject:[self.productArray objectAtIndex:1]]; - [testArray addObject:[self.productArray objectAtIndex:2]]; - [testArray addObject:[self.productArray objectAtIndex:4]]; - self.hotSalesHeader.singleShowArray = testArray; - self.hotSalesHeader.bannerArray = testArray; - - [self.cvHome reloadData]; - } - -} +//- (void)initTestData{ +// KWMHomeData *homeData = [KWMHomeData new]; +// +// KWMHotSales *hotSales = [KWMHotSales new]; +// hotSales.singleShowCount = @(3); +// +// KWMAdvertisement *clothingSets = [KWMAdvertisement new]; +// clothingSets.image = @"http://o42yton8r.qnssl.com/s/files/1/1089/5284/collections/b_8d773a6f-6a70-4d15-a280-e4dd13a7a744_large.jpg?v=1464083899"; +// clothingSets.url = @"http://www.baidu.com"; +// clothingSets.title = @"boy"; +// +// NSMutableArray *adBanner = [NSMutableArray array]; +// [adBanner addObject:[clothingSets copy]]; +// [adBanner addObject:[clothingSets copy]]; +// [adBanner addObject:[clothingSets copy]]; +// +// homeData.hotSales = hotSales; +// homeData.clothingSets = clothingSets; +// homeData.adBanner = adBanner; +// +// self.homeData = homeData; +// [self initData]; +//} - (void)initView{ - self.title = @"首页"; +// self.title = @"首页"; self.adHeader = [[KWMAdHeader alloc]initWithFrame:CGRectMake(0, 0, UI_SCREEN_WIDTH, 275)]; self.menuHeader = [[KWMMenuHeader alloc]initWithFrame:CGRectMake(0, 0, UI_SCREEN_WIDTH, 100)]; self.recommendHeader = [[KWMRecommendHeader alloc]initWithFrame:CGRectMake(0, 0, UI_SCREEN_WIDTH, 230)]; @@ -304,28 +290,95 @@ typedef enum{ } #pragma makr - api -- (void)requestProduct:(NSString *)tag{ - NSMutableArray *tags = nil; - if(tag){ - tags = [NSMutableArray array]; - [tags addObject:tag]; - } - - __weak KWMNewHomeVC *weakSelf = self; +//- (void)requestProduct:(NSString *)tag{ +// NSMutableArray *tags = nil; +// if(tag){ +// tags = [NSMutableArray array]; +// [tags addObject:tag]; +// } +// +// __weak KWMNewHomeVC *weakSelf = self; +// [self showLoading]; +// [self.client getProductsPage:1 inCollection:@(Collection_All_ID) withTags:tags sortOrder:BUYCollectionSortBestSelling completion:^(NSArray *products,NSUInteger page, BOOL reachedEnd, NSError *error){ +// [weakSelf hideLoading]; +// if(error){ +// [weakSelf showError:error]; +// } +// else if(products && products.count>0){ +// weakSelf.productArray = products; +// [weakSelf.cvHome reloadData]; +//// [weakSelf initTestData]; +// } +// }]; +//} + +- (void) requestProductWithHandle:(NSString *) handle tags:(NSArray *) tags valueKeyPath:(NSString *) valueKeyPath { [self showLoading]; - [self.client getProductsPage:1 inCollection:@(Collection_All_ID) withTags:tags sortOrder:BUYCollectionSortBestSelling completion:^(NSArray *products,NSUInteger page, BOOL reachedEnd, NSError *error){ - [weakSelf hideLoading]; - if(error){ - [weakSelf showError:error]; - } - else if(products && products.count>0){ - weakSelf.productArray = products; - [weakSelf.cvHome reloadData]; - [weakSelf initTestData]; + [self.client getCollectionByHandle:handle completion:^(BUYCollection * _Nullable collection, NSError * _Nullable error) { + if (!error) { + [self.client getProductsPage:1 inCollection:collection.identifier withTags:tags sortOrder:BUYCollectionSortCollectionDefault completion:^(NSArray<BUYProduct *> * _Nullable products, NSUInteger page, BOOL reachedEnd, NSError * _Nullable error) { + [self hideLoading]; + if (!error) { + [self setValue:products forKeyPath:valueKeyPath]; + [self.cvHome reloadData]; + }else{ + [self showError:error]; + } + }]; + }else{ + [self hideLoading]; + [self showError:error]; } - }]; + }]; } +- (void) loadHomeData { + [self requestProductWithHandle:@"hot-sell-app" tags:nil valueKeyPath:@"recommendHeader.productArray"]; + [self.api getHomeDataWithSuccess:^(NSURLSessionDataTask *task, KWMHomeDataResult *result) { + self.homeData = result.data; + [self.cvHome reloadData]; + } failure:^(NSURLSessionDataTask *task, NSError *error) { + [self showError:error]; + }]; +} +- (void)setHomeData:(KWMHomeData *)homeData { + _homeData = homeData; + self.adHeader.adArray = self.homeData.ad_banner; +// self.recommendHeader.productArray = self.productArray; +// self.clothingSetsHeader.productArray = self.productArray; +// self.homeData.hot_sales.single_show_count = @(3); + self.clothingSetsHeader.headerImage = self.homeData.clothing_sets.image; +// self.hotSalesHeader.singleShowArray = testArray; +// self.hotSalesHeader.bannerArray = testArray; + NSArray *clothingParam = [self.homeData.clothing_sets.url arrayOfCaptureComponentsMatchedByRegex:@"collections\\/(.*?)\\/(.*)"]; + if (clothingParam.count) { + clothingParam = clothingParam.firstObject; + NSString *handle = clothingParam.count > 1 ? clothingParam[1] : nil; + NSArray *tags = clothingParam.count > 2 ? [clothingParam[2] componentsSeparatedByString:@"+"] : nil; + if (handle) { + [self requestProductWithHandle:handle tags:tags valueKeyPath:@"clothingSetsHeader.productArray"]; + } + } + [self requestProductWithHandle:@"products-list-app-homepage" tags:nil valueKeyPath:@"productArray"]; + NSLog(@"path:%@",clothingParam); +} + +- (void)setProductArray:(NSArray<BUYProduct *> *)productArray { + if (!_productArray) { + NSInteger ssize = self.homeData.hot_sales.single_show_count.integerValue; + NSInteger count = productArray.count; + self.hotSalesHeader.singleShowArray = count <= ssize ? productArray : [productArray subarrayWithRange:NSMakeRange(0, ssize)]; + _productArray = [[NSMutableArray alloc] init]; +// [_productArray addObjectsFromArray:[productArray subarrayWithRange:NSMakeRange(self.homeData.hot_sales.single_show_count.integerValue, 99)]]; + if (count > ssize) { + [_productArray addObjectsFromArray:[productArray subarrayWithRange:NSMakeRange(ssize, count - ssize)]]; + } + }else{ + [_productArray addObjectsFromArray:productArray]; + } +// _productArray = productArray; + +} @end diff --git a/iCemarose/Class/UI/Product/KWMSelectedGoodsVC.h b/iCemarose/Class/UI/Product/KWMSelectedGoodsVC.h index ce1f415..f060961 100644 --- a/iCemarose/Class/UI/Product/KWMSelectedGoodsVC.h +++ b/iCemarose/Class/UI/Product/KWMSelectedGoodsVC.h @@ -33,6 +33,10 @@ @property (nonatomic) BOOL isLoading; /** + * deeplink handle + */ +@property (strong, nonatomic) NSString *handle; +/** * deeplink tags */ @property (strong, nonatomic) NSArray<NSString *>*ctags; diff --git a/iCemarose/Class/UI/Product/KWMSelectedGoodsVC.m b/iCemarose/Class/UI/Product/KWMSelectedGoodsVC.m index 24152be..f8e16cb 100644 --- a/iCemarose/Class/UI/Product/KWMSelectedGoodsVC.m +++ b/iCemarose/Class/UI/Product/KWMSelectedGoodsVC.m @@ -52,8 +52,8 @@ static NSString *idStr = @"KWMBrandCaramelCell"; self.hasNextPage = NO; self.collectionSort = BUYCollectionSortCreatedDescending; - if (self.ctags) { - self.title = self.ctags.firstObject.capitalizedString; + if (self.handle) { + self.title = self.handle.capitalizedString; }else if(self.productType != nil){ //初始化双行标题栏 NSString *mTitle; @@ -266,8 +266,8 @@ static NSString *idStr = @"KWMBrandCaramelCell"; NSLog(@"Error fetching products: %@", error); } }; - if (self.ctags) { - [self.client getCollectionByHandle:self.ctags.lastObject completion:^(BUYCollection * _Nullable collection, NSError * _Nullable error) { + if (self.handle) { + [self.client getCollectionByHandle:self.handle completion:^(BUYCollection * _Nullable collection, NSError * _Nullable error) { [self.client getProductsPage:tagetPage inCollection:collection.identifier withTags:self.ctags sortOrder:self.filterView.selectedSort completion:completion]; }]; // [self.client getProductsPage:tagetPage inCollection:nil withTags:self.ctags sortOrder:self.filterView.selectedSort completion:completion];