123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- //
- // FKProDetailRequest.m
- // FirstLink
- //
- // Created by jack on 16/8/17.
- // Copyright © 2016年 FirstLink. All rights reserved.
- //
- #import "FKProDetailRequest.h"
- #import "FKBrandSubscribeRequest.h"
- #import "NSArray+Extra.h"
- @implementation FKProDetailRequest
- + (void)requestWithType:(kProductReqType)type
- info:(NSDictionary *)info
- delegate:(id <FLNetworkDelegate>)delegate{
-
- NSString *itemJsonString = [self jsonStringForRequestType:type info:info];
- NSDictionary *para = [self getCommonParaWithType:type itemJson:itemJsonString];
- NSString *urlString = [self urlStringForRequestType:type];
-
- NSString *refer = info[REFER_KEY];
- if (refer.length > 0) {
- [para setValue:refer forKey:REFER_KEY];
- }
-
- [[FLDataCenter sharedDataCenter] POST:urlString para:para identify:type delegate:delegate];
- }
- + (NSString *)jsonStringForRequestType:(kProductReqType)type info:(NSDictionary *)dict {
-
- switch (type) {
- case kProductReqTypeDetail:
- case kProductReqTypeSpec:
- return [FLRequestHelper JSONStringWithKeys:@[@"id"]
- values:@[dict[PRODUCT_ID_KEY]]];
- case kProductReqTypeAddCollect:
- return [FLRequestHelper JSONStringWithKeys:@[@"item_id", @"type"]
- values:@[dict[PRODUCT_ID_KEY], dict[PRODUCT_COLLECT_TYPE_KEY]]];
- case kProductReqTypeRemoveCollect:
- return [FLRequestHelper JSONStringWithKeys:@[@"item_id"]
- values:@[dict[PRODUCT_ID_KEY]]];
- case kProductReqTypeAddToBasket:{
-
- NSDictionary *itemDict = @{@"goods_id" : dict[PRODUCT_ID_KEY], @"quantity" : dict[PRODUCT_AMOUNT_KEY]};
- NSError *error;
- NSData *jsonData = [NSJSONSerialization dataWithJSONObject:@[itemDict]
- options:NSJSONWritingPrettyPrinted
- error:&error];
-
- if (!jsonData) {
- return nil;
- }
- return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
- }
- case kProductReqTypeRelativePro:
- case kProductReqTypeMoreRelativePro:
- return [FLRequestHelper JSONStringWithKeys:@[@"product_id", @"start_row", @"page_size"]
- values:@[dict[PRODUCT_ID_KEY], dict[PRODUCT_RELATIVE_START_ROW_KEY], @"12"]];
- case kProductReqTypeBrandRecommend:
- return [FLRequestHelper JSONStringWithKeys:@[@"brand_id", @"start_row", @"page_size"]
- values:@[dict[BRAND_ID_KEY], @"0", @"12"]];
- case kProductReqTypeAllLookList:
- return [FLRequestHelper JSONStringWithKeys:@[@"product_id", @"start_row", @"page_size"]
- values:@[dict[PRODUCT_ID_KEY], @"0", @"12"]];
- default:
- break;
- }
- return nil;
- }
- + (NSDictionary *)getCommonParaWithType:(kProductReqType)type itemJson:(NSString *)itemJson {
-
- if (!itemJson || itemJson.length == 0) return nil;
-
- NSString *itemJsonKey = nil;
- switch (type) {
- case kProductReqTypeDetail:
- case kProductReqTypeSpec:
- itemJsonKey = @"product_json";
- break;
- case kProductReqTypeRelativePro:
- case kProductReqTypeMoreRelativePro:
- itemJsonKey = @"recommend_json";
- break;
- case kProductReqTypeAddCollect:
- case kProductReqTypeRemoveCollect:
- itemJsonKey = @"item_favorite_json";
- break;
- case kProductReqTypeAddToBasket:
- itemJsonKey = @"shopping_carts_json";
- break;
- case kProductReqTypeBrandRecommend:
- case kProductReqTypeAllLookList:
- itemJsonKey = @"recommend_json";
- break;
- default:
- break;
- }
-
- if (itemJsonKey) {
- NSMutableDictionary *dictM = [NSMutableDictionary dictionary];
- [dictM setValue:itemJson forKey:itemJsonKey];
- [dictM addEntriesFromDictionary:[FLRequestHelper commonParamater]];
- return dictM;
- }
- return nil;
- }
- + (NSString *)urlStringForRequestType:(kProductReqType)type
- {
- NSString *detailString = nil;
- switch (type) {
- case kProductReqTypeDetail:{
- detailString = @"product/get_product_new.json";
- }
- break;
- case kProductReqTypeSpec:
- detailString = @"product/find_product_specs_and_goods.json";
- break;
- case kProductReqTypeAddCollect:
- detailString = @"item_favorite/create_item_favorite.json";
- break;
- case kProductReqTypeRemoveCollect:
- detailString = @"item_favorite/remove_item_favorite.json";
- break;
- case kProductReqTypeAddToBasket:
- detailString = @"shopping_cart/create_shopping_carts.json";
- break;
- case kProductReqTypeRelativePro:
- case kProductReqTypeMoreRelativePro:
- detailString = @"search/recommend_products.json";
- break;
- case kProductReqTypeBrandRecommend:
- detailString = @"recommend/find_brand_recommend_products.json";
- break;
- case kProductReqTypeAllLookList:
- detailString = @"recommend/find_product_recommend_products.json";
- default:
- break;
- }
- if (detailString) {
- return [self commonURLwithString:detailString];
- }
- return nil;
- }
- + (NSString *)commonURLwithString:(NSString *)string{
-
- return [NSString stringWithFormat:@"%@/link-site/api/%@", [[FKServerUtil sharedInstance] apiServer], string];
- }
- + (void)reqBookBrand:(NSString *)brandID
- isCancel:(BOOL)cancel
- identify:(int)identify
- delegate:(id<FLNetworkDelegate>)delegate{
- if (![FLStringHelper isValidString:brandID]) return;
-
- if (cancel){
- [FKBrandSubscribeRequest requestCancelSubscribe:@[brandID] identify:identify delegate:delegate];
- }else{
- [FKBrandSubscribeRequest requestCreateSubscribe:@[brandID] identify:identify delegate:delegate];
- }
- }
- + (void)reqTagList:(NSString *)productId
- identify:(int)identify
- delegate:(id<FLNetworkDelegate>)delegate{
- if (!productId.length) return;
-
- NSArray *productIdArray = @[productId];
- NSMutableDictionary *dictM = [NSMutableDictionary dictionary];
- [dictM setValue:[productIdArray json] forKey:@"ids_json"];
- [dictM addEntriesFromDictionary:[FLRequestHelper commonParamater]];
-
- NSString *urlString = [NSString stringWithFormat:@"%@/link-site/api/product/find_product_features.json", [[FKServerUtil sharedInstance] apiServer]];
-
- [[FLDataCenter sharedDataCenter] POST:urlString
- para:dictM
- identify:identify
- delegate:delegate];
- }
- + (void)reqAcitvity:(NSString *)productId
- identify:(int)identify
- delegate:(id<FLNetworkDelegate>)delegate{
-
- if (!productId.length) return;
-
- NSArray *productIdArray = @[productId];
- NSMutableDictionary *dictM = [NSMutableDictionary dictionary];
- [dictM setValue:[productIdArray json] forKey:@"ids_json"];
- [dictM addEntriesFromDictionary:[FLRequestHelper commonParamater]];
-
- NSString *urlString = [NSString stringWithFormat:@"%@/link-site/api/product/find_product_sale_activitys.json", [[FKServerUtil sharedInstance] apiServer]];
-
- [[FLDataCenter sharedDataCenter] POST:urlString
- para:dictM
- identify:identify
- delegate:delegate];
- }
- + (void)reqTipListWithIdentify:(int)identify
- delegate:(id<FLNetworkDelegate>)delegate{
- NSString *urlString = [NSString stringWithFormat:@"%@/link-site/api/product/find_product_tips.json", [[FKServerUtil sharedInstance] apiServer]];
-
- [[FLDataCenter sharedDataCenter] POST:urlString
- para:[FLRequestHelper commonParamater]
- identify:identify
- delegate:delegate];
- }
- + (void)reqVipDiscountWithIdentify:(int)identify delegate:(id<FLNetworkDelegate>)delegate {
- NSString *urlString = [NSString stringWithFormat:@"%@/link-site/api/butler/get_vip_discount.json", [[FKServerUtil sharedInstance] apiServer]];
-
- [[FLDataCenter sharedDataCenter] POST:urlString
- para:[FLRequestHelper commonParamater]
- identify:identify
- delegate:delegate];
- }
- @end
|