...
|
...
|
@@ -6,17 +6,25 @@ |
|
|
*/
|
|
|
|
|
|
'use strict';
|
|
|
const utils = '../../../utils';
|
|
|
const logger = global.yoho.logger;
|
|
|
const camelCase = global.yoho.camelCase;
|
|
|
const api = global.yoho.API;
|
|
|
const saleApi = require('./sale-api');
|
|
|
const searchApi = require('./search-api');
|
|
|
const publicHandler = require('./public-handler');
|
|
|
const saleHandler = require('./sale-handler');
|
|
|
const productProcess = require(`${utils}/product-process`);
|
|
|
const searchHandler = require('./search-handler');
|
|
|
const productProcess = require(`${global.utils}/product-process`);
|
|
|
const pager = require(`${global.utils}/pager`).setPager;
|
|
|
const imageHandler = require(`${global.utils}/images`).getImageUrl;
|
|
|
const _ = require('lodash');
|
|
|
const headerModel = require('../../../doraemon/models/header');
|
|
|
|
|
|
const limitNum = 60; // 商品每页显示数目
|
|
|
|
|
|
// 下一页图片
|
|
|
const nextPageImg = '//img10.static.yhbimg.com/product/2014/01/15/11/01fa01614784f6239760f1b749663016f1.jpg?imageMogr2/thumbnail/235x314/extent/235x314/background/d2hpdGU=/position/center/quality/90'; // eslint-disable-line
|
|
|
|
|
|
/**
|
|
|
* 资源位code码
|
|
|
*/
|
...
|
...
|
@@ -383,14 +391,16 @@ exports.getSaleDiscountData = (params, channel) => { |
|
|
}
|
|
|
}
|
|
|
return api.all([
|
|
|
saleApi.getSaleGoodsList({channel: channel, saleType: '3', limit: '1', productPool: result[1].data[0].product_pool}),
|
|
|
saleApi.getSaleGoodsList({channel: channel, saleType: '3', limit: '1',
|
|
|
productPool: result[1].data[0].product_pool}),
|
|
|
saleApi.getSaleGoodsList(Object.assign(params, {productPool: result[1].data[0].product_pool}))
|
|
|
]).then(subResult => {
|
|
|
|
|
|
// 处理分页等筛选信息
|
|
|
if (subResult[0].code === 200) {
|
|
|
Object.assign(finalResult, {
|
|
|
leftContent: publicHandler.handleSaleSortData(subResult[0].data.filter.group_sort, params, 'discount'),
|
|
|
leftContent: publicHandler.handleSaleSortData(subResult[0].data.filter.group_sort,
|
|
|
params, 'discount'),
|
|
|
saleList: {
|
|
|
footPager: publicHandler.handlePagerData(subResult[0].data.total, params),
|
|
|
opts: publicHandler.handleSaleOptsData(params, subResult[0].data.total)
|
...
|
...
|
@@ -515,3 +525,109 @@ exports.getSalebreakingYardsData = (params, channel) => { |
|
|
}
|
|
|
});
|
|
|
};
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取断码区数据 Controller 调用
|
|
|
* @param params
|
|
|
* @param channel
|
|
|
* @returns {*|Promise.<TResult>}
|
|
|
*/
|
|
|
exports.getSaleSpecialData = (id, params, channel) => {
|
|
|
const limit = limitNum - 1; // 最后一个商品是翻页
|
|
|
const page = params.page || 1;
|
|
|
|
|
|
return saleApi.getSaleSpecialAsync(id).then(special => {
|
|
|
let resData = {},
|
|
|
apiList = [
|
|
|
headerModel.requestHeaderData(channel),
|
|
|
searchApi.getSortList()
|
|
|
];
|
|
|
|
|
|
if (special && special.data) {
|
|
|
let data = special.data,
|
|
|
condition = {
|
|
|
page: page,
|
|
|
limit: limit
|
|
|
};
|
|
|
let banner = JSON.parse(data.banner_img) || [];
|
|
|
|
|
|
Object.assign(resData, {
|
|
|
mainBanner: {
|
|
|
src: imageHandler(_.get(banner, '[0].img', ''), 1920, 350, 1, 'couponImg')
|
|
|
},
|
|
|
specialHead: {
|
|
|
title: '全部商品',
|
|
|
count: 0
|
|
|
},
|
|
|
node: data.left_ad_code // 水牌node
|
|
|
});
|
|
|
|
|
|
// 传品牌ID参数
|
|
|
if (special.brand_id) {
|
|
|
condition.brand = data.brand_id;
|
|
|
}
|
|
|
|
|
|
// 传促销id,促销id为空时传专区id
|
|
|
if (data.ispromotion) {
|
|
|
condition.promotion = data.ispromotion;
|
|
|
} else {
|
|
|
condition.promotion = params.promotion;
|
|
|
}
|
|
|
|
|
|
// 搜索sale活动商品
|
|
|
apiList.push(searchApi.getProductList(condition));
|
|
|
}
|
|
|
|
|
|
return Promise.all(apiList).then(result => {
|
|
|
if (!_.isEmpty(result[0])) {
|
|
|
resData.headerData = Object.assign(result[0].headerData, {header: true});
|
|
|
}
|
|
|
|
|
|
if (!_.isEmpty(result[1])) {
|
|
|
resData.leftContent = searchHandler.handleSortData(_.get(result[1],
|
|
|
'data.sort', []), params);
|
|
|
}
|
|
|
|
|
|
if (!_.isEmpty(result[2])) {
|
|
|
let tip = {
|
|
|
start: (_.get(result[2], 'data.page', 1) - 1) * limitNum + 1,
|
|
|
total: _.get(result[2], 'data.total', 0)
|
|
|
};
|
|
|
|
|
|
tip.end = tip.start + limit - 1;
|
|
|
if (tip.end > tip.total) {
|
|
|
tip.end = tip.total;
|
|
|
}
|
|
|
|
|
|
resData.specialHead.count = tip.total;
|
|
|
Object.assign(resData, {
|
|
|
filters: searchHandler.handleFilterData(_.get(result[2], 'data.filter', {}), params),
|
|
|
opts: searchHandler.handleOptsData(params, tip.total),
|
|
|
goods: productProcess.processProductList(_.get(result[2], 'data.product_list', [])),
|
|
|
footPager: {tip: tip}
|
|
|
});
|
|
|
|
|
|
// 设置分页
|
|
|
Object.assign(resData.footPager,
|
|
|
pager(_.get(result[2], 'data.page_total', 0), params));
|
|
|
|
|
|
if (_.has(resData, 'footPager.nextPage')) {
|
|
|
resData.hasNextPage = {
|
|
|
href: _.get(resData, 'footPager.nextPage.url', ''),
|
|
|
src: nextPageImg
|
|
|
};
|
|
|
}
|
|
|
|
|
|
// 获取高级筛选条件
|
|
|
if (resData.list && resData.list.filters) {
|
|
|
Object.assign(resData.list.filters, searchHandler.handleSeniorFilterData({
|
|
|
style: _.get(result[2], 'data.filter.style', []),
|
|
|
standard: _.get(result[2], 'data.standard', [])
|
|
|
}, params));
|
|
|
}
|
|
|
}
|
|
|
return resData;
|
|
|
});
|
|
|
});
|
|
|
}; |
...
|
...
|
|