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
liangxs
9 years ago
Commit
006ecc56f0661dfd083b8f4e7ed45ea4ab0902b1
1 parent
0d905aec
新品上架楼层
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
204 additions
and
44 deletions
app.js
apps/channel/controllers/index.js
apps/channel/models/index.js
doraemon/middleware/images.js
app.js
View file @
006ecc5
...
...
@@ -33,6 +33,7 @@ app.locals.version = pkg.version;
// 指定libray目录
global
.
library
=
path
.
resolve
(
'./library'
);
global
.
middleware
=
path
.
resolve
(
'./doraemon/middleware'
);
app
.
set
(
'view engine'
,
'.hbs'
);
...
...
apps/channel/controllers/index.js
View file @
006ecc5
...
...
@@ -6,6 +6,7 @@
'use strict'
;
const
_
=
require
(
'lodash'
);
const
channelModel
=
require
(
'../models/index'
);
...
...
@@ -22,12 +23,30 @@ exports.getbrandFloorDataAjax = (req, res) => {
};
exports
.
getNewArrival
=
(
req
,
res
)
=>
{
channelModel
.
getNewArrival
().
then
(
data
=>
{
let
result
=
{
code
:
200
,
goods
:
data
};
let
reqBody
=
req
.
body
,
pageIndex
=
reqBody
.
pageIndex
,
pageCount
=
reqBody
.
pageCount
,
channel
=
reqBody
.
type
,
goods
=
[],
result
=
{};
if
(
pageIndex
<
0
)
{
pageIndex
=
0
;
}
if
(
pageCount
<
0
||
pageCount
>
50
)
{
pageCount
=
20
;
}
channelModel
.
getNewArrival
(
channel
).
then
(
data
=>
{
goods
=
_
.
slice
(
data
,
pageIndex
,
pageIndex
+
pageCount
);
if
(
goods
.
length
!==
0
)
{
result
=
{
code
:
200
,
goods
:
goods
};
}
res
.
send
(
result
);
});
};
...
...
apps/channel/models/index.js
View file @
006ecc5
...
...
@@ -11,6 +11,7 @@ const ServiceAPI = require(`${global.library}/api`).ServiceAPI;
const
SearchAPI
=
require
(
`
$
{
global
.
library
}
/api`
)
.SearchAPI
;
const
sign
=
require
(
`
$
{
global
.
library
}
/sign`
)
;
const
helpers
=
require
(
`
$
{
global
.
library
}
/helpers`
)
;
const
images
=
require
(
`
$
{
global
.
middleware
}
/images`
)
;
const
serviceApi
=
new
ServiceAPI
();
...
...
@@ -42,6 +43,30 @@ const channelMap = {
}
};
const
sortList
=
[
{
sort
:
147
,
viewNum
:
5
},
// 休闲运动鞋
{
sort
:
129
,
viewNum
:
5
},
// 休闲裤
{
sort
:
152
,
viewNum
:
5
},
// 双肩包
{
misort
:
11
,
viewNum
:
5
},
// T恤
{
sort
:
115
,
viewNum
:
5
},
// 衬衫
{
sort
:
130
,
viewNum
:
5
},
// 牛仔裤
{
misort
:
60
,
viewNum
:
5
},
// 帽子
{
sort
:
124
,
viewNum
:
5
},
// 夹克
{
sort
:
119
,
viewNum
:
5
},
// 卫衣
{
sort
:
162
,
viewNum
:
5
},
// 手表
{
sort
:
148
,
viewNum
:
5
},
// 靴子
{
misort
:
65
,
viewNum
:
5
},
// 首饰
{
sort
:
151
,
viewNum
:
5
},
// 时装鞋
{
misort
:
61
,
viewNum
:
5
},
// 太阳镜
{
misort
:
39
,
viewNum
:
5
},
// 袜子
{
sort
:
346
,
viewNum
:
5
},
// 运动裤
{
sort
:
131
,
viewNum
:
5
},
// 短裤
{
misort
:
66
,
viewNum
:
5
},
// 配饰
{
misort
:
309
,
viewNum
:
5
},
// 内裤
{
misort
:
30
,
viewNum
:
5
},
// 打底裤/紧身裤
{
sort
:
342
,
viewNum
:
5
}
// 邮差包
];
// 构建url
const
httpBuildQuery
=
data
=>
{
return
searchApi
.
get
(
'/search.json'
,
data
);
...
...
@@ -96,9 +121,20 @@ const formatProduct = (productData, showTags, showNew, showSale, width, height,
productData
.
market_price
=
false
;
}
// 设置默认图片
_
.
forEach
(
productData
.
goods_list
,
item
=>
{
if
(
item
.
is_default
===
'Y'
)
{
productData
.
default_images
=
item
.
images_url
;
}
});
if
(
!
productData
.
default_images
)
{
productData
.
default_images
=
productData
.
goods_list
[
0
].
images_url
;
}
result
.
id
=
productData
.
product_skn
;
result
.
product_id
=
productData
.
product_id
;
result
.
thumb
=
'http://img10.static.yhbimg.com/goodsimg/2016/05/23/06/0145382aaf7f6b2bcb9f73bcc26fc14228.jpg?imageView/2/w/280/h/373'
;
result
.
thumb
=
images
.
getImageUrl
(
productData
.
default_images
,
width
,
height
)
;
result
.
name
=
productData
.
product_name
;
result
.
price
=
!
productData
.
market_price
?
false
:
productData
.
market_price
;
result
.
salePrice
=
productData
.
sales_price
;
...
...
@@ -419,42 +455,18 @@ const getNewGoodsFloorData = args => {
* @return array
*/
exports
.
getNewArrival
=
channel
=>
{
const
sortList
=
[
{
sort
:
147
,
viewNum
:
5
},
// 休闲运动鞋
{
sort
:
129
,
viewNum
:
5
},
// 休闲裤
{
sort
:
152
,
viewNum
:
5
},
// 双肩包
{
misort
:
11
,
viewNum
:
5
},
// T恤
{
sort
:
115
,
viewNum
:
5
},
// 衬衫
{
sort
:
130
,
viewNum
:
5
},
// 牛仔裤
{
misort
:
60
,
viewNum
:
5
},
// 帽子
{
sort
:
124
,
viewNum
:
5
},
// 夹克
{
sort
:
119
,
viewNum
:
5
},
// 卫衣
{
sort
:
162
,
viewNum
:
5
},
// 手表
{
sort
:
148
,
viewNum
:
5
},
// 靴子
{
misort
:
65
,
viewNum
:
5
},
// 首饰
{
sort
:
151
,
viewNum
:
5
},
// 时装鞋
{
misort
:
61
,
viewNum
:
5
},
// 太阳镜
{
misort
:
39
,
viewNum
:
5
},
// 袜子
{
sort
:
346
,
viewNum
:
5
},
// 运动裤
{
sort
:
131
,
viewNum
:
5
},
// 短裤
{
misort
:
66
,
viewNum
:
5
},
// 配饰
{
misort
:
309
,
viewNum
:
5
},
// 内裤
{
misort
:
30
,
viewNum
:
5
},
// 打底裤/紧身裤
{
sort
:
342
,
viewNum
:
5
}
// 邮差包
];
// 一级缓存
let
rel
=
[];
// 接口
let
params
=
{
// 'shelve_time' : new Date().getTime()+','+d.getTime(),
order
:
'shelve_time:desc'
,
status
:
1
,
sales
:
'Y'
,
attribute_not
:
2
,
stocknumber
:
3
};
let
rel
=
[],
today
=
new
Date
(),
todayMil
=
today
.
getTime
().
toString
().
substr
(
0
,
10
),
startDayMil
=
(
today
.
setMonth
(
today
.
getMonth
()
-
5
)).
toString
().
substr
(
0
,
10
),
params
=
{
order
:
'shelve_time:desc'
,
status
:
1
,
sales
:
'Y'
,
attribute_not
:
2
,
stocknumber
:
3
,
shelve_time
:
`
$
{
startDayMil
},
$
{
todayMil
}
`
};
// 最新上架参数(男首频道:gender=1,3 女首频道gender=2,4)
if
(
channel
===
'boys'
)
{
...
...
@@ -490,8 +502,8 @@ exports.getNewArrival = channel => {
const
requestContent
=
type
=>
{
let
data
=
sign
.
apiSign
({
/* eslint-disable */
client_type
:
'web'
,
/* eslint-disable */
client_type
:
'web'
,
/* eslint-enable */
content_code
:
channelMap
[
type
||
'boys'
].
code
,
gender
:
channelMap
[
type
||
'boys'
].
gender
,
...
...
doraemon/middleware/images.js
0 → 100644
View file @
006ecc5
/**
* 登录判断
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2016/4/25
*/
'use strict'
;
const
_
=
require
(
'lodash'
);
const
// domain = '.static.yhbimg.com',
defaultImage
=
'/2015/08/25/02/01dd632a6e07bfef457ce4beda21dd6413.png'
,
qiniuDomain
=
'yhfair.qiniudn.com'
,
domainList
=
{
'01'
:
[
'img10.static.yhbimg.com'
,
'img11.static.yhbimg.com'
],
'02'
:
[
'img12.static.yhbimg.com'
,
'img13.static.yhbimg.com'
],
'yhb-head'
:
'head.static.yhbimg.com'
};
const
regexp
=
/
(?:\{)([
a-zA-z
][^\s\}]
+
)(?:\})
/g
;
const
myReplace
=
(
tem
,
data
)
=>
{
return
tem
.
replace
(
regexp
,
function
(
fullMatch
,
capture
)
{
if
(
data
[
capture
])
{
return
data
[
capture
];
}
else
{
return
fullMatch
;
}
});
};
const
makeBaseUrl
=
(
domain
,
key
)
=>
{
encodeURIComponent
(
key
).
replace
(
'%2F'
,
'/'
);
return
`
http
:
//${domain}/${key}`;
};
const
makeTemplateRequest
=
url
=>
{
let
ops
=
[
'{mode}'
,
'w/{width}'
,
'h/{height}'
];
if
(
ops
.
length
===
0
)
{
return
url
;
}
return
url
+
'?imageView/'
+
ops
.
join
(
'/'
);
};
const
getImgTemplateUrl
=
(
fileName
,
mode
,
domain
)
=>
{
// 默认值
if
(
!
mode
)
{
mode
=
1
;
}
if
(
!
domain
)
{
domain
=
null
;
}
if
(
domain
===
null
)
{
domain
=
qiniuDomain
;
}
let
baseUrl
=
makeBaseUrl
(
domain
,
fileName
);
return
makeTemplateRequest
(
baseUrl
);
};
const
getDomain
=
(
bucket
,
fileName
)
=>
{
let
domain
=
''
;
if
(
bucket
in
domainList
)
{
domain
=
domainList
.
bucket
;
}
else
{
let
node
=
fileName
.
substr
(
15
,
2
);
if
(
node
in
domainList
)
{
let
urlList
=
domainList
[
node
];
let
nodeNum
=
_
.
random
(
urlList
.
length
-
1
);
domain
=
urlList
[
nodeNum
];
}
}
return
domain
;
};
const
url
=
(
fileName
,
bucket
,
mode
)
=>
{
// 默认值
if
(
!
mode
)
{
mode
=
1
;
}
if
(
!
bucket
)
{
bucket
=
'yhfair'
;
}
let
domain
=
getDomain
(
bucket
,
fileName
);
return
getImgTemplateUrl
(
bucket
+
fileName
,
mode
,
domain
);
};
const
template
=
(
fileName
,
bucket
,
mode
)
=>
{
// 默认值
if
(
!
mode
)
{
mode
=
1
;
}
if
(
!
bucket
)
{
bucket
=
'yhfair'
;
}
return
url
(
fileName
,
bucket
,
mode
);
};
exports
.
getImageUrl
=
(
fileName
,
width
,
height
,
mode
,
bucket
)
=>
{
// 默认值
if
(
!
mode
)
{
mode
=
2
;
}
if
(
!
bucket
)
{
bucket
=
'goodsimg'
;
}
if
(
typeof
(
fileName
)
!==
'string'
)
{
return
template
(
defaultImage
,
bucket
,
mode
);
}
if
(
fileName
.
indexOf
(
'http://'
)
!==
0
)
{
fileName
=
template
(
fileName
,
bucket
,
mode
);
}
return
myReplace
(
fileName
,
{
width
:
width
,
height
:
height
,
mode
:
mode
});
};
...
...
Please
register
or
login
to post a comment