Authored by zzzzzzz

Merge branch 'feature/usercenter' of git.yoho.cn:fe/yohobuywap-node into feature/usercenter

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">&#xe604;</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}}
  1 +333
  2 +<ul class="privilege-list">
  3 + {{#each privilege}}
  4 + <li>
  5 + <img class="icon" src="{{pic}}">
  6 + <p>
  7 + {{title}}
  8 + <span>{{description}}</span>
  9 + </p>
  10 + </li>
  11 + {{/each}}
  12 +</ul>
  1 +require('../common');
@@ -72,7 +72,6 @@ @@ -72,7 +72,6 @@
72 .progresser { 72 .progresser {
73 position: relative; 73 position: relative;
74 width: 100%; 74 width: 100%;
75 - height: 20px;  
76 padding: 20px 0; 75 padding: 20px 0;
77 } 76 }
78 77