// // KWMPPCacheUtil.m // iCemarose // // Created by HouWeiBin on 2017/11/14. // Copyright © 2017年 kollway. All rights reserved. // #import "KWMPPCacheUtil.h" @implementation KWMPPCacheUtil #pragma mark -cache //这个key用的地方比较多,所以抽在这里了 + (NSDictionary *)getProductPageCacheKey:(NSUInteger)page pageSize:(NSUInteger)pageSize sortOrder:(BUYCollectionSort)sortOrder tags:(nullable NSArray <NSString *> *)tags inCollection:(nullable NSNumber *)collectionId{ NSMutableDictionary *params = @{ @"limit" : @(pageSize), @"page" : @(page), @"sort_by" : [BUYCollection sortOrderParameterForCollectionSort:sortOrder] }.mutableCopy; if (tags) { params[@"tag"] = [tags componentsJoinedByString:@","]; } if (collectionId) { params[@"collection_id"] = collectionId; } return params; } //初始化缓存parameters key + (NSDictionary *)getProductCacheKeyDictionary:(NSUInteger)page tags:(nullable NSArray <NSString *> *)tags handle:(nullable NSString *)handle{ NSMutableDictionary *params = @{ // @"limit" : @(self.client.pageSize), @"page" : @(page) }.mutableCopy; if (tags) { params[@"tag"] = [tags componentsJoinedByString:@","]; } if (handle) { params[@"handle"] = handle; } return params; } + (void)saveDataToCache:(NSDictionary *)cacheKeyDictionary urlKey:(NSString *)urlKey products:(NSArray *)products{ NSMutableArray *dictArray = [NSMutableArray array]; if(products){ for(BUYProduct *product in products){ NSDictionary *productDict = product.JSONDictionary; if(productDict){ [dictArray addObject:productDict]; } } } NSDictionary *saveDict = [[NSDictionary alloc] initWithObjectsAndKeys:dictArray, @"array",nil]; [PPNetworkCache setHttpCache:saveDict URL:urlKey parameters:cacheKeyDictionary]; } + (NSArray *)getProductDataByCache:(NSDictionary *)cacheKeyDictionary urlKey:(NSString *)urlKey{ NSDictionary *cacheDictionary = [PPNetworkCache httpCacheForURL:urlKey parameters:cacheKeyDictionary]; NSMutableArray *products = [NSMutableArray array]; if(cacheDictionary && [cacheDictionary objectForKey:@"array"]){ NSArray *dictArray = [cacheDictionary objectForKey:@"array"]; for(NSDictionary *dict in dictArray){ if(dict){ BUYProduct *product = (BUYProduct *)[[BUYModelManager modelManager] buy_objectWithEntityName:[BUYProduct entityName] JSONDictionary:dict]; [products addObject:product]; } } } return products; } +(void)saveDataToCache:(NSDictionary *)cacheKeyDictionary urlKey:(NSString *)urlKey homeData:(KWMHomeData *)homeData{ NSDictionary *saveDict = [[NSDictionary alloc]initWithObjectsAndKeys:homeData,@"homeData", nil]; [PPNetworkCache setHttpCache:saveDict URL:urlKey parameters:cacheKeyDictionary]; } +(KWMHomeData *)getHomeDataByCache:(NSDictionary *)cacheKeyDictionary urlKey:(NSString *)urlKey{ NSDictionary *cacheDictionary = [PPNetworkCache httpCacheForURL:urlKey parameters:cacheKeyDictionary]; if(cacheDictionary && [cacheDictionary objectForKey:@"homeData"]){ KWMHomeData *homeData = (KWMHomeData *)[cacheDictionary objectForKey:@"homeData"]; return homeData; }else{ return nil; } } +(void)saveDataToCache:(NSDictionary *)cacheKeyDictionary urlKey:(NSString *)urlKey collection:(BUYCollection *)collection{ // if(collection && collection.JSONDictionary){ //这里会崩溃,因为collection的image(BuyImageLink里又有一个Collection,获取其dictionary会出现无限递归的问题) // NSDictionary *saveDict = collection.JSONDictionary; // [PPNetworkCache setHttpCache:saveDict URL:urlKey parameters:cacheKeyDictionary]; // } if(collection && collection.identifier){ NSMutableDictionary *collectionData = @{@"identifier":collection.identifier.stringValue, @"description":collection.htmlDescription, }.mutableCopy;; if (collection.image && collection.image.sourceURL) { NSString *imageString = collection.image.sourceURL.absoluteString; collectionData[@"image"] = imageString; } if(collection.htmlDescription){ collectionData[@"description"] = collection.htmlDescription; } [PPNetworkCache setHttpCache:collectionData URL:urlKey parameters:cacheKeyDictionary]; } } +(BUYCollection *)getCollectionByCache:(NSDictionary *)cacheKeyDictionary urlKey:(NSString *)urlKey{ NSDictionary *cacheDictionary = [PPNetworkCache httpCacheForURL:urlKey parameters:cacheKeyDictionary]; if(cacheDictionary){ // BUYCollection *collection = (BUYCollection *)[[BUYModelManager modelManager] buy_objectWithEntityName:[BUYCollection entityName] JSONDictionary:cacheDictionary]; // return collection; BUYCollection *collection = [[BUYCollection alloc]init]; if(cacheDictionary[@"image"]){ collection.image = [[BUYImageLink alloc]init]; NSString *imageString = cacheDictionary[@"image"]; collection.image.sourceURL = [[NSURL alloc]initWithString:imageString]; } if(cacheDictionary[@"description"]){ collection.htmlDescription = cacheDictionary[@"description"]; }else{ collection.htmlDescription = @""; } NSString *idString = cacheDictionary[@"identifier"]; collection.identifier = @([idString integerValue]); return collection; }else{ return nil; } } @end