Authored by 周少峰

Merge branch 'master' into release/5.7

... ... @@ -241,7 +241,7 @@ exports.detail = (req, res, next) => {
// 判断参数是否有效, 无效会跳转到错误页面
if (!info || !info.title) {
return new Error('文章不存在');
return next();
}
let promises = [
... ... @@ -312,8 +312,8 @@ exports.detail = (req, res, next) => {
description: '潮流商品搜索,上衣,衬衫,TEE,卫衣,冲锋衣,风衣,羽绒服,裤子,休闲鞋,板鞋,配饰,复古眼镜',
webNavHeader: channel
}));
}).catch(next);
});
});
}).catch(next);
};
/**
... ...
... ... @@ -39,7 +39,7 @@ const showMain = (req, res, next) => {
module: 'product',
page: 'detail'
}, result.seo, result));
}).catch(next);
}).catch(()=> next());
};
... ...
... ... @@ -143,8 +143,8 @@ const isFavShop = (req, res, next) => {
};
const num = (req, res, next) => {
let bid = _.parseInt(req.query.bid) || 0;
let sid = _.parseInt(req.query.sid) || 0;
let bid = _.parseInt(`0${req.query.bid}`) || 0;
let sid = _.parseInt(`0${req.query.sid}`) || 0;
if (sid) {
return brandService.getShopFavNumAsync(sid).then((result) => {
... ... @@ -157,6 +157,8 @@ const num = (req, res, next) => {
res.json(result);
}).catch(next);
}
res.json({});
};
module.exports = {
... ...
... ... @@ -14,7 +14,7 @@ const cheerio = require('cheerio');
const helpers = global.yoho.helpers;
const config = global.yoho.config;
const crypto = global.yoho.crypto;
const logger = global.yoho.logger;
const videoPlayerTpl = require('../helper/video-player-tpl');
const productAPI = require('./detail-product-api');
... ... @@ -1520,6 +1520,7 @@ const showMainAsync = (data) => {
let productData = yield productAPI.getProductAsync(data.pid, data.uid, data.isStudent, data.vipLevel);
if (_.isEmpty(productData.data)) {
logger.error('app.product.data api wrong');
return Promise.reject({
code: 404,
message: 'app.product.data api wrong'
... ...
... ... @@ -896,10 +896,12 @@ exports.handleSeniorFilterData = (data, params) => {
});
_.forEach(data.standard, value => {
let sub = [],
standardName = _.get(value, 'standard_name', '');
if (!value) {
return;
}
// let parKey = `parameter_${value.standard_id}`;
let sub = [],
standardName = value.standard_name;
_.forEach(value.sub, subValue => {
let ched = qStandard[value.standard_id] === parseInt(subValue.standard_id, 10);
... ... @@ -1436,6 +1438,7 @@ exports.getListSeo = (channel, sorts, checked) => {
}
});
checked = checked || [];
_.forEach(checked, ck => {
if (!(ck && ck.itemType)) {
return false;
... ...
... ... @@ -28,81 +28,66 @@ const channelMap = {
const sortMap = {
boys: [
{misort: 12, viewNum: 5}, // 衬衫
{misort: 11, viewNum: 5}, // T恤
{misort: 16, viewNum: 5}, // 卫衣
{misort: 21, viewNum: 5}, // 大衣/风衣
{misort: 12, viewNum: 5}, // 衬衫
{misort: 44, viewNum: 5}, // 休闲/运动鞋
{misort: 46, viewNum: 5}, // 凉鞋/凉拖
{misort: 26, viewNum: 5}, // 休闲裤
{misort: 27, viewNum: 5}, // 牛仔裤
{misort: 45, viewNum: 5}, // 靴子
{misort: 226, viewNum: 5}, // 防风外套
{misort: 13, viewNum: 5}, // POLO
{misort: 28, viewNum: 5}, // 短裤
{misort: 13, viewNum: 5}, // POLO
{misort: 27, viewNum: 5}, // 牛仔裤
{misort: 21, viewNum: 5}, // 大衣/风衣
{misort: 16, viewNum: 5}, // 卫衣
{misort: 49, viewNum: 5}, // 双肩包
{misort: 61, viewNum: 5}, // 太阳镜/眼镜
{misort: 60, viewNum: 5}, // 帽子
{misort: 59, viewNum: 5}, // 手表
{misort: 66, viewNum: 5}, // 配饰
{misort: 50, viewNum: 5}, // 手拎包/单肩包
{misort: 65, viewNum: 5}, // 首饰
{misort: 309, viewNum: 5}, // 内裤
{misort: 237, viewNum: 5}, // 钱包/卡包/手包/钥匙包
{misort: 61, viewNum: 5} // 太阳镜/眼镜
{misort: 66, viewNum: 5}, // 配饰
{misort: 309, viewNum: 5} // 内裤
],
girls: [
{misort: 31, viewNum: 4}, // 连衣裙
{misort: 11, viewNum: 4}, // T恤
{misort: 32, viewNum: 4}, // 半身裙
{misort: 16, viewNum: 4}, // 卫衣
{misort: 257, viewNum: 4}, // 毛衣/针织
{misort: 21, viewNum: 4}, // 夹克
{misort: 12, viewNum: 4}, // 衬衫
{misort: 31, viewNum: 4}, // 连衣裙
{misort: 32, viewNum: 4}, // 半身裙
{misort: 44, viewNum: 4}, // 休闲/运动鞋
{misort: 26, viewNum: 4}, // 休闲裤
{misort: 27, viewNum: 4}, // 牛仔裤
{misort: 28, viewNum: 4}, // 短裤
{misort: 48, viewNum: 4}, // 时装鞋
{misort: 27, viewNum: 4}, // 牛仔裤
{misort: 26, viewNum: 4}, // 休闲裤
{misort: 46, viewNum: 4}, // 凉鞋/凉拖
{misort: 49, viewNum: 4}, // 双肩包
{misort: 50, viewNum: 4}, // 手拎包/单肩包
{misort: 39, viewNum: 4}, // 袜子
{misort: 60, viewNum: 4}, // 帽子
{misort: 61, viewNum: 4}, // 太阳镜/眼镜
{misort: 65, viewNum: 4}, // 首饰
{misort: 59, viewNum: 4}, // 手表
{misort: 259, viewNum: 4} // 美妆
{misort: 61, viewNum: 4}, // 太阳镜/眼镜
{misort: 66, viewNum: 4}, // 配饰
{misort: 39, viewNum: 4} // 袜子
],
kids: [
{misort: 396, viewNum: 4}, // 卫衣
{misort: 368, viewNum: 4}, // 休闲/运动鞋
{misort: 369, viewNum: 4}, // 休闲裤
{misort: 366, viewNum: 4}, // T恤
{misort: 404, viewNum: 4}, // 夹克
{misort: 400, viewNum: 4}, // 毛衣/针织
{misort: 451, viewNum: 4}, // POLO
{misort: 382, viewNum: 4}, // 凉鞋/凉拖
{misort: 368, viewNum: 4}, // 休闲/运动鞋
{misort: 371, viewNum: 4}, // 连衣裙
{misort: 372, viewNum: 4}, // 短裤
{misort: 369, viewNum: 4}, // 休闲裤
{misort: 388, viewNum: 4}, // 牛仔裤
{misort: 367, viewNum: 4}, // 衬衫
{misort: 462, viewNum: 4}, // 靴子
{misort: 406, viewNum: 4}, // 大衣/风衣
{misort: 386, viewNum: 4}, // 背心
{misort: 392, viewNum: 4}, // 双肩包
{misort: 448, viewNum: 4}, // 玩具娱乐
{misort: 382, viewNum: 4}, // 凉鞋/凉拖
{misort: 388, viewNum: 4}, // 牛仔裤
{misort: 417, viewNum: 4}, // 套装
{misort: 408, viewNum: 4}, // 袜子
{misort: 470, viewNum: 4}, // 连体裤
{misort: 372, viewNum: 4}, // 短裤
{misort: 370, viewNum: 4}, // 半身裙
{misort: 460, viewNum: 4} // 时装鞋
{misort: 448, viewNum: 4} // 玩具娱乐
],
lifestyle: [
{misort: 259, viewNum: 5}, // 美妆
{misort: 266, viewNum: 5}, // 居家
{misort: 103, viewNum: 5}, // 数码3C
{misort: 259, viewNum: 5}, // 美妆
{misort: 280, viewNum: 5}, // 玩具娱乐
{misort: 101, viewNum: 5} // 文具
... ...
{
"name": "yohobuy-node",
"version": "5.6.7",
"version": "5.6.8",
"private": true,
"description": "A New Yohobuy Project With Express",
"repository": {
... ...
... ... @@ -469,7 +469,7 @@
border: none;
background: #fff;
box-sizing: border-box;
padding: 7px 0 9px 10px;
padding-left: 10px;
}
.search-btn {
... ...
... ... @@ -297,7 +297,7 @@ exports.processProductList = (list, options) => {
isfew ? product.is_few = isfew : delete product.is_few;
}
if (options.query && _.isString(product.product_name)) {
let qreg = new RegExp(options.query, 'ig');
let qreg = new RegExp(options.query.replace('\\', '\\\\'), 'ig');
product.product_name = product.product_name.replace(qreg, '<span style="color:#c00;">$&</span>');
}
... ...