1
|
/**
|
1
|
/**
|
2
|
- * girls model
|
2
|
+ * 频道页 model
|
3
|
* @author: 赵彪<bill.zhao@yoho.cn>
|
3
|
* @author: 赵彪<bill.zhao@yoho.cn>
|
4
|
* @date: 2016/05/17
|
4
|
* @date: 2016/05/17
|
5
|
*/
|
5
|
*/
|
|
@@ -7,11 +7,15 @@ |
|
@@ -7,11 +7,15 @@ |
7
|
|
7
|
|
8
|
const _ = require('lodash');
|
8
|
const _ = require('lodash');
|
9
|
|
9
|
|
|
|
10
|
+const dataMap = require('../../../config/data-map');
|
|
|
11
|
+
|
10
|
const ServiceAPI = require(`${global.library}/api`).ServiceAPI;
|
12
|
const ServiceAPI = require(`${global.library}/api`).ServiceAPI;
|
11
|
const SearchAPI = require(`${global.library}/api`).SearchAPI;
|
13
|
const SearchAPI = require(`${global.library}/api`).SearchAPI;
|
12
|
const sign = require(`${global.library}/sign`);
|
14
|
const sign = require(`${global.library}/sign`);
|
13
|
const helpers = require(`${global.library}/helpers`);
|
15
|
const helpers = require(`${global.library}/helpers`);
|
14
|
const images = require(`${global.utils}/images`);
|
16
|
const images = require(`${global.utils}/images`);
|
|
|
17
|
+
|
|
|
18
|
+// const processProduct = require(`${global.utils}/product-process`).processProductList;
|
15
|
const log = require(`${global.library}/logger`);
|
19
|
const log = require(`${global.library}/logger`);
|
16
|
|
20
|
|
17
|
|
21
|
|
|
@@ -25,9 +29,7 @@ const getShelveTime = duration => { |
|
@@ -25,9 +29,7 @@ const getShelveTime = duration => { |
25
|
todayMil = today.getTime().toString().substr(0, 10),
|
29
|
todayMil = today.getTime().toString().substr(0, 10),
|
26
|
startDayMil = (today.setMonth(today.getMonth() - duration)).toString().substr(0, 10);
|
30
|
startDayMil = (today.setMonth(today.getMonth() - duration)).toString().substr(0, 10);
|
27
|
|
31
|
|
28
|
- return `${startDayMil},${todayMil}`;
|
|
|
29
|
-
|
|
|
30
|
- // `
|
32
|
+ return `${startDayMil},${todayMil}`; // `返回时间
|
31
|
};
|
33
|
};
|
32
|
|
34
|
|
33
|
// 获取可用的标题
|
35
|
// 获取可用的标题
|
|
@@ -46,112 +48,15 @@ const getText = data => { |
|
@@ -46,112 +48,15 @@ const getText = data => { |
46
|
return text;
|
48
|
return text;
|
47
|
};
|
49
|
};
|
48
|
|
50
|
|
49
|
-const channelMap = {
|
|
|
50
|
- boys: {
|
|
|
51
|
- code: '79372627eee75d73afe7f9bac91e5ce6',
|
|
|
52
|
- gender: '1,3'
|
|
|
53
|
- },
|
|
|
54
|
- girls: {
|
|
|
55
|
- code: '75215008957605c05e8cd375eac4f817',
|
|
|
56
|
- gender: '2,3'
|
|
|
57
|
- },
|
|
|
58
|
- kids: {
|
|
|
59
|
- code: 'd71f4b27f2a7229fbb31a4bc490a6f36',
|
|
|
60
|
- gender: '2,3'
|
|
|
61
|
- },
|
|
|
62
|
- lifestyle: {
|
|
|
63
|
- code: '8a341ca7eacc069ba80f02dec80eaf34',
|
|
|
64
|
-
|
|
|
65
|
- // code: '380c38155fd8beee10913a3f5b462da6',
|
|
|
66
|
- // code: '665f7c2fb9d037ee820766953ee34bf7',
|
|
|
67
|
- gender: '2,3'
|
|
|
68
|
- }
|
|
|
69
|
-};
|
51
|
+const channelMap = dataMap.channel;
|
70
|
|
52
|
|
71
|
-const sortMap = {
|
|
|
72
|
- boys: [
|
|
|
73
|
- {sort: 147, viewNum: 5}, // 休闲运动鞋
|
|
|
74
|
- {sort: 129, viewNum: 5}, // 休闲裤
|
|
|
75
|
- {sort: 152, viewNum: 5}, // 双肩包
|
|
|
76
|
- {misort: 11, viewNum: 5}, // T恤
|
|
|
77
|
- {sort: 115, viewNum: 5}, // 衬衫
|
|
|
78
|
- {sort: 130, viewNum: 5}, // 牛仔裤
|
|
|
79
|
- {misort: 60, viewNum: 5}, // 帽子
|
|
|
80
|
- {sort: 124, viewNum: 5}, // 夹克
|
|
|
81
|
- {sort: 119, viewNum: 5}, // 卫衣
|
|
|
82
|
- {sort: 162, viewNum: 5}, // 手表
|
|
|
83
|
- {sort: 148, viewNum: 5}, // 靴子
|
|
|
84
|
- {misort: 65, viewNum: 5}, // 首饰
|
|
|
85
|
- {sort: 151, viewNum: 5}, // 时装鞋
|
|
|
86
|
- {misort: 61, viewNum: 5}, // 太阳镜
|
|
|
87
|
- {misort: 39, viewNum: 5}, // 袜子
|
|
|
88
|
- {sort: 346, viewNum: 5}, // 运动裤
|
|
|
89
|
- {sort: 131, viewNum: 5}, // 短裤
|
|
|
90
|
- {misort: 66, viewNum: 5}, // 配饰
|
|
|
91
|
- {misort: 309, viewNum: 5}, // 内裤
|
|
|
92
|
- {misort: 30, viewNum: 5}, // 打底裤/紧身裤
|
|
|
93
|
- {sort: 342, viewNum: 5} // 邮差包
|
|
|
94
|
- ],
|
|
|
95
|
- girls: [
|
|
|
96
|
- {misort: 16, viewNum: 4}, // 卫衣
|
|
|
97
|
- {misort: 12, viewNum: 4}, // 衬衫
|
|
|
98
|
- {misort: 44, viewNum: 4}, // 休闲/运动鞋
|
|
|
99
|
- {misort: 11, viewNum: 4}, // T恤
|
|
|
100
|
- {misort: 21, viewNum: 4}, // 夹克
|
|
|
101
|
- {misort: 257, viewNum: 4}, // 毛衣/针织
|
|
|
102
|
- {misort: 22, viewNum: 4}, // 大衣/风衣
|
|
|
103
|
- {misort: 26, viewNum: 4}, // 休闲裤
|
|
|
104
|
- {misort: 27, viewNum: 4}, // 牛仔裤
|
|
|
105
|
- {misort: 31, viewNum: 4}, // 连衣裙
|
|
|
106
|
- {misort: 32, viewNum: 4}, // 半身裙
|
|
|
107
|
- {misort: 48, viewNum: 4}, // 时装鞋
|
|
|
108
|
- {misort: 49, viewNum: 4}, // 双肩包
|
|
|
109
|
- {misort: 50, viewNum: 4}, // 手拎包/单肩包
|
|
|
110
|
- {misort: 60, viewNum: 4}, // 帽子
|
|
|
111
|
- {misort: 65, viewNum: 4}, // 首饰
|
|
|
112
|
- {misort: 59, viewNum: 4}, // 手表
|
|
|
113
|
- {misort: 61, viewNum: 4}, // 太阳镜
|
|
|
114
|
- {misort: 66, viewNum: 4} // 配饰
|
|
|
115
|
- ],
|
|
|
116
|
- kids: [
|
|
|
117
|
- {misort: 366, viewNum: 4}, // T恤
|
|
|
118
|
- {misort: 367, viewNum: 4}, // 衬衫
|
|
|
119
|
- {misort: 396, viewNum: 4}, // 卫衣
|
|
|
120
|
- {misort: 400, viewNum: 4}, // // 毛衣/针织
|
|
|
121
|
- {misort: 404, viewNum: 4}, // 夹克
|
|
|
122
|
- {misort: 369, viewNum: 4}, // 休闲裤
|
|
|
123
|
- {misort: 388, viewNum: 4}, // 牛仔裤
|
|
|
124
|
- {misort: 371, viewNum: 4}, // 连衣裙
|
|
|
125
|
- {misort: 370, viewNum: 4}, // 半身裙
|
|
|
126
|
- {misort: 368, viewNum: 4}, // 休闲/运动鞋
|
|
|
127
|
- {misort: 392, viewNum: 4}, // 双肩包
|
|
|
128
|
- {misort: 414, viewNum: 4}, // 帽子
|
|
|
129
|
- {misort: 372, viewNum: 4}, // 短裤
|
|
|
130
|
- {misort: 384, viewNum: 4}, // 打底裤/紧身裤
|
|
|
131
|
- {misort: 382, viewNum: 4}, // 凉鞋/拖鞋
|
|
|
132
|
- {misort: 402, viewNum: 4}, // 马甲
|
|
|
133
|
- {misort: 386, viewNum: 4}, // 背心
|
|
|
134
|
- {misort: 406, viewNum: 4}, // 大衣/风衣
|
|
|
135
|
- {misort: 430, viewNum: 4}, // 羽绒服
|
|
|
136
|
- {misort: 423, viewNum: 4}, // 棉衣
|
|
|
137
|
- {misort: 417, viewNum: 4} // 套装
|
|
|
138
|
- ],
|
|
|
139
|
- lifestyle: [
|
|
|
140
|
- {sort: 171, viewNum: 5}, // 耳机
|
|
|
141
|
- {sort: 398, viewNum: 5}, // 只能装备
|
|
|
142
|
- {sort: 185, viewNum: 5}, // 相机
|
|
|
143
|
- {misort: 259, viewNum: 5}, // 美妆
|
|
|
144
|
- {sort: 267, viewNum: 5}, // 杯子/水壶
|
|
|
145
|
- {sort: 313, viewNum: 5}, // 手机/ipad壳套
|
|
|
146
|
- {sort: 211, viewNum: 5}, // 数码配件
|
|
|
147
|
- {sort: 292, viewNum: 5}, // 玩偶
|
|
|
148
|
- {sort: 272, viewNum: 5}, // 储物收纳
|
|
|
149
|
- {sort: 183, viewNum: 5}, // 启用家居
|
|
|
150
|
- {sort: 273, viewNum: 5}, // 厨具/餐具
|
|
|
151
|
- {sort: 271, viewNum: 5} // 靠枕/靠垫/抱枕
|
|
|
152
|
- ]
|
|
|
153
|
-};
|
53
|
+const sortMap = dataMap.sort;
|
154
|
|
54
|
|
|
|
55
|
+/**
|
|
|
56
|
+ * 获取导航信息
|
|
|
57
|
+ * @param {[Object]} 原始数据
|
|
|
58
|
+ * @return {[Object]} 转换后的数据
|
|
|
59
|
+ */
|
155
|
const getNavs = rawNavs => {
|
60
|
const getNavs = rawNavs => {
|
156
|
const navs = rawNavs;
|
61
|
const navs = rawNavs;
|
157
|
let list = [];
|
62
|
let list = [];
|
|
@@ -279,23 +184,29 @@ const formatProduct = (productData, showTags, showNew, showSale, width, height, |
|
@@ -279,23 +184,29 @@ const formatProduct = (productData, showTags, showNew, showSale, width, height, |
279
|
return result;
|
184
|
return result;
|
280
|
};
|
185
|
};
|
281
|
|
186
|
|
282
|
-const getBannerList = data => {
|
|
|
283
|
- let list = [];
|
|
|
284
|
|
187
|
|
285
|
- _.forEach(data, (bannerData) => {
|
|
|
286
|
- let obj = {};
|
|
|
287
|
-
|
|
|
288
|
- obj.href = bannerData.url;
|
|
|
289
|
- obj.img = bannerData.src;
|
|
|
290
|
- obj.name = bannerData.title;
|
188
|
+/**
|
|
|
189
|
+ * 获取普通banner
|
|
|
190
|
+ * @param {[Object]} data 原始数据
|
|
|
191
|
+ * @return {[Object]} 转换后的数据
|
|
|
192
|
+ */
|
|
|
193
|
+const getBannerList = data => {
|
291
|
|
194
|
|
292
|
- list.push(obj);
|
195
|
+ return _.map(data, item => {
|
|
|
196
|
+ return Object.assign(item, {
|
|
|
197
|
+ href: item.url,
|
|
|
198
|
+ img: item.src,
|
|
|
199
|
+ name: item.title
|
|
|
200
|
+ });
|
293
|
});
|
201
|
});
|
294
|
-
|
|
|
295
|
- return list;
|
|
|
296
|
};
|
202
|
};
|
297
|
|
203
|
|
298
|
|
204
|
|
|
|
205
|
+/**
|
|
|
206
|
+ * 获取带小图的banner
|
|
|
207
|
+ * @param {[Object]} data 原始数据
|
|
|
208
|
+ * @return {[Object]} 转换后的数据
|
|
|
209
|
+ */
|
299
|
const getDebrisSlide = data => {
|
210
|
const getDebrisSlide = data => {
|
300
|
let floorData = {
|
211
|
let floorData = {
|
301
|
debrisSlider: {
|
212
|
debrisSlider: {
|
|
@@ -319,6 +230,12 @@ const getDebrisSlide = data => { |
|
@@ -319,6 +230,12 @@ const getDebrisSlide = data => { |
319
|
return floorData;
|
230
|
return floorData;
|
320
|
};
|
231
|
};
|
321
|
|
232
|
|
|
|
233
|
+
|
|
|
234
|
+/**
|
|
|
235
|
+ * 获取广告位
|
|
|
236
|
+ * @param {Object} data 原始数据
|
|
|
237
|
+ * @return {Object} 转换后的数据
|
|
|
238
|
+ */
|
322
|
const getadbannerData = data => {
|
239
|
const getadbannerData = data => {
|
323
|
const obj = {
|
240
|
const obj = {
|
324
|
adbanner: {
|
241
|
adbanner: {
|
|
@@ -335,6 +252,11 @@ const getadbannerData = data => { |
|
@@ -335,6 +252,11 @@ const getadbannerData = data => { |
335
|
return obj;
|
252
|
return obj;
|
336
|
};
|
253
|
};
|
337
|
|
254
|
|
|
|
255
|
+/**
|
|
|
256
|
+ * 生成banner模板数据
|
|
|
257
|
+ * @param {Object} srcData 原始数据
|
|
|
258
|
+ * @return {Object} 转换后的数据
|
|
|
259
|
+ */
|
338
|
const getSlideData = srcData => {
|
260
|
const getSlideData = srcData => {
|
339
|
const slideData = {
|
261
|
const slideData = {
|
340
|
slide: {
|
262
|
slide: {
|
|
@@ -359,6 +281,11 @@ const getSlideData = srcData => { |
|
@@ -359,6 +281,11 @@ const getSlideData = srcData => { |
359
|
};
|
281
|
};
|
360
|
|
282
|
|
361
|
|
283
|
|
|
|
284
|
+/**
|
|
|
285
|
+ * 获取最新速报模板数据
|
|
|
286
|
+ * @param {Object} srcData 原始数据
|
|
|
287
|
+ * @return {Object} 转换后的数据
|
|
|
288
|
+ */
|
362
|
const getNewReportFloorData = args => {
|
289
|
const getNewReportFloorData = args => {
|
363
|
const title = args[0].data.text;
|
290
|
const title = args[0].data.text;
|
364
|
let item = args[1].data;
|
291
|
let item = args[1].data;
|
|
@@ -412,11 +339,23 @@ const getNewReportFloorData = args => { |
|
@@ -412,11 +339,23 @@ const getNewReportFloorData = args => { |
412
|
return floorDatas;
|
339
|
return floorDatas;
|
413
|
};
|
340
|
};
|
414
|
|
341
|
|
|
|
342
|
+
|
|
|
343
|
+/**
|
|
|
344
|
+ * 给目标对象绑定频道属性
|
|
|
345
|
+ * @param {Object} obj 需要绑定频道属性的对象
|
|
|
346
|
+ * @param {String} type 需要设置的频道类型
|
|
|
347
|
+ * @return undefined
|
|
|
348
|
+ */
|
415
|
const setChannelType = (obj, type) => {
|
349
|
const setChannelType = (obj, type) => {
|
416
|
obj[type + 'Channel'] = true;
|
350
|
obj[type + 'Channel'] = true;
|
417
|
};
|
351
|
};
|
418
|
|
352
|
|
419
|
-// 优选品牌
|
353
|
+/**
|
|
|
354
|
+ * 获取优选品牌模板数据
|
|
|
355
|
+ * @param {[Object]} args 参数列表
|
|
|
356
|
+ * @param {String} type 频道类型
|
|
|
357
|
+ * @return {Object}
|
|
|
358
|
+ */
|
420
|
const getPreBrandTopData = (args, type) => {
|
359
|
const getPreBrandTopData = (args, type) => {
|
421
|
const title = args[0].data.text;
|
360
|
const title = args[0].data.text;
|
422
|
let item = args[1].data;
|
361
|
let item = args[1].data;
|
|
@@ -443,7 +382,12 @@ const getPreBrandTopData = (args, type) => { |
|
@@ -443,7 +382,12 @@ const getPreBrandTopData = (args, type) => { |
443
|
return data;
|
382
|
return data;
|
444
|
};
|
383
|
};
|
445
|
|
384
|
|
446
|
-// 热门品类
|
385
|
+/**
|
|
|
386
|
+ * 获取热门分类模板数据
|
|
|
387
|
+ * @param {[Object]} args 参数列表
|
|
|
388
|
+ * @param {String} type 频道类型
|
|
|
389
|
+ * @return {Object}
|
|
|
390
|
+ */
|
447
|
const getHotGoodsFloorData = (args, type) => {
|
391
|
const getHotGoodsFloorData = (args, type) => {
|
448
|
let item = args[0];
|
392
|
let item = args[0];
|
449
|
let nextItem = args[1];
|
393
|
let nextItem = args[1];
|
|
@@ -523,6 +467,12 @@ const getHotGoodsFloorData = (args, type) => { |
|
@@ -523,6 +467,12 @@ const getHotGoodsFloorData = (args, type) => { |
523
|
};
|
467
|
};
|
524
|
|
468
|
|
525
|
|
469
|
|
|
|
470
|
+/**
|
|
|
471
|
+ * 获取boys人气单品模版数据
|
|
|
472
|
+ * @param {[Object]} args 参数列表
|
|
|
473
|
+ * @param {String} type 频道类型
|
|
|
474
|
+ * @return {Object}
|
|
|
475
|
+ */
|
526
|
const getBoysSingleHot = (args, type) => {
|
476
|
const getBoysSingleHot = (args, type) => {
|
527
|
const len = 10;
|
477
|
const len = 10;
|
528
|
const data = {
|
478
|
const data = {
|
|
@@ -568,6 +518,12 @@ const getBoysSingleHot = (args, type) => { |
|
@@ -568,6 +518,12 @@ const getBoysSingleHot = (args, type) => { |
568
|
return floorDatas;
|
518
|
return floorDatas;
|
569
|
};
|
519
|
};
|
570
|
|
520
|
|
|
|
521
|
+/**
|
|
|
522
|
+ * 获取girls人气单品模版数据
|
|
|
523
|
+ * @param {[Object]} args 参数列表
|
|
|
524
|
+ * @param {String} type 频道类型
|
|
|
525
|
+ * @return {Object}
|
|
|
526
|
+ */
|
571
|
const getGirlsSingleHot = args => {
|
527
|
const getGirlsSingleHot = args => {
|
572
|
let goods = args[2].data;
|
528
|
let goods = args[2].data;
|
573
|
let skns = '';
|
529
|
let skns = '';
|
|
@@ -591,7 +547,12 @@ const getGirlsSingleHot = args => { |
|
@@ -591,7 +547,12 @@ const getGirlsSingleHot = args => { |
591
|
};
|
547
|
};
|
592
|
|
548
|
|
593
|
|
549
|
|
594
|
-// 人气单品
|
550
|
+/**
|
|
|
551
|
+ * 人气单品入口
|
|
|
552
|
+ * @param {[Object]} args 参数列表
|
|
|
553
|
+ * @param {String} type 频道类型
|
|
|
554
|
+ * @return {Object}
|
|
|
555
|
+ */
|
595
|
const getSingleHotFloorData = (args, type) => {
|
556
|
const getSingleHotFloorData = (args, type) => {
|
596
|
if (type === 'boys') {
|
557
|
if (type === 'boys') {
|
597
|
return getBoysSingleHot(args, type);
|
558
|
return getBoysSingleHot(args, type);
|
|
@@ -600,6 +561,13 @@ const getSingleHotFloorData = (args, type) => { |
|
@@ -600,6 +561,13 @@ const getSingleHotFloorData = (args, type) => { |
600
|
}
|
561
|
}
|
601
|
};
|
562
|
};
|
602
|
|
563
|
|
|
|
564
|
+/**
|
|
|
565
|
+ * 处理异步获取的人气单品数据
|
|
|
566
|
+ * @param {[Object]} args 参数列表
|
|
|
567
|
+ * @param {Object} queryResult 异步获取的数据
|
|
|
568
|
+ * @param {String} type 频道类型
|
|
|
569
|
+ * @return {Object}
|
|
|
570
|
+ */
|
603
|
const getAsyncSingleHot = (args, queryResult, type) => {
|
571
|
const getAsyncSingleHot = (args, queryResult, type) => {
|
604
|
const data = {
|
572
|
const data = {
|
605
|
singlehot: {
|
573
|
singlehot: {
|
|
@@ -622,32 +590,42 @@ const getAsyncSingleHot = (args, queryResult, type) => { |
|
@@ -622,32 +590,42 @@ const getAsyncSingleHot = (args, queryResult, type) => { |
622
|
});
|
590
|
});
|
623
|
}
|
591
|
}
|
624
|
|
592
|
|
625
|
- _.forEach(queryResult.data.product_list, (it, index) => {
|
|
|
626
|
- let obj = {};
|
|
|
627
|
- const formatData = formatProduct(it, true, true, true, 280, 373);
|
|
|
628
|
-
|
|
|
629
|
- if (index > 12) {
|
|
|
630
|
- return;
|
|
|
631
|
- }
|
593
|
+ if (queryResult.data) {
|
|
|
594
|
+ _.forEach(queryResult.data.product_list || [], (it, index) => {
|
|
|
595
|
+ let obj = {};
|
|
|
596
|
+ const formatData = formatProduct(it, true, true, true, 280, 373);
|
632
|
|
597
|
|
|
|
598
|
+ if (index > 12) {
|
|
|
599
|
+ return;
|
|
|
600
|
+ }
|
633
|
|
601
|
|
634
|
- obj.price = formatData.salePrice;
|
|
|
635
|
- obj.href = formatData.url;
|
|
|
636
|
- obj.img = formatData.thumb;
|
|
|
637
|
- obj.name = formatData.name;
|
|
|
638
|
|
602
|
|
639
|
- if (index < 3) {
|
|
|
640
|
- obj.tip = 'TOP' + (index + 1);
|
|
|
641
|
- }
|
603
|
+ obj.price = formatData.salePrice;
|
|
|
604
|
+ obj.href = formatData.url;
|
|
|
605
|
+ obj.img = formatData.thumb;
|
|
|
606
|
+ obj.name = formatData.name;
|
642
|
|
607
|
|
643
|
- data.singlehot.imgHot.push(obj);
|
|
|
644
|
- });
|
608
|
+ if (index < 3) {
|
|
|
609
|
+ obj.tip = 'TOP' + (index + 1);
|
|
|
610
|
+ }
|
645
|
|
611
|
|
|
|
612
|
+ data.singlehot.imgHot.push(obj);
|
|
|
613
|
+ });
|
|
|
614
|
+ }
|
646
|
data.singlehot.navs = getNavs(args[1].data);
|
615
|
data.singlehot.navs = getNavs(args[1].data);
|
647
|
setChannelType(data.singlehot, type);
|
616
|
setChannelType(data.singlehot, type);
|
648
|
return data;
|
617
|
return data;
|
649
|
};
|
618
|
};
|
650
|
|
619
|
|
|
|
620
|
+/**
|
|
|
621
|
+ * 异步获取人气单品
|
|
|
622
|
+ * @param {[Object]} rawData 接口返回的原始数据
|
|
|
623
|
+ * @param {[Object]} floorData 已经经过处理的楼层数据
|
|
|
624
|
+ * @param {Object} queryResult 接口中用于请求人气单品的数据
|
|
|
625
|
+ * @param {String} title 人气单品楼层的标题
|
|
|
626
|
+ * @param {Type} type 人气单品楼层的类型
|
|
|
627
|
+ * @return {Object}
|
|
|
628
|
+ */
|
651
|
const processFloorDataWithQueryReusult = (rawData, floorData, queryResult, title, type) => {
|
629
|
const processFloorDataWithQueryReusult = (rawData, floorData, queryResult, title, type) => {
|
652
|
let data = {};
|
630
|
let data = {};
|
653
|
|
631
|
|
|
@@ -716,7 +694,7 @@ exports.getNewArrival = channel => { |
|
@@ -716,7 +694,7 @@ exports.getNewArrival = channel => { |
716
|
result = [];
|
694
|
result = [];
|
717
|
|
695
|
|
718
|
_.forEach(sortList, (it, index) => {
|
696
|
_.forEach(sortList, (it, index) => {
|
719
|
- if (res[index].data.product_list.length === sortList[index].viewNum) {
|
697
|
+ if (res[index].data.product_list && res[index].data.product_list.length === sortList[index].viewNum) {
|
720
|
data = data.concat(res[index].data.product_list);
|
698
|
data = data.concat(res[index].data.product_list);
|
721
|
}
|
699
|
}
|
722
|
});
|
700
|
});
|
|
@@ -825,8 +803,9 @@ const processFloorData = (rawData, type) => { |
|
@@ -825,8 +803,9 @@ const processFloorData = (rawData, type) => { |
825
|
let floorList = [];
|
803
|
let floorList = [];
|
826
|
let searchPromise = [];
|
804
|
let searchPromise = [];
|
827
|
let singlehotFloorIndex = [];
|
805
|
let singlehotFloorIndex = [];
|
828
|
- let singlehotFloorTitile = [];
|
806
|
+ let singlehotFloorTitle = [];
|
829
|
|
807
|
|
|
|
808
|
+ // 定义各种楼层需要用到的接口返回的数组中元素的个数
|
830
|
const bigFloorLength = 5;
|
809
|
const bigFloorLength = 5;
|
831
|
const normalFloorLength = 3;
|
810
|
const normalFloorLength = 3;
|
832
|
const hotCategoryLength = 2;
|
811
|
const hotCategoryLength = 2;
|
|
@@ -876,7 +855,7 @@ const processFloorData = (rawData, type) => { |
|
@@ -876,7 +855,7 @@ const processFloorData = (rawData, type) => { |
876
|
singlehotFloorIndex.push(floorList.length);
|
855
|
singlehotFloorIndex.push(floorList.length);
|
877
|
|
856
|
|
878
|
// 记住楼层标题, 以便后面promise获取数据后插入楼层数据
|
857
|
// 记住楼层标题, 以便后面promise获取数据后插入楼层数据
|
879
|
- singlehotFloorTitile.push(getText(data.data.text));
|
858
|
+ singlehotFloorTitle.push(getText(data.data.text));
|
880
|
} else if (!_.isNil(floorData)) {
|
859
|
} else if (!_.isNil(floorData)) {
|
881
|
_.isArray(floorData) ?
|
860
|
_.isArray(floorData) ?
|
882
|
floorList = floorList.concat(floorData) :
|
861
|
floorList = floorList.concat(floorData) :
|
|
@@ -887,7 +866,7 @@ const processFloorData = (rawData, type) => { |
|
@@ -887,7 +866,7 @@ const processFloorData = (rawData, type) => { |
887
|
return {
|
866
|
return {
|
888
|
floors: floorList,
|
867
|
floors: floorList,
|
889
|
promise: _.reverse(searchPromise),
|
868
|
promise: _.reverse(searchPromise),
|
890
|
- singlehotFloorTitile: _.reverse(singlehotFloorTitile),
|
869
|
+ singlehotFloorTitle: _.reverse(singlehotFloorTitle),
|
891
|
singlehotFloorIndex: _.reverse(singlehotFloorIndex)
|
870
|
singlehotFloorIndex: _.reverse(singlehotFloorIndex)
|
892
|
};
|
871
|
};
|
893
|
};
|
872
|
};
|
|
@@ -895,8 +874,8 @@ const processFloorData = (rawData, type) => { |
|
@@ -895,8 +874,8 @@ const processFloorData = (rawData, type) => { |
895
|
|
874
|
|
896
|
/**
|
875
|
/**
|
897
|
* 获取频道页数据
|
876
|
* 获取频道页数据
|
898
|
- * @param {string} type 传入频道页类型,值可以是: boys, girls, kids, lifestyle
|
|
|
899
|
- * @return {object}
|
877
|
+ * @param {String} type 传入频道页类型,值可以是: boys, girls, kids, lifestyle
|
|
|
878
|
+ * @return {Object}
|
900
|
*/
|
879
|
*/
|
901
|
exports.getContent = type => {
|
880
|
exports.getContent = type => {
|
902
|
return Promise.all([headerModel.requestHeaderData(type), requestContent(type)]).then(res => {
|
881
|
return Promise.all([headerModel.requestHeaderData(type), requestContent(type)]).then(res => {
|
|
@@ -921,7 +900,7 @@ exports.getContent = type => { |
|
@@ -921,7 +900,7 @@ exports.getContent = type => { |
921
|
floorData: data,
|
900
|
floorData: data,
|
922
|
searchPromise: processResult.promise,
|
901
|
searchPromise: processResult.promise,
|
923
|
singlehotFloorIndex: processResult.singlehotFloorIndex,
|
902
|
singlehotFloorIndex: processResult.singlehotFloorIndex,
|
924
|
- singlehotFloorTitile: processResult.singlehotFloorTitile,
|
903
|
+ singlehotFloorTitle: processResult.singlehotFloorTitle,
|
925
|
channelType: type
|
904
|
channelType: type
|
926
|
};
|
905
|
};
|
927
|
|
906
|
|
|
@@ -934,7 +913,7 @@ exports.getContent = type => { |
|
@@ -934,7 +913,7 @@ exports.getContent = type => { |
934
|
result.floorData.channel
|
913
|
result.floorData.channel
|
935
|
.splice(result.singlehotFloorIndex[index], 0,
|
914
|
.splice(result.singlehotFloorIndex[index], 0,
|
936
|
processFloorDataWithQueryReusult(result.rawData,
|
915
|
processFloorDataWithQueryReusult(result.rawData,
|
937
|
- result.floorData, data, result.singlehotFloorTitile[index], result.channelType));
|
916
|
+ result.floorData, data, result.singlehotFloorTitle[index], result.channelType));
|
938
|
});
|
917
|
});
|
939
|
|
918
|
|
940
|
return result.floorData;
|
919
|
return result.floorData;
|