Authored by 姜枫

Merge branch 'feature/optimRear' into 'master'

优化服务端代码

后端相关逻辑简化。

See merge request !220
... ... @@ -10,25 +10,43 @@ const utils = '../../../utils';
const headerModel = require('../../../doraemon/models/header');
const searchProcess = require(`${utils}/search-process`);
const newModel = require(`${mRoot}/new`);
const searchModel = require(`${mRoot}/search`);
const _ = require('lodash');
const helpers = global.yoho.helpers;
// 新品到着(blk)
const blkNewGoods = (req, res) => {
const blkNewGoods = (req, res, next) => {
let params = Object.assign({
isblknew: true
}, req.query);
res.render('search/goods-list', {
module: 'product',
page: 'search-list',
pageHeader: headerModel.setNav({
navTitle: req.query.title || req.query.sort_name || '新品抢先看'
}),
goodList: params,
showDownloadApp: true,
pageFooter: true
});
// 获取第一页数据做服务端渲染
let uid = req.user.uid || 0;
let initialData = _.assign({
gender: req.query.gender || '1,3',
type: 'default',
order: '0',
page: 1,
limit: 12
}, params);
if (uid) {
initialData.uid = uid;
}
searchModel.getSearchData(initialData).then(firstScreenGoodsList => {
res.render('search/goods-list', {
module: 'product',
page: 'search-list',
pageHeader: headerModel.setNav({
navTitle: req.query.title || req.query.sort_name || '新品抢先看'
}),
goodList: params,
firstPageGoodsList: firstScreenGoodsList.list,
showDownloadApp: true,
pageFooter: true
});
}).catch(next);
};
// 新品到着
... ...
... ... @@ -20,7 +20,7 @@ const getCommonConsult = () => {
return api.get('', params, {
code: 200
}).then(result => {
}, {cache: true}).then(result => {
let data = {};
if (result.data) {
... ... @@ -37,24 +37,20 @@ const getCommonConsult = () => {
* @return {[object]}
*/
const _formatConsultsList = (data) => {
let list = [];
if (data.length) {
_.forEach(data, (value) => {
list.push({
question: value.ask,
time: value.ask_time,
answer: value.answer,
id: value.id,
isLike: value.is_like === 'Y',
like: _.toNumber(value.like),
isUseful: value.is_useful === 'Y',
useful: _.toNumber(value.useful)
});
});
}
return list;
data = data || [];
return data.map(function(value) {
return {
question: value.ask,
time: value.ask_time,
answer: value.answer,
id: value.id,
isLike: value.is_like === 'Y',
like: _.toNumber(value.like),
isUseful: value.is_useful === 'Y',
useful: _.toNumber(value.useful)
};
});
};
/**
... ... @@ -75,7 +71,7 @@ const getConsults = (id, page, limit, uid) => {
return api.get('', params, {
code: 200
}).then(result => {
}, {cache: true}).then(result => {
let data = {};
if (result && result.data && result.data.list) {
... ...
... ... @@ -32,23 +32,24 @@ const _processBrandNames = (list) => {
const formatData = [];
const brandDomainMap = {}, brandNameMap = {};
const ttl = 60000; // 默认缓存一分钟
let brandDomain = '';
let brandName = '';
list = list || [];
list = camelCase(list);
_.forEach(list, (item) => {
_.forEach(item, (obj) => {
formatData.push({
brandDomain: obj.brandDomain && obj.brandDomain.toLowerCase(),
brandName: obj.brandDomain && obj.brandName.toLowerCase()
});
brandDomain = obj.brand_domain && obj.brand_domain.toLowerCase();
brandName = obj.brand_name && obj.brand_name.toLowerCase();
if (obj && obj.brandDomain) {
brandDomainMap[obj.brandDomain.toLowerCase()] = obj.brandDomain.toLowerCase();
}
if (brandDomain && brandName) {
formatData.push({
brandDomain: brandDomain,
brandName: brandName
});
if (obj && obj.brandName && obj.brandDomain) {
brandNameMap[obj.brandName.toLowerCase()] = obj.brandDomain.toLowerCase();
brandDomainMap[brandDomain] = brandDomain;
brandNameMap[brandName] = brandDomain;
}
});
});
... ... @@ -71,15 +72,14 @@ const _processClassNames = (list) => {
};
list = list || [];
list = camelCase(list);
_.forEach(list, (item) => {
_.forEach(item, (obj) => {
formatData.first[obj.categoryId] = obj.categoryName;
formatData.first[obj.category_id] = obj.category_name;
if (obj.sub) {
_.forEach(obj.sub, (sub) => {
formatData.second[sub.categoryId] = sub.categoryName;
formatData.second[sub.category_id] = sub.category_name;
});
}
... ...
... ... @@ -76,7 +76,7 @@ module.exports = {
port: '4444' // influxdb port
},
console: {
level: 'debug',
level: 'info',
colorize: 'all',
prettyPrint: true
}
... ...
{
"name": "m-yohobuy-node",
"version": "5.4.8",
"version": "5.4.9",
"private": true,
"description": "A New Yohobuy Project With Express",
"repository": {
... ...
... ... @@ -45,7 +45,7 @@ function initSwiper(data) {
idStrReg = /container-(\d+)['"]{1}/gi,
idReg = /\d+/,
idArr = data.match(idStrReg),
idArrLen = idArr.length,
idArrLen = idArr && idArr.length || 0,
containerId;
// $swiperList = $('.swiper-container');
... ... @@ -95,7 +95,7 @@ function loadData($parent, url, page) {
if (data.total === 0) {
$loadingMask.addClass('hide');
$parent.closest('.fav-type').find('.fav-null-box').removeClass('hide');
$parent.closest('.fav-type').find('.fav-null-box').removeClass('hide').addClass('show');
window.rePosFooter();
} else if (data.more === true) {
... ...
... ... @@ -12,7 +12,6 @@
}
.swiper-pagination {
display: none;
position: absolute;
left: 0;
right: 0;
... ...