Showing
6 changed files
with
180 additions
and
3 deletions
@@ -51,7 +51,7 @@ exports.orderEnsure = (req, res, next) => { | @@ -51,7 +51,7 @@ exports.orderEnsure = (req, res, next) => { | ||
51 | headerData.backUrl = returnUrl; | 51 | headerData.backUrl = returnUrl; |
52 | } | 52 | } |
53 | 53 | ||
54 | - let orderPromise = cartModel.cartPay(uid, cartType, orderInfo, sku, skn, buyNumber); | 54 | + let orderPromise; |
55 | let userProfilePromise = userModel.queryProfile(uid); | 55 | let userProfilePromise = userModel.queryProfile(uid); |
56 | let addressPromise = addressModel.addressData(uid); | 56 | let addressPromise = addressModel.addressData(uid); |
57 | 57 | ||
@@ -59,6 +59,8 @@ exports.orderEnsure = (req, res, next) => { | @@ -59,6 +59,8 @@ exports.orderEnsure = (req, res, next) => { | ||
59 | let activityInfo = JSON.parse(req.cookies['activity-info']); | 59 | let activityInfo = JSON.parse(req.cookies['activity-info']); |
60 | 60 | ||
61 | orderPromise = cartModel.cartPay(uid, cartType, orderInfo, sku, skn, buyNumber, activityInfo); | 61 | orderPromise = cartModel.cartPay(uid, cartType, orderInfo, sku, skn, buyNumber, activityInfo); |
62 | + } else { | ||
63 | + orderPromise = cartModel.cartPay(uid, cartType, orderInfo, sku, skn, buyNumber); | ||
62 | } | 64 | } |
63 | 65 | ||
64 | return Promise.all([orderPromise, userProfilePromise, addressPromise]).then(result => { | 66 | return Promise.all([orderPromise, userProfilePromise, addressPromise]).then(result => { |
@@ -70,9 +70,27 @@ const cancelOrder = (req, res, next) => { | @@ -70,9 +70,27 @@ const cancelOrder = (req, res, next) => { | ||
70 | }).catch(next); | 70 | }).catch(next); |
71 | }; | 71 | }; |
72 | 72 | ||
73 | +/** | ||
74 | + * 我的订单-查看物流信息 | ||
75 | + */ | ||
76 | +const logistic = (req, res, next) => { | ||
77 | + orderDetailModel.logistics(req.query.order_code, req.user.uid).then(result => { | ||
78 | + res.render('logistic', _.assign(result, { | ||
79 | + pageHeader: headerModel.setNav({ | ||
80 | + navTitle: '订单详情', | ||
81 | + navBtn: false | ||
82 | + }), | ||
83 | + module: 'home', | ||
84 | + page: 'logistic', | ||
85 | + logisticInfoPage: true | ||
86 | + })); | ||
87 | + }).catch(next); | ||
88 | +}; | ||
89 | + | ||
73 | module.exports = { | 90 | module.exports = { |
74 | orderDetailData, | 91 | orderDetailData, |
75 | delOrder, | 92 | delOrder, |
76 | readdData, | 93 | readdData, |
77 | - cancelOrder | 94 | + cancelOrder, |
95 | + logistic | ||
78 | }; | 96 | }; |
@@ -2,6 +2,7 @@ | @@ -2,6 +2,7 @@ | ||
2 | 2 | ||
3 | 3 | ||
4 | const api = global.yoho.API; | 4 | const api = global.yoho.API; |
5 | +const serviceApi = global.yoho.ServiceAPI; | ||
5 | 6 | ||
6 | const _ = require('lodash'); | 7 | const _ = require('lodash'); |
7 | 8 | ||
@@ -10,6 +11,8 @@ const helpers = global.yoho.helpers; | @@ -10,6 +11,8 @@ const helpers = global.yoho.helpers; | ||
10 | const camelCase = global.yoho.camelCase; | 11 | const camelCase = global.yoho.camelCase; |
11 | const logger = global.yoho.logger; | 12 | const logger = global.yoho.logger; |
12 | 13 | ||
14 | +const CODE_LOGISTIC_BANNER = '1fc9b2484fcd559049f2f7e0db313f20'; // 物流详情banner资源码 | ||
15 | + | ||
13 | const closeReasons = () => { | 16 | const closeReasons = () => { |
14 | return api.get('', { | 17 | return api.get('', { |
15 | method: 'app.SpaceOrders.closeReasons' | 18 | method: 'app.SpaceOrders.closeReasons' |
@@ -370,10 +373,84 @@ const cancelOrder = (orderCode, uid, reasonId, gender, channel, reason) => { | @@ -370,10 +373,84 @@ const cancelOrder = (orderCode, uid, reasonId, gender, channel, reason) => { | ||
370 | }); | 373 | }); |
371 | }; | 374 | }; |
372 | 375 | ||
376 | +/* | ||
377 | +* 我的订单-查看物流 | ||
378 | +* @param int $orderCode 订单号 | ||
379 | +* @param int $uid 用户ID | ||
380 | +* @return array | ||
381 | +*/ | ||
382 | +const _logisticsData = (orderCode, uid) => { | ||
383 | + return api.get('', { | ||
384 | + method: 'app.express.li', | ||
385 | + order_code: orderCode, | ||
386 | + uid: uid | ||
387 | + }); | ||
388 | +}; | ||
389 | + | ||
390 | +/** | ||
391 | + * 获取物流详情页banner | ||
392 | + */ | ||
393 | +const _getLogisterBanner = () => { | ||
394 | + return serviceApi.get('operations/api/v5/resource/get', { | ||
395 | + content_code: CODE_LOGISTIC_BANNER | ||
396 | + }, {code: 200}); | ||
397 | +}; | ||
398 | + | ||
399 | +/** | ||
400 | + * 查看物流 | ||
401 | + * | ||
402 | + * @param int orderCode 订单编号 | ||
403 | + * @param int uid 用户ID | ||
404 | + * @return array | ||
405 | + */ | ||
406 | +const logistics = (orderCode, uid) => { | ||
407 | + return Promise.all([ | ||
408 | + _getLogisterBanner(), | ||
409 | + _logisticsData(orderCode, uid), | ||
410 | + ]).then(result => { | ||
411 | + let finalResult = { | ||
412 | + banner: [] | ||
413 | + }; | ||
414 | + let banners = result[0]; | ||
415 | + let logistic = result[1]; | ||
416 | + | ||
417 | + // 获取物流详情页banner | ||
418 | + if (banners && banners.data) { | ||
419 | + _.forEach(banners.data, value => { | ||
420 | + _.forEach(value.data, subValue => { | ||
421 | + finalResult.banner.push({ | ||
422 | + url: subValue.url, | ||
423 | + img: subValue.src | ||
424 | + }); | ||
425 | + }); | ||
426 | + }); | ||
427 | + } | ||
428 | + | ||
429 | + if (logistic && logistic.data) { | ||
430 | + finalResult.logisticUrl = _.get(logistic, 'data.url', ''); | ||
431 | + finalResult.logisticImg = _.get(logistic, 'data.logo', ''); | ||
432 | + finalResult.logisticCompany = _.get(logistic, 'data.caption', ''); | ||
433 | + finalResult.logisticNumber = _.get(logistic, 'data.express_number', ''); | ||
434 | + finalResult.logisticDetail = []; | ||
435 | + | ||
436 | + _.forEach(_.get(logistic, 'data.express_detail', []), value => { | ||
437 | + finalResult.logisticDetail.push({ | ||
438 | + status: value.accept_address, | ||
439 | + date: value.acceptTime, | ||
440 | + }); | ||
441 | + }); | ||
442 | + | ||
443 | + } | ||
444 | + | ||
445 | + return finalResult; | ||
446 | + }); | ||
447 | +}; | ||
448 | + | ||
373 | module.exports = { | 449 | module.exports = { |
374 | orderDetailData, | 450 | orderDetailData, |
375 | closeReasons, | 451 | closeReasons, |
376 | delOrder, | 452 | delOrder, |
377 | readdData, | 453 | readdData, |
378 | - cancelOrder | 454 | + cancelOrder, |
455 | + logistics | ||
379 | }; | 456 | }; |
@@ -134,4 +134,6 @@ router.get('/installment/setMasterCard', installment.setMasterCard); // 銝 | @@ -134,4 +134,6 @@ router.get('/installment/setMasterCard', installment.setMasterCard); // 銝 | ||
134 | 134 | ||
135 | router.get('/getaddress.json', addressController.newGetAddress); // TODO 模拟省数据 | 135 | router.get('/getaddress.json', addressController.newGetAddress); // TODO 模拟省数据 |
136 | 136 | ||
137 | +router.get('/logistic', auth, orderDetailController.logistic); // 查看物流页面 | ||
138 | + | ||
137 | module.exports = router; | 139 | module.exports = router; |
apps/home/views/action/logistic.hbs
0 → 100644
1 | +<div class="logistic-page yoho-page"> | ||
2 | + <div class="overview"> | ||
3 | + <div class="left" > | ||
4 | + <a href="{{logisticUrl}}"><img class="icon" src="{{logisticImg}}" /></a> | ||
5 | + </div> | ||
6 | + <div class="right"> | ||
7 | + <div> | ||
8 | + <span class='info'>物流公司:</span> | ||
9 | + <span >{{logisticCompany}}</span> | ||
10 | + </div> | ||
11 | + <div> | ||
12 | + <span class='info'>快递单号:</span> | ||
13 | + <span>{{logisticNumber}}</span> | ||
14 | + </div> | ||
15 | + </div> | ||
16 | + | ||
17 | + </div> | ||
18 | + | ||
19 | + <div class="title"> | ||
20 | + <span>物流详情</span> | ||
21 | + </div> | ||
22 | + | ||
23 | + <div class="detail"> | ||
24 | + {{# logisticDetail}} | ||
25 | + <div class="timeline-box "> | ||
26 | + <span class="timeline-node"></span> | ||
27 | + <div class="timeline-info"> | ||
28 | + <div class="timeline-info-row"> | ||
29 | + {{status}} | ||
30 | + </div> | ||
31 | + <div class="timeline-info-row"> | ||
32 | + {{date}} | ||
33 | + </div> | ||
34 | + </div> | ||
35 | + </div> | ||
36 | + {{/ logisticDetail}} | ||
37 | + </div> | ||
38 | + | ||
39 | + <div class="banner"> | ||
40 | + {{#banner}} | ||
41 | + <a href="{{url}}"> | ||
42 | + <img src="{{image2 img w=640 h=200}}" alt="img"> | ||
43 | + </a> | ||
44 | + {{/banner}} | ||
45 | + </div> | ||
46 | + | ||
47 | + {{#unless @root.wap.ucenter.removePrefer}} | ||
48 | + {{> common/recommend-for-you}} | ||
49 | + {{/unless}} | ||
50 | +</div> |
public/js/home/logistic.page.js
0 → 100644
1 | +/** | ||
2 | + * 物流信息页面 | ||
3 | + * @author: 赵彪<bill.zhao@yoho.cn> | ||
4 | + * @date: 2015/12/02 | ||
5 | + */ | ||
6 | + | ||
7 | +var $ = require('yoho-jquery'); | ||
8 | + | ||
9 | +var $footer = $('#yoho-footer'), | ||
10 | + winH = window.outerHeight, | ||
11 | + bodyH = document.body.offsetHeight, | ||
12 | + footH = $footer.height(); | ||
13 | + | ||
14 | +require('../common'); | ||
15 | +function addFooterTopBorder() { | ||
16 | + if (footH + bodyH > winH) { | ||
17 | + window.rePosFooter(); | ||
18 | + } else { | ||
19 | + $footer.css('border-top', '1px solid #f1f1f1'); | ||
20 | + } | ||
21 | +} | ||
22 | + | ||
23 | +$(document).ready(addFooterTopBorder); | ||
24 | + | ||
25 | +require('./recommend-for-you-user-center'); | ||
26 | + | ||
27 | +// 提前触发lazyload | ||
28 | +$(window).scrollTop(1).scrollTop(0); |
-
Please register or login to post a comment