Authored by yyq

Merge branch 'release/newSearch' of git.yoho.cn:fe/yohobuy-node into release/newSearch

... ... @@ -103,7 +103,8 @@ exports.brand = (req, res, next) => {
default:
// 品牌
return list.getBrandData(req.query, Object.assign({uid: req.user.id}, brandInfo)).then(result => {
return list.getBrandData(req.query, Object.assign({uid: req.user.id}, brandInfo),
req.yoho.channel).then(result => {
Object.assign(resData, result, {
page: 'search'
});
... ...
... ... @@ -17,7 +17,7 @@ const search = require(`${mRoot}/search`);
exports.index = (req, res, next) => {
let resData = {};
search.getSearchData(req.query).then(result => {
search.getSearchData(req.query, req.yoho.channel).then(result => {
Object.assign(resData, result);
res.render('search/index', resData);
}).catch(next);
... ... @@ -44,3 +44,31 @@ exports.suggest = (req, res, next) => {
}).catch(next);
};
exports.suggest4Old = (req, res, next) => {
search.getSuggest(Object.assign({}, req.query, { keyword: req.query.query })).then(result => {
let dest = {
code: 200,
message: 'suggest'
};
let data = [];
if (result) {
for (let it of result) {
let item = '<li>' +
`<a style="display: block;" href="${it.href}" class="clearfix clear search-item" title="${it.keyword}" act="${it.href}">` + // eslint-disable-line
`<span class="searchvalue" >${it.keyword}</span><span class="valuenum">约${it.count}个商品</span>` + // eslint-disable-line
'</a>' +
'</li>';
data.push(item);
}
}
dest.data = data;
res.send(req.query.callback + '(' + JSON.stringify(dest) + ')');
}).catch(next);
};
... ...
... ... @@ -87,7 +87,7 @@ exports.getListData = (params, channel) => {
// 获取商品数据和顶部筛选条件
if (result[2].code === 200) {
Object.assign(finalResult.list, {
//filters: searchHandler.handleFilterData(result[2].data.filter, params),
// filters: searchHandler.handleFilterData(result[2].data.filter, params),
filters: searchHandler.handleFilterDataAll(result[2].data, params),
opts: searchHandler.handleOptsData(params, result[2].data.total, result[2].data.filter),
totalCount: result[2].data.total,
... ... @@ -97,7 +97,7 @@ exports.getListData = (params, channel) => {
});
// 获取高级筛选条件
/*if (finalResult.list && finalResult.list.filters) {
/* if (finalResult.list && finalResult.list.filters) {
Object.assign(finalResult.list.filters, searchHandler.handleSeniorFilterData({
style: _.get(result[2], 'data.filter.style', []),
standard: _.get(result[2], 'data.standard', [])
... ... @@ -152,7 +152,7 @@ exports.getListNewData = (params, channel) => {
// 获取商品数据和顶部筛选条件
if (result[2].code === 200) {
Object.assign(finalResult.list, {
//filters: searchHandler.handleFilterData(result[2].data.filter, params),
// filters: searchHandler.handleFilterData(result[2].data.filter, params),
filters: searchHandler.handleFilterDataAll(result[2].data, params),
opts: searchHandler.handleOptsData(params, result[2].data.total, result[2].data.filter),
totalCount: result[2].data.total,
... ... @@ -162,7 +162,7 @@ exports.getListNewData = (params, channel) => {
});
// 获取高级筛选条件
/*if (finalResult.list && finalResult.list.filters) {
/* if (finalResult.list && finalResult.list.filters) {
Object.assign(finalResult.list.filters, searchHandler.handleSeniorFilterData({
style: _.get(result[2], 'data.filter.style', []),
standard: _.get(result[2], 'data.standard', [])
... ... @@ -210,14 +210,14 @@ exports.getBrandInfo = (params) => {
/**
* 获取品牌页面数据
*/
exports.getBrandData = (params, extra) => {
exports.getBrandData = (params, extra, channel) => {
// 设置品牌默认排序方式
let order = params.order || 'b_w_desc';
// 调用接口
let apiMethod = [
headerModel.requestHeaderData(),
headerModel.requestHeaderData(channel),
searchApi.getSortList({brand: extra.brandId}),
searchApi.getProductList(Object.assign({order: order, brand: extra.brandId}, params))
... ... @@ -255,7 +255,7 @@ exports.getBrandData = (params, extra) => {
});
// 获取高级筛选条件
/*if (finalResult.list && finalResult.list.filters) {
/* if (finalResult.list && finalResult.list.filters) {
Object.assign(finalResult.list.filters, searchHandler.handleSeniorFilterData({
style: _.get(result[2], 'data.filter.style', []),
... ...
... ... @@ -86,7 +86,7 @@ const getProductList = (params) => {
cache.set(cKey, Object.assign({}, {
filter: result.data.filter,
standard: result.data.standard
}));
}), 3600);
}
}
return result;
... ... @@ -126,7 +126,9 @@ const getSortList = (params) => {
} else {
return yohoApi.get('', finalParams).then(ret => {
cache.set(cKey, ret);
if (ret && ret.code === 200) {
cache.set(cKey, ret, 3600);
}
return ret;
});
}
... ... @@ -243,7 +245,7 @@ const getBrandShop = (query) => {
return yohoApi.get('', finalParams).then(ret => {
if (ret && ret.code === 200) {
cache.set(cKey, ret.data);
cache.set(cKey, ret.data, 3600);
return ret.data;
}
});
... ... @@ -280,7 +282,7 @@ const getShopsByBrandId = bid => {
return yohoApi.get('', finalParams).then(ret => {
if (ret && ret.code === 200) {
cache.set(cKey, ret.data);
cache.set(cKey, ret.data, 3600);
return ret.data;
}
});
... ...
... ... @@ -16,12 +16,13 @@ const searchHandler = require('./search-handler');
* @param {[type]} origin [description]
* @return {[type]} [description]
*/
exports.getSearchData = (params) => {
exports.getSearchData = (params, channel) => {
let mlimit = params && params.limit && params.limit > 0 ? params.limit - 1 : 59;
/** 处理页面数据 **/
let nparams = {};
if (params && params.price) {
let mp = params.price.split(',');
let nmp = [];
... ... @@ -33,7 +34,7 @@ exports.getSearchData = (params) => {
// 调用接口
let apiMethod = [
headerModel.requestHeaderData(),
headerModel.requestHeaderData(channel),
searchApi.getSortList(Object.assign({}, params, nparams)),
searchApi.getProductList(Object.assign({}, params, {limit: mlimit}, nparams)),
searchApi.getShopList(params)
... ... @@ -71,8 +72,7 @@ exports.getSearchData = (params) => {
Object.assign({showDiscount: false}, params)),
latestWalk: 7,
hasNextPage: searchHandler.handleNextPage(params, result[2].data.total),
shopEntry: result[3]// ,
// brandBanner : isset($data['brand']) && !empty($data['brand']) ? self::getBannerFormat($data['brand'], $options['brandBanner']) : array();
shopEntry: result[3]
});
}
return finalResult;
... ...
... ... @@ -30,6 +30,7 @@ const list = require(`${cRoot}/list`);
// 搜索页
const search = require(`${cRoot}/search`);
// 学生优惠controller
const students = require(`${cRoot}/students`);
... ... @@ -65,6 +66,8 @@ router.get('/search/index', search.index);
// 搜索提示
router.get('/search/suggest', search.suggest);
router.get('/api/suggest', search.suggest4Old);
// 商品分类列表页
router.get('/list/index', list.index);
... ... @@ -86,6 +89,7 @@ router.post('/index/getAdnav', list.getAdnav);
// 判断用户是否收藏品牌
router.post('/index/isFavoriteBrand', list.isFavoriteBrand);
// 学生优惠routers
router.get('/students', students.index); // students 首页
router.get('/students/schoolArea', students.schoolArea); // 学校地区
... ...
... ... @@ -14,7 +14,7 @@ exports.notFound = () => {
});
}
headerModel.requestHeaderData().then((result) => {
headerModel.requestHeaderData(req.yoho.channel).then((result) => {
return res.status(404).render('error/404', {
module: 'common',
page: 'error',
... ... @@ -52,7 +52,7 @@ exports.serverError = () => {
});
};
return headerModel.requestHeaderData().then(renderErrPage).catch(() => {
return headerModel.requestHeaderData(req.yoho.channel).then(renderErrPage).catch(() => {
renderErrPage();
});
}
... ...
... ... @@ -16,7 +16,11 @@ module.exports = () => {
case 'item':// 商品详情页
break;
case 'search': // 搜索
req.url = '/product/search/index';
if (!req.path) {
req.url = '/product/search/index';
} else if (req.path === '/api/suggest') {
req.url = '/product/api/suggest';
}
break;
case 'list': // 商品列表
req.url = req.path === '/new' ? '/product/list/new' : '/product/list/index';
... ...
... ... @@ -280,7 +280,7 @@ function searchSuggest(key) {
keyword: key
};
$.getJSON('/product/search/suggest?callback=?', param, function(jsonData) {
$.getJSON('//search.yohobuy.com/product/search/suggest?callback=?', param, function(jsonData) {
var searchSuggestHtml;
if (jsonData.code === 200) {
... ... @@ -763,7 +763,7 @@ function actionAddKeyWords() {
color: '#e0e0e0'
});
$querykey.val(defaultsearch);
$querykey.on('focus', function(e) {
$querykey.on('focus', function() {
$querykey.css({
color: '#000'
});
... ... @@ -778,4 +778,4 @@ function actionAddKeyWords() {
}
actionCover();
actionAddKeyWords();
\ No newline at end of file
actionAddKeyWords();
... ...