|
|
'use strict';
|
|
|
|
|
|
import ReactNative from 'react-native';
|
|
|
import ReactNative, {
|
|
|
Platform,
|
|
|
} from 'react-native';
|
|
|
|
|
|
import NewArrivalService from '../../services/NewArrivalService';
|
|
|
import * as _ from 'lodash';
|
|
|
|
...
|
...
|
@@ -73,6 +76,7 @@ export function getTopInfo() { |
|
|
data,
|
|
|
template_name,
|
|
|
} = ads[i];
|
|
|
|
|
|
if (data.length && template_name == 'focus') {
|
|
|
first_part = data;
|
|
|
}
|
...
|
...
|
@@ -81,6 +85,16 @@ export function getTopInfo() { |
|
|
}
|
|
|
}
|
|
|
}
|
|
|
try {
|
|
|
first_part = exposeBannerData(first_part,'first_part',app.channel);
|
|
|
shop_list = exposeBannerData(shop_list,'shop_list',app.channel)
|
|
|
second_part = exposeBannerData(second_part,'second_part',app.channel)
|
|
|
} catch (e) {
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
}
|
|
|
|
|
|
let newJson = {
|
|
|
first_part,
|
|
|
shop_list,
|
...
|
...
|
@@ -221,8 +235,7 @@ export function getProductList(reload=false) { |
|
|
dispatch(productListRequest());
|
|
|
return new NewArrivalService(app.host).fetchProductList(channel, order, page, pageSize, allFilterFactors)
|
|
|
.then(json => {
|
|
|
let payload = parseProductList(json);
|
|
|
|
|
|
let payload = parseProductList(json,order,channel);
|
|
|
payload.endReached = payload.currentPage == payload.pageCount;
|
|
|
let LIST = [];
|
|
|
for (var i = 0; i < payload.list.length; i++) {
|
...
|
...
|
@@ -301,6 +314,7 @@ export function getProductList(reload=false) { |
|
|
}];
|
|
|
// console.log(logData);
|
|
|
dispatch(newArrivalExposure(logData));
|
|
|
|
|
|
if (payload.currentPage > 1) {
|
|
|
let oldList = productList.list.toJS();
|
|
|
let list = [...oldList, ...payload.list];
|
...
|
...
|
@@ -560,13 +574,21 @@ export function goToRecommendForYou() { |
|
|
};
|
|
|
}
|
|
|
|
|
|
function parseProductList(json) {
|
|
|
function parseProductList(json,order,channel) {
|
|
|
let list = json && json.product_list ? json.product_list : [];
|
|
|
try {
|
|
|
list = exposePruductListData(list,order,channel);
|
|
|
} catch (e) {
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
}
|
|
|
|
|
|
let currentPage = json && json.page ? json.page : 1;
|
|
|
let pageCount = json && json.page_total ? json.page_total : 0;
|
|
|
let total = json && json.total ? json.total : 0;
|
|
|
|
|
|
let filter = json && json.filter ? json.filter : {};
|
|
|
let list = json && json.product_list ? json.product_list : [];
|
|
|
let filterCategoryDetailFilterList = {};
|
|
|
let categoryFilterList = [];
|
|
|
|
...
|
...
|
@@ -766,6 +788,198 @@ function parseProductList(json) { |
|
|
};
|
|
|
}
|
|
|
|
|
|
function exposeBannerData(data,type,channel) {
|
|
|
|
|
|
let pageName = 'iFP_NewArrival';
|
|
|
|
|
|
if (Platform.OS === 'android') {
|
|
|
pageName = 'aFP_NewArrival';
|
|
|
}
|
|
|
let channelStr = 'boy';
|
|
|
if (channel == '1') {
|
|
|
channelStr = 'boy';
|
|
|
}else if (channel == '2') {
|
|
|
channelStr = 'girl';
|
|
|
}else if (channel == '3') {
|
|
|
channelStr = 'kid';
|
|
|
}else if (channel == '4') {
|
|
|
channelStr = 'leftStyle';
|
|
|
}
|
|
|
if (type == 'first_part') {
|
|
|
for (var i = 0; i < data.length; i++) {
|
|
|
let item = data[i];
|
|
|
let params = {
|
|
|
P_NAME: pageName,
|
|
|
P_PARAM: channelStr,
|
|
|
I_INDEX: parseInt(i) + 1 + '',
|
|
|
ACTION_URL: item.url,
|
|
|
C_ID: channel,
|
|
|
exposureEnd : 1,
|
|
|
};
|
|
|
item.yh_exposureData = params;
|
|
|
}
|
|
|
}else if (type == 'shop_list') {
|
|
|
for (var i = 0; i < data.length; i++) {
|
|
|
let item = data[i];
|
|
|
let params = {
|
|
|
P_NAME: pageName,
|
|
|
P_PARAM: channelStr,
|
|
|
I_INDEX: parseInt(i) + 1 + '',
|
|
|
BRAND_ID: item.brand_id,
|
|
|
SHOP_ID: item.shops_id,
|
|
|
C_ID: channel,
|
|
|
exposureEnd : 1,
|
|
|
};
|
|
|
item.yh_exposureData = params;
|
|
|
}
|
|
|
}else if (type == 'second_part') {
|
|
|
for (var i = 0; i < data.length; i++) {
|
|
|
let item = data[i];
|
|
|
let params = {
|
|
|
P_NAME: pageName,
|
|
|
P_PARAM: channelStr,
|
|
|
I_INDEX: parseInt(i) + 1 + '',
|
|
|
ACTION_URL: item.url,
|
|
|
C_ID: channel,
|
|
|
exposureEnd : 1,
|
|
|
};
|
|
|
item.yh_exposureData = params;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
function exposePruductListData(list,order,channel) {
|
|
|
if (!list) {
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
let tab_name = '最新';
|
|
|
let tab_num = 0;
|
|
|
if (order == 's_t_desc') {
|
|
|
tab_name = '最新';
|
|
|
tab_num = 0;
|
|
|
}
|
|
|
if (order == 's_p_asc' || order == 's_p_desc') {
|
|
|
tab_name = '价格';
|
|
|
tab_num = 1;
|
|
|
}
|
|
|
if (order == 'p_d_asc' || order == 'p_d_desc') {
|
|
|
tab_name = '折扣';
|
|
|
tab_num = 2;
|
|
|
}
|
|
|
|
|
|
let pageName = 'iFP_NewArrival';
|
|
|
|
|
|
if (Platform.OS === 'android') {
|
|
|
pageName = 'aFP_NewArrival';
|
|
|
}
|
|
|
let channelStr = 'boy';
|
|
|
if (channel == '1') {
|
|
|
channelStr = 'boy';
|
|
|
}else if (channel == '2') {
|
|
|
channelStr = 'girl';
|
|
|
}else if (channel == '3') {
|
|
|
channelStr = 'kid';
|
|
|
}else if (channel == '4') {
|
|
|
channelStr = 'leftStyle';
|
|
|
}
|
|
|
|
|
|
for (var i = 0; i < list.length; i++) {
|
|
|
let item = list[i];
|
|
|
let recommend_type = item.recommend_type;
|
|
|
if (recommend_type == 'hotSearchTerm') {
|
|
|
let inFloorIndex = parseInt(i) + 1 + '';
|
|
|
let yh_exposureData = [];
|
|
|
for (var j = 0; j < item.data.length; j++) {
|
|
|
let f_item = item.data[j];
|
|
|
let keyword = f_item;
|
|
|
let categoryId = f_item.categoryId;
|
|
|
let params = {
|
|
|
P_NAME: pageName,
|
|
|
P_PARAM: channelStr,
|
|
|
TAB_ID: tab_num,
|
|
|
TAB_NAME: tab_name,
|
|
|
I_INDEX: inFloorIndex,
|
|
|
L_INDEX: parseInt(j) + 1 + '',
|
|
|
C_ID: channel,
|
|
|
KEYWORD: keyword,
|
|
|
exposureEnd : 1,
|
|
|
};
|
|
|
yh_exposureData.push(params);
|
|
|
}
|
|
|
item.yh_exposureDataList = yh_exposureData;
|
|
|
}else if (recommend_type == 'seasonSort') {
|
|
|
let inFloorIndex = parseInt(i) + 1 + '';
|
|
|
for (var j = 0; j < item.data.length; j++) {
|
|
|
let f_item = item.data[j];
|
|
|
let url = f_item.url;
|
|
|
let categoryId = f_item.categoryId;
|
|
|
let params = {
|
|
|
P_NAME: pageName,
|
|
|
P_PARAM: channelStr,
|
|
|
TAB_ID: tab_num,
|
|
|
TAB_NAME: tab_name,
|
|
|
I_INDEX: inFloorIndex,
|
|
|
L_INDEX: parseInt(j) + 1 + '',
|
|
|
C_ID: channel,
|
|
|
ACTION_URL: url,
|
|
|
L1_CATE_ID: categoryId,
|
|
|
exposureEnd : 1,
|
|
|
};
|
|
|
f_item.yh_exposureData = params;
|
|
|
}
|
|
|
}else if (recommend_type == 'hotShop') {
|
|
|
let inFloorIndex = parseInt(i) + 1 + '';
|
|
|
let brandID = item.data.brand_id;
|
|
|
let params = {
|
|
|
P_NAME: pageName,
|
|
|
P_PARAM: channelStr,
|
|
|
TAB_ID: tab_num,
|
|
|
TAB_NAME: tab_name,
|
|
|
I_INDEX: inFloorIndex,
|
|
|
BRAND_ID: brandID,
|
|
|
C_ID: channel,
|
|
|
exposureEnd : 1,
|
|
|
};
|
|
|
item.data.yh_exposureData = params;
|
|
|
}else if (recommend_type == 'fashionArticle') {
|
|
|
let inFloorIndex = parseInt(i) + 1 + '';
|
|
|
let article_id = item.data.id;
|
|
|
let params = {
|
|
|
P_NAME: pageName,
|
|
|
P_PARAM: channelStr,
|
|
|
TAB_ID: tab_num,
|
|
|
TAB_NAME: tab_name,
|
|
|
I_INDEX: inFloorIndex,
|
|
|
ARTICLE_ID: article_id,
|
|
|
C_ID: channel,
|
|
|
exposureEnd : 1,
|
|
|
};
|
|
|
item.data.yh_exposureData = params;
|
|
|
}else {
|
|
|
let skn = item.product_skn;
|
|
|
let inFloorIndex = parseInt(i) + 1 + '';
|
|
|
let params = {
|
|
|
P_NAME : pageName,
|
|
|
I_INDEX : inFloorIndex,
|
|
|
PRD_SKN : skn,
|
|
|
TAB_NAM : tab_name,
|
|
|
TAB_ID : tab_num,
|
|
|
P_PARAM : channelStr,
|
|
|
C_ID: channel,
|
|
|
exposureEnd : 1,
|
|
|
};
|
|
|
item.yh_exposureData = params;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 按照数组中指定字段排序二维数组
|
|
|
*
|
...
|
...
|
|