Authored by 郭成尧

抽离商品列表页

... ... @@ -2,12 +2,56 @@
* @Author: Targaryen
* @Date: 2016-05-21 10:59:20
* @Last Modified by: Targaryen
* @Last Modified time: 2016-05-21 13:22:46
* @Last Modified time: 2016-06-02 15:17:03
*/
'use strict';
const headerModel = require('../../../doraemon/models/header');
const mRoot = '../models';
// list 页 model
const list = require(`${mRoot}/list`);
exports.getProductPic = (req, res) => {
res.jsonp();
};
/**
* 商品列表页
* @param {[type]} req [description]
* @param {[type]} res [description]
* @return {[type]} [description]
*/
exports.index = (req, res) => {
let params = Object.assign({
saleType: 2,
order: 's_t_asc,s_s_asc'
}, req.query);
let channel = req.query.channel || req.cookies._Channel || 'boys';
params.uid = req.user.uid || 0;
let responseData = {};
headerModel.requestHeaderData().then(headerData => {
responseData = headerModel.setHeaderData(headerData.data, 'vip');
responseData.module = 'product';
responseData.page = 'sale';
// responseData.footerTop = true;
responseData.devEnv = true;
list.getSaleOthersData(params, channel).then((result) => {
responseData.saleList = result;
responseData.resultShow = JSON.stringify(result, null, 4);
res.render('sale/other', responseData);
});
}).catch(() => {
res.render('error', { devEnv: true, pageErr: true });
});
};
... ...
/*
* @Author: Targaryen
* @Date: 2016-06-02 15:11:15
* @Last Modified by: Targaryen
* @Last Modified time: 2016-06-02 15:22:08
*/
'use strict';
const library = '../../../library';
const utils = '../../../utils';
const API = require(`${library}/api`).API;
const api = new API();
const saleApi = require('./sale-api');
const saleHandler = require('./sale-handler');
const productProcess = require(`${utils}/product-process`);
const _ = require('lodash');
/**
* 获取 VIP 会员专享和新降价专区数据 Controller 调用
* @return {[type]} [description]
*/
exports.getSaleOthersData = (params) => {
let promiseObject = [
saleApi.getSaleGoodsList(params),
saleApi.getLeftContentList()
];
return api.all(promiseObject).then(result => {
let finalResult = {};
// 获取商品数据和顶部筛选条件
if (result[0].code === 200) {
finalResult.goods = productProcess.processProductList(result[0].data.product_list);
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);
}
// 获取左侧类目数据
if (result[1].code === 200) {
if (params.gender === '2,3') {
finalResult.leftContent = saleHandler.handleSaleSortData(result[1].data.girl, params);
} else {
finalResult.leftContent = saleHandler.handleSaleSortData(result[1].data.boy, params);
}
}
return finalResult;
});
};
... ...
... ... @@ -6,7 +6,7 @@
'use strict';
const router = require('express').Router(); // eslint-disable-line
const router = require('express').Router(); // eslint-disable-line
const cRoot = './controllers';
// 商品详情controller
... ... @@ -18,6 +18,9 @@ const sale = require(`${cRoot}/sale`);
// 奥特莱斯controller
const outlets = require(`${cRoot}/outlets`);
// 商品促销controller
const list = require(`${cRoot}/list`);
// 商品促销routers
router.get('/sale', sale.index); // sale 首页
router.get('/sale/discount/detail', sale.discount); // 折扣专场详情页
... ... @@ -31,4 +34,7 @@ router.get('/outlets/index', outlets.index);
router.get('/outlets/special/detail', outlets.special);
router.get('/outlets/:channel', outlets.channel);
// 商品列表页
router.get('/list', list.index); // 商品列表页
module.exports = router;
... ...