...
|
...
|
@@ -8,6 +8,8 @@ |
|
|
'use strict';
|
|
|
const library = '../../../library';
|
|
|
const utils = '../../../utils';
|
|
|
const logger = require(`${library}/logger`);
|
|
|
const camelCase = require(`${library}/camel-case`);
|
|
|
const API = require(`${library}/api`).API;
|
|
|
const api = new API();
|
|
|
const saleApi = require('./sale-api');
|
...
|
...
|
@@ -67,14 +69,22 @@ exports.getSaleGoodsData = (params) => { |
|
|
delete finalResult.goods[key].tags.isSale;// 屏蔽 sale 标签
|
|
|
delete finalResult.goods[key].discount; // 屏蔽折扣信息
|
|
|
});
|
|
|
} else {
|
|
|
logger.error('search sale api code no 200');
|
|
|
}
|
|
|
|
|
|
// 处理 VIP 商品数据
|
|
|
if (result[1].code === 200) {
|
|
|
let userInfo = result[1].data.vip_info ? camelCase(result[1].data.vip_info) : {};
|
|
|
|
|
|
if (_.isEmpty(userInfo)) {
|
|
|
logger.info('no user info');
|
|
|
}
|
|
|
|
|
|
if (params.saleType === '2') {
|
|
|
_.forEach(finalResult.goods, (value, key) => {
|
|
|
|
|
|
switch (result[1].curLevel) {
|
|
|
switch (userInfo.curLevel) {
|
|
|
case '1':
|
|
|
finalResult.goods[key].salePrice = value.vip1Price;
|
|
|
finalResult.goods[key].vip1 = true;
|
...
|
...
|
@@ -150,12 +160,16 @@ exports.getSaleIndexData = (channel) => { |
|
|
// 折扣专场活动处理
|
|
|
if (result[1].code === 200) {
|
|
|
finalResult.brandSale = saleHandler.handleSaleActivityData(result[1].data, channel);
|
|
|
} else {
|
|
|
logger.error('discount activities api code no 200');
|
|
|
}
|
|
|
|
|
|
// 资源位数据处理
|
|
|
if (result[2].code === 200 && !_.isEmpty(result[2].data)) {
|
|
|
finalResult.topBanner = saleHandler.handleSaleBannerData(result[2].data);
|
|
|
finalResult.activityEnter = saleHandler.handleSaleBannerSmallData(result[2].data);
|
|
|
} else {
|
|
|
logger.error('content code api code no 200 or no data');
|
|
|
}
|
|
|
|
|
|
// 分类处理
|
...
|
...
|
@@ -170,6 +184,8 @@ exports.getSaleIndexData = (channel) => { |
|
|
{forVip: true}
|
|
|
)
|
|
|
);
|
|
|
} else {
|
|
|
logger.error('index vip category api code no 200');
|
|
|
}
|
|
|
|
|
|
// 断码区分类处理
|
...
|
...
|
@@ -198,10 +214,14 @@ exports.getSaleIndexData = (channel) => { |
|
|
finalResult.saleCategory.push(
|
|
|
saleHandler.handleSaleCategoryData(result[5].data.filter.group_sort, '3', channel)
|
|
|
);
|
|
|
} else {
|
|
|
logger.error('newSale category api code no 200');
|
|
|
}
|
|
|
return finalResult;
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
logger.error('breakYards category api code no 200');
|
|
|
}
|
|
|
return finalResult;
|
|
|
});
|
...
|
...
|
@@ -245,6 +265,8 @@ exports.getSaleOthersData = (params, channel) => { |
|
|
if (!_.isEmpty(result[1].data.filter)) {
|
|
|
// 顶部筛选条件
|
|
|
finalResult.filters = publicHandler.handleSaleFilterData(result[1].data.filter, params);
|
|
|
} else {
|
|
|
logger.error('data filter is empty');
|
|
|
}
|
|
|
|
|
|
// 处理排序数据
|
...
|
...
|
@@ -268,6 +290,8 @@ exports.getSaleOthersData = (params, channel) => { |
|
|
// 获取焦点图数据
|
|
|
if (result[2].code === 200) {
|
|
|
finalResult.topBanner = saleHandler.handleSaleBannerData(result[2].data);
|
|
|
} else {
|
|
|
logger.error('content code api code no 200');
|
|
|
}
|
|
|
|
|
|
// 获取分类筛选数据
|
...
|
...
|
@@ -276,14 +300,22 @@ exports.getSaleOthersData = (params, channel) => { |
|
|
// 获取左侧类目数据
|
|
|
finalResult.leftContent = publicHandler.handleSaleSortData(result[3].data.filter.group_sort, params);
|
|
|
|
|
|
} else {
|
|
|
logger.error('left content category api code no 200');
|
|
|
}
|
|
|
|
|
|
if (!_.isEmpty(result[4])) {
|
|
|
// 处理 VIP 商品数据
|
|
|
if (result[4].code === 200 && parseInt(params.saleType, 10) === 2) {
|
|
|
let userInfo = result[4].data.vip_info ? camelCase(result[4].data.vip_info) : {};
|
|
|
|
|
|
if (_.isEmpty(userInfo)) {
|
|
|
logger.info('no user info');
|
|
|
}
|
|
|
|
|
|
_.forEach(finalResult.goods, (value, key) => {
|
|
|
|
|
|
switch (result[4].curLevel) {
|
|
|
switch (userInfo.curLevel) {
|
|
|
case '1':
|
|
|
finalResult.goods[key].salePrice = value.vip1_price;
|
|
|
finalResult.goods[key].vip1 = true;
|
...
|
...
|
@@ -303,7 +335,11 @@ exports.getSaleOthersData = (params, channel) => { |
|
|
}
|
|
|
|
|
|
});
|
|
|
} else {
|
|
|
logger.error('user api code no 200 or no vip category');
|
|
|
}
|
|
|
} else {
|
|
|
logger.error('no user info get from api');
|
|
|
}
|
|
|
|
|
|
return finalResult;
|
...
|
...
|
@@ -331,6 +367,8 @@ exports.getSaleDiscountData = (params, channel) => { |
|
|
opts: publicHandler.handleSaleOptsData(params, result[1].data.total)
|
|
|
}
|
|
|
});
|
|
|
} else {
|
|
|
logger.error('category api no 200');
|
|
|
}
|
|
|
|
|
|
// 处理折扣专场标题 banner 数据
|
...
|
...
|
@@ -345,6 +383,8 @@ exports.getSaleDiscountData = (params, channel) => { |
|
|
finalResult.topBanner.list[0] = {
|
|
|
img: result[2].data[0].web_url
|
|
|
};
|
|
|
} else {
|
|
|
logger.error('discount activity data[0] web_url empty');
|
|
|
}
|
|
|
}
|
|
|
|
...
|
...
|
@@ -361,10 +401,14 @@ exports.getSaleDiscountData = (params, channel) => { |
|
|
delete finalResult.saleList.goods[key].tags.isSale;// 屏蔽 sale 标签
|
|
|
delete finalResult.saleList.goods[key].discount; // 屏蔽折扣信息
|
|
|
});
|
|
|
} else {
|
|
|
logger.error('discount goods list api code no 200');
|
|
|
}
|
|
|
|
|
|
return finalResult;
|
|
|
});
|
|
|
} else {
|
|
|
logger.error('discount activity api code no 200');
|
|
|
}
|
|
|
return finalResult;
|
|
|
});
|
...
|
...
|
@@ -387,6 +431,8 @@ exports.getSalebreakingYardsData = (params, channel) => { |
|
|
// 处理 banner 数据
|
|
|
if (result[1].code === 200) {
|
|
|
finalResult.topBanner = saleHandler.handleSaleBannerData(result[1].data);
|
|
|
} else {
|
|
|
logger.error('content code api code no 200');
|
|
|
}
|
|
|
|
|
|
// 断码区产品筛选需要断码区尺码数据,改为串行处理
|
...
|
...
|
@@ -411,6 +457,8 @@ exports.getSalebreakingYardsData = (params, channel) => { |
|
|
if (subResult[0].code === 200) {
|
|
|
finalResult.leftContent =
|
|
|
publicHandler.handleSaleSortData(subResult[0].data.filter.group_sort, params);
|
|
|
} else {
|
|
|
logger.error('breakYards left content api code no 200');
|
|
|
}
|
|
|
|
|
|
// 处理商品数据
|
...
|
...
|
@@ -439,9 +487,13 @@ exports.getSalebreakingYardsData = (params, channel) => { |
|
|
delete finalResult.goods[key].tags.isSale;// 屏蔽 sale 标签
|
|
|
delete finalResult.goods[key].discount; // 屏蔽折扣信息
|
|
|
});
|
|
|
} else {
|
|
|
logger.error('breakYards goods list code no 200');
|
|
|
}
|
|
|
return finalResult;
|
|
|
});
|
|
|
} else {
|
|
|
logger.error('breakYards size api code no 200');
|
|
|
}
|
|
|
});
|
|
|
}; |
...
|
...
|
|