outlets.js
3.76 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
/*
* @Author: Targaryen
* @Date: 2016-05-30 16:20:03
* @Last Modified by: Targaryen
* @Last Modified time: 2016-06-02 15:57:38
*/
'use strict';
const library = '../../../library';
const utils = '../../../utils';
const API = require(`${library}/api`).API;
const api = new API();
const saleApi = require('./sale-api');
const outletsProcess = require('./outlets-handler');
const outletsApi = require('./outlets-api');
const productProcess = require(`${utils}/product-process`);
// 奥莱频道资源码
const channelCode = {
index: 'e0565dad65fb8da1f39bc1ac83fc8346',
boys: '2af513637dc5feeec7f6f8b52989b24b',
girls: 'd1b56b56c3a12dc1f2f83958680a0911',
kids: '0fd7ad594940f9ec5a03697317cf6521',
lifestyle: 'b3d3f55a26f130ac2b516b9fb3823711'
};
/**
* 获取奥莱首页数据
* @param {[type]} origin [description]
* @return {[type]} [description]
*/
exports.getOutletsIndexData = (params) => {
return api.all([
outletsApi.getChannelResouceData({ content_code: channelCode.index }),
outletsApi.getOutletsActivityOrigin(params), // 获取限时活动列表
outletsApi.getOutletsActivityOrigin(params), // 获取即将结束列表
outletsApi.getOutletsTrendData(params), // 获取潮流速递商品数据
saleApi.getSaleGoodsList(params) // 获取底部商品数据
]).then(result => {
let finalResult = {};
// 处理资源位数据
if (result[0].code === 200) {
finalResult = Object.assign(finalResult,
outletsProcess.handleOutletsBannersData(result[0].data, params));
}
// 处理限时嗨购列表数据
if (result[1].code === 200) {
finalResult.limitedBuy = Object.assign(finalResult.limitedBuy,
outletsProcess.handleOutletsActivityData(result[1].data));
}
// 处理即将结束列表数据
if (result[2].code === 200) {
finalResult.nearOver = outletsProcess.handleOutletsActivityData(result[2].data);
}
// 处理潮品推荐数据
if (result[3].code === 200) {
finalResult.limitedBuy.extra.trendGood = outletsProcess.handleOutletstrendGoodData(result[3].data);
}
// 处理底部商品数据
if (result[4].code === 200) {
finalResult.goodsBoard.list = productProcess.processProductList(result[4].data.product_list);
}
return finalResult;
});
};
/**
* 获取奥莱频道页面数据
* @param {[object]} gender
* @return {[type]}
*/
exports.getOutletsChannelData = (params) => {
let channelData = {};
return api.all([
outletsApi.getChannelResouceData({ content_code: channelCode[params.channel] }),
outletsApi.getOutletsActivityOrigin({ platform: 2, size: 0, type: 1 }),
saleApi.getSaleGoodsList(params)
]).then(result => {
// 资源楼层
if (result[0].code === 200) {
Object.assign(channelData, outletsProcess.processFloor(result[0].data.list));
}
// 限时嗨购
if (result[1].code === 200) {
Object.assign(channelData, { flashSale: outletsProcess.formatActivityData(result[1].data) });
}
// 商品列表
if (result[2].code === 200) {
channelData.goodsBoard.list = productProcess.processProductList(result[2].data.product_list);
}
return channelData;
});
};
/**
* 获取奥莱活动页面数据
* @param {[object]}
* @return {[type]}
*/
exports.getOutletsSpecialData = (params) => {
return api.all([
outletsApi.getOutletsActivityOrigin({
id: params.id
})
]).then(result => {
if (result[0].code === 200) {
return outletsProcess.handleOutletsSpecilData(result[0].data[0]);
}
});
};