Authored by yyq

Merge branch 'feature/sale' of git.yoho.cn:fe/yohobuy-node into feature/sale

... ... @@ -25,6 +25,9 @@ const sale = require(`${mRoot}/sale`);
*/
exports.index = (req, res) => {
let responseData = {};
let params = {};
params.uid = req.user.uid || 0;
headerModel.requestHeaderData()
.then(headerData => {
... ... @@ -39,7 +42,7 @@ exports.index = (req, res) => {
// res.render('sale/index', Object.assign(responseData, simulation.saleIndex()));
// 真实数据输出
sale.getSaleIndexData().then(result => {
sale.getSaleIndexData(params).then(result => {
responseData.result = result;
responseData.resultShow = JSON.stringify(result, null, 4);
... ... @@ -103,6 +106,8 @@ exports.vip = (req, res) => {
saleType: 2
}, req.query);
params.uid = req.user.uid || 0;
let responseData = {};
headerModel.requestHeaderData().then(headerData => {
... ...
... ... @@ -2,7 +2,7 @@
* @Author: Targaryen
* @Date: 2016-05-25 18:16:59
* @Last Modified by: Targaryen
* @Last Modified time: 2016-05-31 16:55:37
* @Last Modified time: 2016-05-31 18:22:37
*/
'use strict';
... ... @@ -393,6 +393,7 @@ exports.handleSaleOptsData = (params, total) => {
dest.sortType.push(opt);
}
// 上下翻页数据处理
dest.pageCounts = [{
href: handleFilterUrl(params, { limit: 100 }),
count: 100
... ... @@ -653,3 +654,72 @@ exports.handleSaleCategoryData = () => {
}]
}];
};
/**
* 处理分页数据
* @param {[type]} total [description]
* @param {[type]} params [description]
* @return {[type]} [description]
*/
exports.handleSalePagerData = (total, params) => {
// 当前页
let currentPage = parseInt((_.isEmpty(params.page) ? 1 : params.page), 10);
let perPageCount = parseInt((_.isEmpty(params.limit) ? 60 : params.limit), 10);
let totalPage = parseInt(total / perPageCount, 10) + 1;
let dest = '<a href ="' + handleFilterUrl(params, { page: (currentPage) }) +
'" class="cur">' + currentPage + '</a>';
// 先处理大多数情况
if ((currentPage > 2) && (currentPage < (parseInt(total, 10) / perPageCount) - 1)) {
for (let i = 1; i < 3; i++) {
dest = '<a href ="' + handleFilterUrl(params, { page: (currentPage - i) }) + '">' +
(currentPage - i) + '</a> ' + dest + ' <a href ="' +
handleFilterUrl(params, { page: (currentPage + i) }) +
'">' + (currentPage + i) + '</a>';
}
// 处理页码小于2的情况
} else if (currentPage <= 2) {
for (let i = currentPage - 1; i > 0; i--) {
dest = '<a href ="' + handleFilterUrl(params, { page: i }) +
'" class="cur">' + i + '</a>' + dest;
}
for (let i = currentPage + 1; i < (totalPage < 6 ? totalPage : 6); i++) {
dest += '<a href ="' + handleFilterUrl(params, { page: i }) +
'" class="cur">' + i + '</a>';
}
// 处理页码大于最大页-2的情况
} else if (currentPage > totalPage - 2) {
for (let i = currentPage + 1; i < totalPage + 1; i++) {
dest += '<a href ="' + handleFilterUrl(params, { page: i }) +
'" class="cur">' + i + '</a>';
}
for (let i = currentPage - 1; i > (currentPage - 5 > 1 ? currentPage - 5 : 1); i--) {
dest = '<a href ="' + handleFilterUrl(params, { page: i }) +
'" class="cur">' + i + '</a>' + dest;
}
}
// 处理后省略号的情况
if ((totalPage > 5) && (currentPage < (totalPage - 2))) {
dest += ' ... <a href ="' + handleFilterUrl(params, { page: totalPage }) +
'">' + totalPage + '</a>';
}
// 处理前省略号的情况
if (currentPage > 3) {
dest = '<a href ="' + handleFilterUrl(params, { page: 1 }) +
'">1</a> ... ' + dest;
}
return dest;
};
... ...
... ... @@ -2,7 +2,7 @@
* @Author: Targaryen
* @Date: 2016-05-19 10:20:08
* @Last Modified by: Targaryen
* @Last Modified time: 2016-05-31 16:53:44
* @Last Modified time: 2016-05-31 18:43:03
*/
'use strict';
... ... @@ -35,11 +35,12 @@ exports.getSaleGoodsData = (params) => {
* 获取 Sale 首页数据 Controller 调用
* @return {[type]} [description]
*/
exports.getSaleIndexData = () => {
exports.getSaleIndexData = (params) => {
return api.all([
saleApi.getSaleActivityList(),
saleApi.getSaleBannerList('7c2b77093421efa8ae9302c91460db73')
saleApi.getSaleBannerList('7c2b77093421efa8ae9302c91460db73'),
saleApi.getUserProfile(params.uid)
]).then(result => {
var finalResult = {};
... ... @@ -52,6 +53,11 @@ exports.getSaleIndexData = () => {
finalResult.activityEnter = saleHandler.handleSaleBannerSmallData(result[1].data);
}
// 处理会员等级
if (result[2].code === 200) {
finalResult.vip = result[2].curLevel > 0 ? result[2].curLevel : false;
}
finalResult.saleCategory = saleHandler.handleSaleCategoryData();
return finalResult;
... ... @@ -76,7 +82,7 @@ exports.getSaleOthersData = (params) => {
saleApi.getSaleGoodsList(params),
saleApi.getSaleBannerList(cCode),
saleApi.getLeftContentList(),
saleApi.getUserProfile()
saleApi.getUserProfile(params.uid)
];
} else {
cCode = '7c2b77093421efa8ae9302c91460db73';
... ... @@ -94,11 +100,14 @@ exports.getSaleOthersData = (params) => {
// 获取商品数据和顶部筛选条件
if (result[0].code === 200) {
finalResult.goods = productProcess.processProductList(result[0].data.product_list);
finalResult.filters = saleHandler.handleSaleFilterData(result[0].data.filter, params);
if (!_.isEmpty(result[0].data.filter)) {
finalResult.filters = saleHandler.handleSaleFilterData(result[0].data.filter, params);
}
// 处理排序数据
finalResult.opts = saleHandler.handleSaleOptsData(params, result[0].data.total);
finalResult.totalCount = result[0].data.total;
finalResult.pager = saleHandler.handleSalePagerData(result[0].data.total, params);
}
// 获取焦点图数据
... ... @@ -119,7 +128,7 @@ exports.getSaleOthersData = (params) => {
// 获取用户数据
if (result[3].code === 200) {
finalResult.userData = result[3].data;
finalResult.vip = result[3].curLevel > 0 ? result[3].curLevel : false;
}
}
... ... @@ -144,6 +153,8 @@ exports.getSaleDiscountData = (params) => {
finalResult.saleList = {};
finalResult.saleList.goods = productProcess.processProductList(result[0].data.product_list);
finalResult.leftContent = saleHandler.handleSaleSortData(result[0].data.filter.group_sort, params);
finalResult.totalCount = result[0].data.total;
finalResult.pager = saleHandler.handleSalePagerData(result[0].data.total, params);
}
// 处理焦点图数据
... ... @@ -186,13 +197,9 @@ exports.getSalebreakingYardsData = (params) => {
finalResult.opts = saleHandler.handleSaleOptsData(params, result[0].data.total);
finalResult.totalCount = result[0].data.total;
finalResult.pager = saleHandler.handleSalePagerData(result[0].data.total, params);
}
// 尺码数据
// if (result[1].code === 200) {
// finalResult.filters.size = saleHandler.handleSalebreakingYardsSortData(result[1].data, params);
// }
if (result[2].code === 200) {
finalResult.topBanner = saleHandler.handleSaleBannerData(result[2].data);
}
... ...