Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
yohobuy-node
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
1
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Plain Diff
Browse Files
Authored by
yyq
9 years ago
Commit
483a7082a3aa93ac4a71094065211e031f04b68d
2 parents
e63ba97c
0e12913b
Merge branch 'release/newSearch' of git.yoho.cn:fe/yohobuy-node into release/newSearch
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
62 additions
and
23 deletions
apps/product/controllers/list.js
apps/product/controllers/search.js
apps/product/models/list.js
apps/product/models/search-api.js
apps/product/models/search.js
apps/product/router.js
doraemon/middleware/error-handler.js
doraemon/middleware/sub-domain.js
public/js/header.js
apps/product/controllers/list.js
View file @
483a708
...
...
@@ -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'
});
...
...
apps/product/controllers/search.js
View file @
483a708
...
...
@@ -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
);
};
...
...
apps/product/models/list.js
View file @
483a708
...
...
@@ -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', []),
...
...
apps/product/models/search-api.js
View file @
483a708
...
...
@@ -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
;
}
});
...
...
apps/product/models/search.js
View file @
483a708
...
...
@@ -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
;
...
...
apps/product/router.js
View file @
483a708
...
...
@@ -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
);
// 学校地区
...
...
doraemon/middleware/error-handler.js
View file @
483a708
...
...
@@ -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
();
});
}
...
...
doraemon/middleware/sub-domain.js
View file @
483a708
...
...
@@ -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'
;
...
...
public/js/header.js
View file @
483a708
...
...
@@ -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
();
...
...
Please
register
or
login
to post a comment