search.js
2.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/**
* search controller
* @author: wsl<shuiling.wang@yoho.cn>
* @date: 2016/7/21
*/
'use strict';
const mRoot = '../models';
const headerModel = require('../../../doraemon/models/header');
const searchModel = require(`${mRoot}/search`);
const _ = require('lodash');
const helpers = global.yoho.helpers;
const list = (req, res) => {
let params = Object.assign({}, req.query);
let title = '';
let query = req.query.query;
let isQueryFirstClass = false; // 标识用户搜的是不是一级品类
let isQuerySecondClass = false; // 标识用户搜的是不是二级品类
let domain = null;
params = _.assign({
isSearch: true,
cartUrl: helpers.urlFormat('/cart/index/index')
}, params);
// 品类 品牌
if (query) {
domain = searchModel.getAllBrandNames(query);
// 跳转到品牌商品列表页
//if (domain !== null && !params.shop_id) {
// $url = Helpers::url('', array(
// 'from' => 'search',
// 'query' => $query
//), $domain);
// $this->go($url);
//}
} else {
params.query = '';
}
// 搜索是一级品类
if (isQueryFirstClass) {
title = '全部' + query;
} // 搜索是二级品类
else if (isQuerySecondClass) {
title = query;
} // 搜索其它内容
else {
if (query) {
params.search = {
default: query === '' ? false : query,
url: ''
};
}
title = '搜索';
}
res.render('search/list', {
module: 'product',
page: 'search-list',
pageHeader: headerModel.setNav({
navTitle: title
}),
goodList: params,
pageFooter: true
});
};
const search = (req, res, next) => {
let params = Object.assign({}, req.query);
searchModel.getSearchData(params).then((result) => {
res.render('search/page', {
layout: false,
new: result
});
}).catch(next);
};
/**
* 筛选
* @param {[object]} req
* @param {[object]} res
* @return {[type]}
*/
let filter = (req, res, next) => {
let params = Object.assign({}, req.query);
searchModel.getFilterData(params).then((result) => {
res.render('search/filter', {
layout: false,
params: params,
filter: result
});
}).catch(next);
};
module.exports = {
list,
filter,
search
};