index.js
7.16 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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
/**
* 购物车
* @author: feng.chen<feng.chen@yoho.cn>
* @date: 2016/12/21
*/
'use strict';
const api = global.yoho.API;
const cartProcess = require(global.utils + '/cart-process');
/**
* 获取购物车信息
*
* @param integer $uid 用户ID
* @param string $shoppingKey 未登录用户唯一识别码
* @param string $cartType 购物车类型,默认是是所有购物车,ordinary为普通购物车,advance为预售购物车
* @return array|mixed 处理之后的购物车数据
*/
const indexData = (uid, shoppingKey, saleChannel, cartType) => {
return api.get('', {
method: 'app.Shopping.queryCart',
uid: uid,
shopping_key: shoppingKey,
sale_channel: saleChannel
}).then((data) => {
return data.code === 200 ? cartProcess.processData(data, cartType) : undefined;
});
};
/**
* 购物车商品选择与取消接口
*
* @param int $uid 用户ID
* @param string $sku 商品sku列表
* @param string $shoppingKey 未登录用户唯一识别码
* @return array 购物车接口返回的数据
*/
const selectGood = (uid, sku, shoppingKey, cartType) => {
return api.get('', {
method: 'app.Shopping.selectedAndQryCart',
product_sku_list: sku,
uid: uid,
shopping_key: shoppingKey
}).then((data) => {
return data.code === 200 ? cartProcess.processData(data, cartType) : undefined;
});
};
/**
* 移出购物车
*
* @param int $uid 用户ID
* @param string $sku 商品sku列表
* @param string $shoppingKey 未登录用户唯一识别码
* @return array 接口返回的数据
*/
const removeFromCart = (uid, sku, shoppingKey, cartType) => {
return api.get('', {
method: 'app.Shopping.removeAndQryCart',
product_sku_list: sku,
uid: uid,
shopping_key: shoppingKey
}).then((data) => {
return data.code === 200 ? cartProcess.processData(data, cartType) : undefined;
});
};
/**
* 获取购物车商品数据
*
* @param int $uid 用户ID
* @param int $skn 商品skn
* @param int $num 购物车商品数量
* @return array 接口返回的数据
*/
const cartProductData = (uid, skn, num) => {
return api.get('', {
method: 'app.product.data',
product_skn: skn,
uid: uid,
showcomment: 'N'
}).then((data) => {
return data.code === 200 ? cartProcess.procGoodsDetail(data.data, num) : undefined;
});
};
/**
* 修改购物车商品数量-增加
*
* @param int $uid 用户ID
* @param string $sku 商品SKU
* @param int $increaseNum 增加的数目
* @param string $shoppingKey 未登录用户唯一识别码
* @return array 接口返回的数据
*/
const increaseProductNum = (uid, sku, increaseNum, shoppingKey) => {
return api.get('', {
method: 'app.Shopping.increase',
product_sku: sku,
increase_number: increaseNum,
uid: uid,
shopping_key: shoppingKey
});
};
/**
* 修改购物车商品数量-减少
*
* @param int $uid 用户ID
* @param string $sku 商品SKU
* @param int $decreaseNum 减少的数目
* @param string $shoppingKey 未登录用户唯一识别码
* @return array 接口返回的数据
*/
const decreaseProductNum = (uid, sku, decreaseNum, shoppingKey) => {
return api.get('', {
method: 'app.Shopping.decrease',
product_sku: sku,
decrease_number: decreaseNum,
uid: uid,
shopping_key: shoppingKey
});
};
/**
* 修改购物车商品数据
*
* @param int $uid 用户ID
* @param string $param 要更改的数据
* @param string $shoppingKey 未登录用户唯一识别码
* @return array 接口返回的数据
*/
const modifyCartProduct = (uid, swapData, shoppingKey) => {
return api.get('', {
method: 'app.Shopping.swap',
swap_data: JSON.stringify(swapData),
uid: uid,
shopping_key: shoppingKey
});
};
/**
* 修改购物车赠品、加价购数据
*
* @param int $uid 用户ID
* @param string $param 要更改的数据
* @param string $shoppingKey 未登录用户唯一识别码
* @return array 接口返回的数据
*/
const modifyCartPriceGiftProduct = (uid, newProductSku, newProductSkn, promotionId, shoppingKey) => {
return api.get('', {
method: 'app.Shopping.swapGift',
promotion_id: promotionId,
new_product_sku: newProductSku,
new_product_skn: newProductSkn,
uid: uid,
shopping_key: shoppingKey
});
};
/**
* 移入收藏夹
*
* @param int $uid 用户ID
* @param string $sku 商品sku列表
* @return array 接口返回的数据
*/
const addToFav = (uid, sku, shoppingKey, cartType) => {
return api.get('', {
method: 'app.Shopping.addfavoriteAndQryCart',
product_sku_list: sku,
uid: uid,
shopping_key: shoppingKey
}).then((data) => {
return data.code === 200 ? cartProcess.processData(data, cartType) : undefined;
});
};
/**
* 加入购物车
*
* @param int $productSku 商品SKU
* @param int $buyNumber 购买数量
* @param int $goodsType 商品类型,0表示普通商品,1表示加价购商品
* @param int $isEdit 是否是编辑商品SKU,0表示不是编辑
* @param null|int $promotionId 促销id,默认null(加价购有关)
* @param null|int $uid 用户UID,可以不传
* @param string $shoppingKey 未登录用户唯一识别码,可以不传
* @return array 加入购物车接口返回的数据
*/
const addToCart = (productSku, buyNumber, goodsType, isEdit, promotionId, uid, shoppingKey) => {
return api.get('', {
method: 'app.Shopping.add',
product_sku: productSku,
buy_number: buyNumber,
goods_type: goodsType,
edit_product_sku: isEdit,
selected: 'Y',
promotion_id: promotionId,
uid: uid,
shopping_key: shoppingKey
});
};
/**
* 获取商品的套餐量贩信息
* @param $productSkn
* @return mixed
*/
const handleBundleInfo = (productSkn) => {
return api.get('', {
method: 'app.query.bundleSkn',
product_skn: productSkn,
}).then(data => {
return data.code === 200 ? cartProcess.handleBundleInfo(data) : undefined;
});
};
/**
* 获取加价购商品数据
*
* @param int $skn 商品skn
* @param int $promotionId 加价购商品促销ID
* @return array 接口返回的数据
*/
const giftProductData = (skn, promotionId) => {
return api.get('', {
method: 'app.product.gift',
product_skn: skn,
promotion_id: promotionId
}).then(data => {
return data.code === 200 ? cartProcess.procGoodsDetail(data.data) : undefined;
});
};
/**
* [获取赠品、加价购促销商品列表]
*/
const getPriceGiftList = (promotionIds, promotionType) => {
return api.get('', {
method: 'app.Shopping.queryPromotionGifts',
promotion_ids: promotionIds
}).then((data) => {
return data.code === 200 ? cartProcess.procPriceGiftData(data.data, promotionType) : undefined;
});
};
module.exports = {
indexData,
selectGood,
removeFromCart,
cartProductData,
addToFav,
increaseProductNum,
decreaseProductNum,
addToCart,
handleBundleInfo,
modifyCartProduct,
giftProductData,
getPriceGiftList,
modifyCartPriceGiftProduct
};