order.js
4.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
/**
* 结算页
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2016/7/13
*/
'use strict';
const _ = require('lodash');
const api = global.yoho.API;
const helper = global.yoho.helpers;
/**
* 结算页面展示
* @param uid 用户id
*/
const _orderApi = uid => api.get('', {
method: 'app.Shopping.payment',
'cart_type': 'ordinary', // eslint-disable-line
'yoho_coin_mode': 0, // eslint-disable-line
uid: uid
});
const index = uid => {
return _orderApi(uid).then(data => {
if (data.code === 200) {
// do data package
let theData = data.data;
let goods = theData.goods_list;
_.forEach(goods, theGoods => {
let splitName = theGoods.product_name.split(' ');
// split brand name form product_name
theGoods.brandName = splitName.shift();
theGoods.name = splitName.join(' ');
// format goods link
theGoods.link = helper.urlFormat(
`/product/pro_${theGoods.product_id}_${theGoods.goods_id}_${theGoods.cn_alphabet}.html`);
theGoods.last_price = parseFloat(theGoods.last_price, 10).toFixed(2);
// TODO:format brand url
// 处理商品是否是赠品
if (theGoods.goods_type === 'gift') {
theGoods.isGift = true;
}
});
theData.yoho_coin *= 100; // 有货币稀释
theData.shopping_cart_data.balanceCoin = (theData.use_yoho_coin * 1).toFixed(2);
return data;
}
return data;
});
};
/**
* 结算
* @param number uid user id
* @param number $deliveryWay 配送方式,1表示普通快递,2表示顺丰速运
* @param int $paymentType 支付方式,1表示在线支付,2表示货到付款
* @param number $yohoCoin 使用的YOHO币数量
* */
const _computeApi = (uid, deliveryWay, paymentType, yohoCoin) => api.get('', {
method: 'app.Shopping.compute',
uid: uid,
delivery_way: deliveryWay,
payment_type: paymentType,
use_yoho_coin: yohoCoin
});
const compute = (uid, yohoCoin) => {
// 目前仅支持普通快递和在线支付
let deliveryWay = 1;
let paymentType = 1;
let coin;
// YOHO币稀释
if (yohoCoin) {
coin = yohoCoin / 100;
}
return _computeApi(uid, deliveryWay, paymentType, coin).then(result => result);
};
/**
* 提交订单
* @param number uid user id
* @param number address_id 地址id
* @param number yohoCoin 使用的有货币
* @param number invoices_type 发票类型(1-纸质发票,2-电子发票)
* @param string invoices_title 发票抬头
* @param int invoices_content 发票内容
* @param string receiverMobile 收票人手机
* @param string remark 备注
* @param boolean isPrintPrice 是否打印价格
* @param number delivery_time 送货时间
* @param number delivery_way 送货方式(1-普通,2-顺丰)
* @param number payment_id 支付id
* @param number payment_type 支付类型
*/
const _submit = (uid, other) => api.get('', {
method: 'app.Shopping.submit',
uid: uid,
address_id: other.address_id,
yohoCoin: other.yohoCoin,
invoices_type: other.invoices_type,
invoices_title: other.invoices_title,
invoices_content: other.invoices_content,
recevierMobile: other.recevierMobile,
remark: other.remark,
isPrintPrice: other.isPrintPrice,
delivery_time: other.delivery_time,
delivery_way: other.delivery_way,
payment_id: other.payment_id,
payment_type: other.payment_type
});
const submit = (uid, other) => {
let theOther = {};
let coin = other.coin;
Object.assign(theOther, other, {
delivery_time: 2, // 平时和周末都送货
delivery_way: 1, // 普通快递
payment_id: 1, // 支付宝
payment_type: 1 // 在线支付
});
// 有货币稀释
if (coin) {
coin = coin / 100;
}
return _submit(uid, theOther).then(result => result);
};
module.exports = {
index,
compute,
submit
};