Merge branch 'feature/usercenter' of git.yoho.cn:fe/yohobuywap-node into feature/usercenter
Showing
13 changed files
with
244 additions
and
16 deletions
1 | -//帮助 by acgpiano | 1 | +// 帮助 by acgpiano |
2 | 'use strict'; | 2 | 'use strict'; |
3 | const headerModel = require('../../../doraemon/models/header'), // 头部model | 3 | const headerModel = require('../../../doraemon/models/header'), // 头部model |
4 | model = require('../models/help'); | 4 | model = require('../models/help'); |
@@ -31,4 +31,4 @@ exports.helpDetail = (req, res, next) => { | @@ -31,4 +31,4 @@ exports.helpDetail = (req, res, next) => { | ||
31 | detail: result, | 31 | detail: result, |
32 | }); | 32 | }); |
33 | }).catch(next); | 33 | }).catch(next); |
34 | -} | ||
34 | +}; |
@@ -91,8 +91,14 @@ exports.record = (req, res) => { | @@ -91,8 +91,14 @@ exports.record = (req, res) => { | ||
91 | 91 | ||
92 | }; | 92 | }; |
93 | 93 | ||
94 | +/** | ||
95 | + * 浏览记录列表 | ||
96 | + * @param req | ||
97 | + * @param res | ||
98 | + * @param next | ||
99 | + */ | ||
94 | exports.recordContent = (req, res, next) => { | 100 | exports.recordContent = (req, res, next) => { |
95 | - let uid = req.user.uid; | 101 | + let uid = req.user.uid || 6228593; |
96 | 102 | ||
97 | let udid = req.user.udid; | 103 | let udid = req.user.udid; |
98 | 104 | ||
@@ -112,6 +118,12 @@ exports.recordContent = (req, res, next) => { | @@ -112,6 +118,12 @@ exports.recordContent = (req, res, next) => { | ||
112 | }).catch(next); | 118 | }).catch(next); |
113 | }; | 119 | }; |
114 | 120 | ||
121 | +/** | ||
122 | + * 删除浏览记录 | ||
123 | + * @param req | ||
124 | + * @param res | ||
125 | + * @param next | ||
126 | + */ | ||
115 | exports.delRecord = (req, res, next) => { | 127 | exports.delRecord = (req, res, next) => { |
116 | let uid = req.user.uid; | 128 | let uid = req.user.uid; |
117 | 129 | ||
@@ -122,4 +134,35 @@ exports.delRecord = (req, res, next) => { | @@ -122,4 +134,35 @@ exports.delRecord = (req, res, next) => { | ||
122 | }).catch(next); | 134 | }).catch(next); |
123 | }; | 135 | }; |
124 | 136 | ||
137 | +/** | ||
138 | + * 会员等级展示页 | ||
139 | + * @param req | ||
140 | + * @param res | ||
141 | + * @param next | ||
142 | + */ | ||
143 | + | ||
144 | +exports.grade = (req, res, next) => { | ||
145 | + | ||
146 | + let headerData = headerModel.setNav({ | ||
147 | + navTitle: '会员等级' | ||
148 | + }); | ||
149 | + | ||
150 | + let responseData = { | ||
151 | + pageHeader: headerData, | ||
152 | + module: 'home', | ||
153 | + page: 'grade', | ||
154 | + title: '会员等级', | ||
155 | + pageFooter: true | ||
156 | + }; | ||
157 | + | ||
158 | + indexModel.getGrade({ | ||
159 | + uid: req.user.uid || 8039759, | ||
160 | + channel: req.query.channel || 1 | ||
161 | + }).then((result) => { | ||
162 | + console.log(result); | ||
163 | + res.render('vip-grade/vip-grade', Object.assign(result, responseData)); | ||
164 | + }).catch(next); | ||
165 | + | ||
166 | + | ||
167 | +}; | ||
125 | 168 |
@@ -22,7 +22,7 @@ app.engine('.hbs', hbs({ | @@ -22,7 +22,7 @@ app.engine('.hbs', hbs({ | ||
22 | extname: '.hbs', | 22 | extname: '.hbs', |
23 | defaultLayout: 'layout', | 23 | defaultLayout: 'layout', |
24 | layoutsDir: doraemon, | 24 | layoutsDir: doraemon, |
25 | - partialsDir: ['./views/partial', `${doraemon}/partial`], | 25 | + partialsDir: [path.join(__dirname, './views/partial'), `${doraemon}/partial`], |
26 | helpers: global.yoho.helpers | 26 | helpers: global.yoho.helpers |
27 | })); | 27 | })); |
28 | 28 |
1 | -//帮助 by acgpiano | ||
2 | -"use strict"; | 1 | +// 帮助 by acgpiano |
2 | +'use strict'; | ||
3 | 3 | ||
4 | const api = global.yoho.API; | 4 | const api = global.yoho.API; |
5 | 5 | ||
6 | -//获取帮助列表 | 6 | +// 获取帮助列表 |
7 | exports.getHelpList = () => { | 7 | exports.getHelpList = () => { |
8 | return api.get('', { | 8 | return api.get('', { |
9 | method: 'app.help.li' | 9 | method: 'app.help.li' |
10 | }).then(result => { | 10 | }).then(result => { |
11 | - if(result && result.code === 200 && result.data) { | 11 | + if (result && result.code === 200 && result.data) { |
12 | let final = []; | 12 | let final = []; |
13 | - for(let name of result.data) { | 13 | + for (let name of result.data) { |
14 | final.push({ | 14 | final.push({ |
15 | name: name.caption, | 15 | name: name.caption, |
16 | code: name.code, | 16 | code: name.code, |
@@ -19,15 +19,15 @@ exports.getHelpList = () => { | @@ -19,15 +19,15 @@ exports.getHelpList = () => { | ||
19 | return final; | 19 | return final; |
20 | } | 20 | } |
21 | }); | 21 | }); |
22 | -} | 22 | +}; |
23 | 23 | ||
24 | -//获取帮助详情 | 24 | +// 获取帮助详情 |
25 | exports.getHelpDetail = (code) => { | 25 | exports.getHelpDetail = (code) => { |
26 | - return api.get('',{ | ||
27 | - method:'app.help.detail', | 26 | + return api.get('', { |
27 | + method: 'app.help.detail', | ||
28 | code: code, | 28 | code: code, |
29 | }).then(result => { | 29 | }).then(result => { |
30 | return result.replace(/^<!DOCTYPE.*<body>/g, ''). | 30 | return result.replace(/^<!DOCTYPE.*<body>/g, ''). |
31 | replace(/<\/body>.*<\/html>/g, ''); | 31 | replace(/<\/body>.*<\/html>/g, ''); |
32 | }); | 32 | }); |
33 | -} | ||
33 | +}; |
@@ -202,6 +202,10 @@ const recordContent = (uid, udid, page, limit) => { | @@ -202,6 +202,10 @@ const recordContent = (uid, udid, page, limit) => { | ||
202 | }); | 202 | }); |
203 | }; | 203 | }; |
204 | 204 | ||
205 | +/** | ||
206 | + * 删除浏览记录 | ||
207 | + * @param params | ||
208 | + */ | ||
205 | const delRecord = (uid, skn) => { | 209 | const delRecord = (uid, skn) => { |
206 | return api.get('', { | 210 | return api.get('', { |
207 | method: 'app.browse.delete', | 211 | method: 'app.browse.delete', |
@@ -210,9 +214,58 @@ const delRecord = (uid, skn) => { | @@ -210,9 +214,58 @@ const delRecord = (uid, skn) => { | ||
210 | }); | 214 | }); |
211 | }; | 215 | }; |
212 | 216 | ||
217 | +/** | ||
218 | + * 会员等级 | ||
219 | + * @param params | ||
220 | + */ | ||
221 | +const getGradeGrade = (channel, uid) => { | ||
222 | + return api.get('', { | ||
223 | + method: 'app.passport.vip', | ||
224 | + uid: uid || 6228593, | ||
225 | + channel: channel || 1 | ||
226 | + }, {code: 200}); | ||
227 | +}; | ||
228 | + | ||
229 | +const getGradeUser = (channel, uid) => { | ||
230 | + return api.get('', { | ||
231 | + method: 'app.passport.profile', | ||
232 | + uid: uid || 6228593, | ||
233 | + channel: channel || 1 | ||
234 | + }, {code: 200}); | ||
235 | +}; | ||
236 | + | ||
237 | +const getGrade = (channel, uid) => { | ||
238 | + | ||
239 | + return api.all([ | ||
240 | + getGradeGrade(channel, uid), | ||
241 | + getGradeUser(channel, uid) | ||
242 | + ]).then((result) => { | ||
243 | + | ||
244 | + let resu = { | ||
245 | + vipGrade: [] | ||
246 | + }; | ||
247 | + | ||
248 | + if (result[0] && result[0].data) { | ||
249 | + resu = { | ||
250 | + vipGrade: [ | ||
251 | + { | ||
252 | + costOfThisYear: result[0].data.current_year_cost, | ||
253 | + sumCost: result[0].data.current_total_cost, | ||
254 | + vip1: true, | ||
255 | + name: '1111' | ||
256 | + } | ||
257 | + ] | ||
258 | + }; | ||
259 | + } | ||
260 | + return resu; | ||
261 | + }); | ||
262 | +}; | ||
263 | + | ||
264 | + | ||
213 | module.exports = { | 265 | module.exports = { |
214 | index, | 266 | index, |
215 | myDetails, | 267 | myDetails, |
216 | recordContent, | 268 | recordContent, |
217 | - delRecord | 269 | + delRecord, |
270 | + getGrade | ||
218 | }; | 271 | }; |
@@ -45,6 +45,8 @@ router.get('/cancelOrder', orderDetailController.cancelOrder); // 取消订单 | @@ -45,6 +45,8 @@ router.get('/cancelOrder', orderDetailController.cancelOrder); // 取消订单 | ||
45 | router.get('/', homeController.index); // 个人中心首页 | 45 | router.get('/', homeController.index); // 个人中心首页 |
46 | router.get('/mydetails', homeController.myDetails); // 个人基本资料页面 | 46 | router.get('/mydetails', homeController.myDetails); // 个人基本资料页面 |
47 | 47 | ||
48 | +router.get('/grade', homeController.grade); // 会员等级页 | ||
49 | + | ||
48 | router.get('/mycurrency', currencyController.myCurrency); // yoho币总数 | 50 | router.get('/mycurrency', currencyController.myCurrency); // yoho币总数 |
49 | router.get('/currencyDetail', currencyController.currencyDetail); // yoho币列表 | 51 | router.get('/currencyDetail', currencyController.currencyDetail); // yoho币列表 |
50 | router.post('/ajaxCurrencyDetail', currencyController.ajaxCurrencyDetail); // yoho币列表 | 52 | router.post('/ajaxCurrencyDetail', currencyController.ajaxCurrencyDetail); // yoho币列表 |
1 | +<div class="vip-grade-page yoho-page"> | ||
2 | + {{# vipGrade}} | ||
3 | + <div class="basic-info block"> | ||
4 | + {{> vip-grade/basic-info}} | ||
5 | + </div> | ||
6 | + | ||
7 | + <ul class="cost block"> | ||
8 | + <li> | ||
9 | + 年度累计金额: | ||
10 | + <span>¥{{costOfThisYear}}</span> | ||
11 | + </li> | ||
12 | + <li> | ||
13 | + 历史消费总金额: | ||
14 | + <span>¥{{sumCost}}</span> | ||
15 | + </li> | ||
16 | + </ul> | ||
17 | + | ||
18 | + {{#unless vip0}} | ||
19 | + <div class="privilege block"> | ||
20 | + <h3 class="title">当前可享受的特权</h3> | ||
21 | + {{> vip-grade/privilege}} | ||
22 | + </div> | ||
23 | + {{/unless}} | ||
24 | + | ||
25 | + <a class="all-privilege block tap-hightlight" href="{{allUrl}}"> | ||
26 | + 查看全部VIP特权 | ||
27 | + <span class="iconfont"></span> | ||
28 | + </a> | ||
29 | + {{/ vipGrade}} | ||
30 | +</div> |
1 | +{{#if vip3}} | ||
2 | + <p> | ||
3 | + <span class="user-name">{{name}}</span> | ||
4 | + <span class="vip-icon vip-3"></span> | ||
5 | + </p> | ||
6 | + <p class="grade-desc"> | ||
7 | + 您已升级至最高的等级啦! | ||
8 | + </p> | ||
9 | + <p class="sum-cost"> | ||
10 | + 年度累计金额<span> ¥{{costOfThisYear}}</span> | ||
11 | + </p> | ||
12 | + <div class="progresser"> | ||
13 | + <div class="outer"></div> | ||
14 | + <div class="inner" style="width: {{percent}}%;"></div> | ||
15 | + <span class="beacon beacon-min"> | ||
16 | + 白金卡会员 | ||
17 | + </span> | ||
18 | + </div> | ||
19 | +{{/if}} | ||
20 | + | ||
21 | +{{#if vip2}} | ||
22 | + <p> | ||
23 | + <span class="user-name">{{name}}</span> | ||
24 | + <span class="vip-icon vip-2"></span> | ||
25 | + </p> | ||
26 | + <p class="grade-desc"> | ||
27 | + 还差<span class="cost-gap">¥{{costGap}}</span>就可以升级为白金会员! | ||
28 | + <span class="sub-desc">(VIP金额累计需订单成功签收满15天并无退换货)</span> | ||
29 | + </p> | ||
30 | + <p class="sum-cost"> | ||
31 | + 年度累计金额<span> ¥{{costOfThisYear}}</span> | ||
32 | + </p> | ||
33 | + <div class="progresser"> | ||
34 | + <div class="outer"></div> | ||
35 | + <div class="inner" style="width: {{percent}}%;"></div> | ||
36 | + <span class="beacon beacon-min"> | ||
37 | + 金卡会员 | ||
38 | + </span> | ||
39 | + <span class="beacon beacon-max">白金卡会员</span> | ||
40 | + <span class="cost-limit">¥5000.00</span> | ||
41 | + </div> | ||
42 | +{{/if}} | ||
43 | + | ||
44 | +{{#if vip1}} | ||
45 | + <p> | ||
46 | + <span class="user-name">{{name}}</span> | ||
47 | + <span class="vip-icon vip-1"></span> | ||
48 | + </p> | ||
49 | + <p class="grade-desc"> | ||
50 | + 还差<span class="cost-gap">¥{{costGap}}</span>就可以升级为金卡会员! | ||
51 | + <span class="sub-desc">(VIP金额累计需订单成功签收满15天并无退换货)</span> | ||
52 | + </p> | ||
53 | + <p class="sum-cost"> | ||
54 | + 年度累计金额<span> ¥{{costOfThisYear}}</span> | ||
55 | + </p> | ||
56 | + <div class="progresser"> | ||
57 | + <div class="outer"></div> | ||
58 | + <div class="inner" style="width: {{percent}}%;"></div> | ||
59 | + <span class="beacon beacon-min"> | ||
60 | + 银卡会员 | ||
61 | + </span> | ||
62 | + <span class="beacon beacon-max">金卡会员</span> | ||
63 | + <span class="cost-limit">¥2000.00</span> | ||
64 | + </div> | ||
65 | +{{/if}} | ||
66 | + | ||
67 | +{{#if vip0}} | ||
68 | + <p> | ||
69 | + <span class="user-name">{{name}}</span> | ||
70 | + <span>普通会员</span> | ||
71 | + </p> | ||
72 | + <p class="grade-desc"> | ||
73 | + 还差<span class="cost-gap">¥{{costGap}}</span>就可以升级为银卡会员! | ||
74 | + <span class="sub-desc">(VIP金额累计需订单成功签收满15天并无退换货)</span> | ||
75 | + </p> | ||
76 | + <p class="sum-cost"> | ||
77 | + 年度累计金额<span> ¥{{costOfThisYear}}</span> | ||
78 | + </p> | ||
79 | + <div class="progresser"> | ||
80 | + <div class="outer"></div> | ||
81 | + <div class="inner" style="width: {{percent}}%;"></div> | ||
82 | + <span class="beacon beacon-min"> | ||
83 | + 普通 | ||
84 | + </span> | ||
85 | + <span class="beacon beacon-max">银卡会员</span> | ||
86 | + <span class="cost-limit">¥600.00</span> | ||
87 | + </div> | ||
88 | +{{/if}} |
public/js/home/grade.page.js
0 → 100644
1 | +require('../common'); |
-
Please register or login to post a comment