product.js
3.94 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
'use strict';
const path = require('path');
const _ = require('lodash');
const helpers = global.yoho.helpers;
const utilsPath = path.join(global.utils, '/constant');
const genderMap = require(utilsPath).genderMap;
/**
* 根据性别来决定 默认图片获取字段 如果是 2、3
*/
const _procProductImg = (product, genderVal) => {
let defaultImages;
switch (genderVal) {
case genderMap.men:
defaultImages = product.cover_1 || product.images_url;
break;
case genderMap.women:
defaultImages = product.cover_2 || product.images_url;
break;
default:
defaultImages = product.images_url || product.cover_1 || product.cover_2;
break;
}
defaultImages || (defaultImages = '');
return defaultImages;
};
/**
* 商品搜索商品数据处理
*/
module.exports = (list, options) => {
options = options || {};
const pruductList = [];
if (!options.gender) {
options.gender = '';
}
options = Object.assign({
showTags: true,
showNew: true,
showSale: true,
width: 290,
height: 388,
isApp: false,
showPoint: true,
gender: '',
yhChannel: ''
}, options);
if (Array.isArray(options.gender)) {
options.gender = options.gender[0];
}
let genderVal = options.gender.split(',');
if (genderVal.indexOf(genderMap.men) && genderVal.indexOf(genderMap.women)) { // 男女 通吃
genderVal = '';
} else {
genderVal = genderVal[0];
}
_.forEach(list, (product) => {
// 商品信息有问题,则不显示
if (!product || !product.product_id) {
return;
}
// 如果库存为0,显示已抢完
if (product.storage_num === 0) {
product.no_storage = true;
}
// 市场价和售价一样,则不显示市场价
if (product.market_price === product.sales_price) {
product.market_price = false;
}
product.is_soon_sold_out = product.is_soon_sold_out === 'Y';
product.url = helpers.urlFormat(`/product/pro_${product.product_id}_${_.get(product, 'goods_list[0].goods_id', '')}/${product.cn_alphabet}.html`); // eslint-disable-line
// APP访问需要加附加的参数
// 备注:如果以后APP的接口太多,可以把这边参数提取出来,变成一个公共的方法来生成,便于以后管理维护
if (options.isApp) {
product.url += `?openby:yohobuy={"action":"go.productDetail","params":{"product_skn":'${product.product_id}'}}`; // eslint-disable-line
}
if (options.showTags) {
product.tags = {};
product.tags.is_new = options.showNew && product.is_new === 'Y'; // 新品
product.tags.is_discount = options.showSale && product.is_discount === 'Y'; // 在售
product.tags.is_limited = product.is_limited === 'Y'; // 限量
product.tags.is_yohood = product.is_yohood === 'Y'; // YOHOOD
product.tags.mid_year = product.mid_year === 'Y'; // 年中
product.tags.year_end = product.year_end === 'Y'; // 年末
product.tags.is_advance = product.is_advance === 'Y'; // 再到着
// 打折与即将售完组合显示打折
if (product.isSoonSoldOut && product.tags.is_discount) {
product.tags.is_new = false;
} else if (product.tags.is_discount &&
(product.tags.is_new || product.tags.is_limited || product.tags.is_yohood || product.tags.is_advance)) {
// 打折与其它组合则隐藏打折
product.tags.is_discount = false;
} else if (product.tags.is_yohood && product.tags.is_new) {
// YOHOOD和新品组合显示YOHOOD
product.tags.is_new = false;
}
}
pruductList.push(product);
});
return pruductList;
};