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
Email Patches
Plain Diff
Browse Files
Authored by
yyq
7 years ago
Commit
f0b2187e22ff51243beb5aef1a3bb343fab2916d
1 parent
470ada90
断码区
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
54 additions
and
39 deletions
apps/product/controllers/sale.js
apps/product/models/public-handler.js
apps/product/models/sale.js
apps/product/router.js
apps/product/views/action/sale/other.hbs
doraemon/middleware/htaccess/rules/www.js
apps/product/controllers/sale.js
View file @
f0b2187
...
...
@@ -79,7 +79,8 @@ exports.vip = (req, res, next) => {
req
.
ctx
(
sale
).
getSaleOthersData
(
params
,
channel
).
then
((
result
)
=>
{
res
.
render
(
'sale/other'
,
Object
.
assign
({
module
:
'product'
,
page
:
'sale'
page
:
'sale'
,
pageClass
:
'static-list-page'
},
{
saleList
:
result
,
headerData
:
result
.
headerData
...
...
@@ -127,7 +128,8 @@ exports.breakingYards = (req, res, next) => {
let
responseData
=
{
module
:
'product'
,
page
:
'sale'
page
:
'sale'
,
pageClass
:
'static-list-page'
};
req
.
ctx
(
sale
).
getSalebreakingYardsData
(
params
,
channel
).
then
((
result
)
=>
{
...
...
apps/product/models/public-handler.js
View file @
f0b2187
...
...
@@ -61,10 +61,11 @@ const handleSaleNewSaleSortData = (params) => {
* 处理断码区分类筛选数据
* @return {[type]} [description]
*/
const
handleSalebreakingYardsSortData
=
(
origin
,
params
)
=>
{
const
handleSalebreakingYardsSortData
=
(
origin
,
params
,
seatUrl
)
=>
{
let
dest
=
[];
if
(
!
_
.
isEmpty
(
params
.
sort
))
{
seatUrl
=
seatUrl
||
''
;
// 是否有分类筛选参数,如果有
_
.
forEach
(
params
.
sort
.
split
(
','
),
sortParam
=>
{
...
...
@@ -79,9 +80,7 @@ const handleSalebreakingYardsSortData = (origin, params) => {
_
.
forEach
(
value
.
sub
,
subValue
=>
{
dest
.
push
({
checked
:
+
params
.
size
===
+
subValue
.
size_id
,
href
:
handleFilterUrl
(
params
,
{
size
:
subValue
.
size_id
}),
href
:
seatUrl
.
replace
(
'{size}'
,
subValue
.
size_id
),
name
:
subValue
.
size_name
});
});
...
...
@@ -94,9 +93,7 @@ const handleSalebreakingYardsSortData = (origin, params) => {
_
.
forEach
(
value
.
sub
,
subValue
=>
{
dest
.
push
({
checked
:
+
params
.
size
===
+
subValue
.
size_id
,
href
:
handleFilterUrl
(
params
,
{
size
:
subValue
.
size_id
}),
href
:
seatUrl
.
replace
(
'{size}'
,
subValue
.
size_id
),
name
:
subValue
.
size_name
});
});
...
...
@@ -113,7 +110,7 @@ const handleSalebreakingYardsSortData = (origin, params) => {
* @param {[type]} param [description]
* @return {[type]} [description]
*/
const
handleCheckedData
=
(
params
,
origin
,
param
)
=>
{
const
handleCheckedData
=
(
params
,
origin
,
param
,
baseUrl
)
=>
{
let
dest
=
[];
// 品牌选中数据
...
...
@@ -126,7 +123,7 @@ const handleCheckedData = (params, origin, param) => {
dest
.
push
({
name
:
value
.
name
,
href
:
handle
FilterUrl
(
params
,
tempPatam
)
href
:
handle
StaticFilterUrl
(
baseUrl
,
params
,
tempPatam
)
});
}
});
...
...
@@ -458,9 +455,11 @@ exports.handleSaleFilterData = (origin, params, baseUrl) => {
name
:
'0~9'
}],
showMore
:
true
,
showMulti
:
true
showMulti
:
true
,
seatUrl
:
handleStaticFilterUrl
(
baseUrl
,
params
,
{
brand
:
'{seat}'
})
},
price
:
[],
priceSeatUrl
:
handleFilterUrl
(
baseUrl
,
params
,
{
price
:
'{seat}'
}),
gender
:
[],
checkedConditions
:
{
conditions
:
[]
...
...
@@ -486,13 +485,14 @@ exports.handleSaleFilterData = (origin, params, baseUrl) => {
if
(
origin
.
brand
)
{
let
count
=
0
;
const
brandHref
=
handleStaticFilterUrl
(
baseUrl
,
params
,
{
brand
:
'{brand}'
});
_
.
forEach
(
origin
.
brand
,
function
(
value
)
{
let
brand
=
{
checked
:
(
typeof
_
.
find
(
intBrands
,
o
=>
{
return
_
.
isEqual
(
o
,
value
.
id
);
})
!==
'undefined'
),
href
:
handleStaticFilterUrl
(
baseUrl
,
params
,
{
brand
:
value
.
id
}
),
href
:
brandHref
.
replace
(
'{brand}'
,
value
.
id
),
name
:
value
.
brand_name
,
key
:
value
.
brand_domain
,
id
:
value
.
id
...
...
@@ -529,13 +529,15 @@ exports.handleSaleFilterData = (origin, params, baseUrl) => {
let
priceRangechecked
=
false
;
if
(
!
_
.
isEmpty
(
origin
.
priceRange
))
{
const
priceHref
=
handleStaticFilterUrl
(
baseUrl
,
params
,
{
price
:
'{price}'
});
_
.
forEach
(
origin
.
priceRange
,
(
value
,
key
)
=>
{
if
(
params
.
price
===
key
)
{
priceRangechecked
=
true
;
}
let
price
=
{
checked
:
params
.
price
===
key
,
href
:
handleStaticFilterUrl
(
baseUrl
,
params
,
{
price
:
key
}
),
href
:
priceHref
.
replace
(
'{price}'
,
key
),
name
:
value
};
...
...
@@ -559,14 +561,16 @@ exports.handleSaleFilterData = (origin, params, baseUrl) => {
}
}
const
genderHref
=
handleStaticFilterUrl
(
baseUrl
,
params
,
{
gender
:
'{gender}'
});
// 处理性别数据
dest
.
gender
=
[{
name
:
'BOYS'
,
href
:
handleStaticFilterUrl
(
baseUrl
,
params
,
{
gender
:
'1,3'
}
),
href
:
genderHref
.
replace
(
'{gender}'
,
'1,3'
),
checked
:
params
.
gender
===
'1,3'
},
{
name
:
'GIRLS'
,
href
:
handleStaticFilterUrl
(
baseUrl
,
params
,
{
gender
:
'2,3'
}
),
href
:
genderHref
.
replace
(
'{gender}'
,
'2,3'
),
checked
:
params
.
gender
===
'2,3'
}];
...
...
@@ -576,53 +580,49 @@ exports.handleSaleFilterData = (origin, params, baseUrl) => {
// 最新降价筛选数据处理
dest
.
checkedConditions
.
conditions
=
_
.
union
(
dest
.
checkedConditions
.
conditions
,
handleCheckedData
(
params
,
dest
.
discount
,
'p_d'
));
handleCheckedData
(
params
,
dest
.
discount
,
'p_d'
,
baseUrl
));
}
// 尺码处理
if
(
!
_
.
isEmpty
(
origin
.
size
))
{
const
sizeHref
=
handleStaticFilterUrl
(
baseUrl
,
params
,
{
size
:
'{size}'
});
if
(
params
.
saleType
===
'5'
)
{
// 断码区尺码处理
dest
.
size
=
handleSalebreakingYardsSortData
(
origin
.
size
,
params
);
dest
.
size
=
handleSalebreakingYardsSortData
(
origin
.
size
,
params
,
sizeHref
);
}
else
{
dest
.
size
=
[];
if
(
_
.
isArray
(
origin
.
size
))
{
_
.
forEach
(
origin
.
size
,
value
=>
{
dest
.
size
.
push
({
checked
:
parseInt
(
params
.
size
,
10
)
===
parseInt
(
value
.
size_id
,
10
),
href
:
handleStaticFilterUrl
(
baseUrl
,
params
,
{
size
:
value
.
size_id
}),
href
:
sizeHref
.
replace
(
'{size}'
,
value
.
size_id
),
name
:
value
.
size_name
});
});
}
else
{
dest
.
size
.
push
({
checked
:
parseInt
(
params
.
size
,
10
)
===
parseInt
(
origin
.
size
.
size_id
,
10
),
href
:
handleStaticFilterUrl
(
baseUrl
,
params
,
{
size
:
origin
.
size
.
size_id
}),
href
:
sizeHref
.
replace
(
'{size}'
,
origin
.
size
.
size_id
),
name
:
origin
.
size
.
size_name
});
}
}
dest
.
checkedConditions
.
conditions
=
_
.
union
(
dest
.
checkedConditions
.
conditions
,
handleCheckedData
(
params
,
dest
.
size
,
'size'
));
handleCheckedData
(
params
,
dest
.
size
,
'size'
,
baseUrl
));
}
// 年龄处理
dest
.
ageLevel
=
origin
.
ageLevel
;
_
.
forEach
(
dest
.
ageLevel
,
item
=>
{
item
.
href
=
handleStaticFilterUrl
(
baseUrl
,
params
,
{
age_level
:
item
.
id
});
const
ageHref
=
handleStaticFilterUrl
(
baseUrl
,
params
,
{
age_level
:
'{age}'
});
_
.
forEach
(
dest
.
ageLevel
,
item
=>
{
item
.
href
=
ageHref
.
replace
(
'{age}'
,
item
.
id
);
item
.
checked
=
params
.
age_level
===
item
.
id
;
});
// 如果年龄就一个,默认选中
...
...
@@ -640,7 +640,7 @@ exports.handleSaleFilterData = (origin, params, baseUrl) => {
// 处理频道筛选数据
dest
.
checkedConditions
.
conditions
=
_
.
union
(
dest
.
checkedConditions
.
conditions
,
handleCheckedData
(
params
,
dest
.
gender
,
'gender'
));
handleCheckedData
(
params
,
dest
.
gender
,
'gender'
,
baseUrl
));
// 处理品牌筛选数据
if
(
dest
.
brand
.
brandsShow
)
{
...
...
@@ -650,11 +650,11 @@ exports.handleSaleFilterData = (origin, params, baseUrl) => {
// 处理价格筛选数据
dest
.
checkedConditions
.
conditions
=
_
.
union
(
dest
.
checkedConditions
.
conditions
,
handleCheckedData
(
params
,
dest
.
price
,
'price'
));
handleCheckedData
(
params
,
dest
.
price
,
'price'
,
baseUrl
));
// 处理价格筛选数据
dest
.
checkedConditions
.
conditions
=
_
.
union
(
dest
.
checkedConditions
.
conditions
,
handleCheckedData
(
params
,
dest
.
ageLevel
,
'age_level'
));
handleCheckedData
(
params
,
dest
.
ageLevel
,
'age_level'
,
baseUrl
));
return
dest
;
};
...
...
apps/product/models/sale.js
View file @
f0b2187
...
...
@@ -448,6 +448,8 @@ function getSaleDiscountData(params, channel) {
* @returns {*|Promise.<TResult>}
*/
function
getSalebreakingYardsData
(
params
,
channel
)
{
const
baseUrl
=
`
/
$
{
_
.
toLower
(
channel
)}
-
sale
/
breakingYards
`
;
return
api
.
all
([
headerModel
.
requestHeaderData
(
channel
),
this
.
saleApi
.
getSaleBannerList
(
contentCode
[
channel
].
breakCode
),
...
...
@@ -490,7 +492,8 @@ function getSalebreakingYardsData(params, channel) {
// 处理筛选条件数据
if
(
subResult
[
0
].
code
===
200
)
{
finalResult
.
leftContent
=
publicHandler
.
handleSaleSortData
(
subResult
[
0
].
data
.
filter
.
group_sort
,
params
);
publicHandler
.
handleSaleSortData
(
subResult
[
0
].
data
.
filter
.
group_sort
,
params
,
''
,
baseUrl
);
}
// 处理商品数据
...
...
@@ -499,13 +502,13 @@ function getSalebreakingYardsData(params, channel) {
if
(
!
_
.
isEmpty
(
subResult
[
1
].
data
.
filter
))
{
finalResult
.
filters
=
publicHandler
.
handleSaleFilterData
(
Object
.
assign
(
subResult
[
1
].
data
.
filter
,
{
size
:
result
[
2
].
data
}),
params
);
params
,
baseUrl
);
}
Object
.
assign
(
finalResult
,
{
goods
:
productProcess
.
processProductList
(
subResult
[
1
].
data
.
product_list
),
opts
:
publicHandler
.
handleSaleOptsData
(
params
,
subResult
[
1
].
data
.
total
),
opts
:
publicHandler
.
handleSaleOptsData
(
params
,
subResult
[
1
].
data
.
total
,
''
,
baseUrl
),
totalCount
:
subResult
[
1
].
data
.
total
,
footPager
:
publicHandler
.
handlePagerData
(
subResult
[
1
].
data
.
total
,
params
)
footPager
:
listHandler
.
handlePagerData
(
subResult
[
1
].
data
.
total
,
params
,
true
,
baseUrl
)
});
// 处理所有商品标题数据
...
...
apps/product/router.js
View file @
f0b2187
...
...
@@ -59,6 +59,7 @@ router.get('/sale/vip', sale.vip); // VIP 活动专区
router
.
get
(
'/sale/vip/:pathQs'
,
paramParse
,
sale
.
vip
);
// VIP 活动专区
router
.
get
(
'/sale/discount/detail'
,
sale
.
discount
);
// 折扣专场详情页
router
.
get
(
'/sale/breakingYards'
,
sale
.
breakingYards
);
// 断码区
router
.
get
(
'/sale/breakingYards/:pathQs'
,
paramParse
,
sale
.
breakingYards
);
// 断码区
router
.
get
(
'/sale/newSale'
,
sale
.
newSale
);
// 最新降价
router
.
get
(
'/sale/special/detail'
,
sale
.
special
);
// sale活动页 原PHP sale.yohobuy.com
router
.
get
(
'/sale/goods'
,
sale
.
getGoodsList
);
// ajax 获取商品列表
...
...
apps/product/views/action/sale/other.hbs
View file @
f0b2187
<div
class=
"new-sale-page product-page yoho-page sale-discount-page"
>
<div
class=
"new-sale-page product-page yoho-page sale-discount-page
{{
pageClass
}}
"
>
{{#
saleList
}}
{{>
sale
/
sale-banner
}}
<div
class=
"center-content clearfix"
>
{{#
pathNav
}}
{{#
pathNav
}}
{{>
common
/
path-nav
}}
{{/
pathNav
}}
{{#
saleTitle
}}
<div
class=
"header-title"
>
{{
name
}}
...
...
doraemon/middleware/htaccess/rules/www.js
View file @
f0b2187
...
...
@@ -27,6 +27,15 @@ module.exports = [
},
{
type
:
TYPE
.
redirect
,
origin
:
/^
\/
product
\/
sale
\/(
vip|breakingYards
)(
.*
)
$/
,
target
:
(
req
,
match
,
type
)
=>
{
let
channel
=
req
.
query
.
channel
||
req
.
yoho
.
channel
;
return
helpers
.
urlFormat
(
`
/
$
{
channel
}
-
sale
/
$
{
type
}
`
);
}
},
{
type
:
TYPE
.
redirect
,
origin
:
'/product/sale/?msort=10'
,
target
:
helpers
.
urlFormat
(
'/product/lifestyle-sale/'
)
},
...
...
Please
register
or
login
to post a comment