Showing
1 changed file
with
96 additions
and
98 deletions
@@ -111,38 +111,34 @@ const _getProductFavoriteDataAsync = (uid, pid, bid) => { | @@ -111,38 +111,34 @@ const _getProductFavoriteDataAsync = (uid, pid, bid) => { | ||
111 | const _getTagsDataByProductInfo = (data) => { | 111 | const _getTagsDataByProductInfo = (data) => { |
112 | let tags = {}; | 112 | let tags = {}; |
113 | 113 | ||
114 | - if (data.productTagBoList) { | ||
115 | - data.productTagBoList.forEach( | ||
116 | - value => { | ||
117 | - switch (value.tagLabel) { | ||
118 | - case 'is_soon_sold_out': // 即将售磬 | ||
119 | - tags.isFew = true; | ||
120 | - break; | ||
121 | - case 'is_new': // 新品NEW | ||
122 | - tags.isNew = true; | ||
123 | - break; | ||
124 | - case 'is_discount': // SALE | ||
125 | - tags.isSale = true; | ||
126 | - break; | ||
127 | - case 'is_limited': // 限量 | ||
128 | - tags.isLimit = true; | ||
129 | - break; | ||
130 | - case 'is_yohood': // YOHOOD | ||
131 | - tags.isNewFestival = true; | ||
132 | - break; | ||
133 | - case 'is_advance': // 再到着 | ||
134 | - tags.isReNew = true; | ||
135 | - break; | ||
136 | - case 'midYear':// 年中热促 | ||
137 | - tags.isYearMidPromotion = true; | ||
138 | - break; | ||
139 | - case 'yearEnd':// 年终大促 | ||
140 | - tags.isYearEndPromotion = true; | ||
141 | - break; | ||
142 | - } | ||
143 | - } | ||
144 | - ); | ||
145 | - } | 114 | + _.get(data, 'productTagBoList', []).forEach((value) => { |
115 | + switch (value.tagLabel) { | ||
116 | + case 'is_soon_sold_out': // 即将售磬 | ||
117 | + tags.isFew = true; | ||
118 | + break; | ||
119 | + case 'is_new': // 新品NEW | ||
120 | + tags.isNew = true; | ||
121 | + break; | ||
122 | + case 'is_discount': // SALE | ||
123 | + tags.isSale = true; | ||
124 | + break; | ||
125 | + case 'is_limited': // 限量 | ||
126 | + tags.isLimit = true; | ||
127 | + break; | ||
128 | + case 'is_yohood': // YOHOOD | ||
129 | + tags.isNewFestival = true; | ||
130 | + break; | ||
131 | + case 'is_advance': // 再到着 | ||
132 | + tags.isReNew = true; | ||
133 | + break; | ||
134 | + case 'midYear':// 年中热促 | ||
135 | + tags.isYearMidPromotion = true; | ||
136 | + break; | ||
137 | + case 'yearEnd':// 年终大促 | ||
138 | + tags.isYearEndPromotion = true; | ||
139 | + break; | ||
140 | + } | ||
141 | + }); | ||
146 | return tags; | 142 | return tags; |
147 | }; | 143 | }; |
148 | 144 | ||
@@ -759,19 +755,22 @@ const _detailDataPkg = (origin, uid, vipLevel) => { | @@ -759,19 +755,22 @@ const _detailDataPkg = (origin, uid, vipLevel) => { | ||
759 | 755 | ||
760 | if (domainBrand.type && domainBrand.shopId) { | 756 | if (domainBrand.type && domainBrand.shopId) { |
761 | switch (parseInt(domainBrand.type, 10)) { | 757 | switch (parseInt(domainBrand.type, 10)) { |
762 | - case 1: { | 758 | + case 1: |
759 | + { | ||
763 | // 多品店不显示 | 760 | // 多品店不显示 |
764 | banner = []; | 761 | banner = []; |
765 | break; | 762 | break; |
766 | } | 763 | } |
767 | - case 2: { | 764 | + case 2: |
765 | + { | ||
768 | // 单品店显示新版的店铺banner | 766 | // 单品店显示新版的店铺banner |
769 | let basisData = yield shopService.basisTemplateAsync(domainBrand.shopId); | 767 | let basisData = yield shopService.basisTemplateAsync(domainBrand.shopId); |
770 | 768 | ||
771 | banner.bgImg = basisData.shopTopBanner.banner || banner.bgImg; | 769 | banner.bgImg = basisData.shopTopBanner.banner || banner.bgImg; |
772 | break; | 770 | break; |
773 | } | 771 | } |
774 | - default: { | 772 | + default: |
773 | + { | ||
775 | break; | 774 | break; |
776 | } | 775 | } |
777 | } | 776 | } |
@@ -942,84 +941,83 @@ const _sizeInfoBoSort = (sizeInfoBo) => { | @@ -942,84 +941,83 @@ const _sizeInfoBoSort = (sizeInfoBo) => { | ||
942 | * @returns {{}} | 941 | * @returns {{}} |
943 | */ | 942 | */ |
944 | const _getSizeData = (sizeInfo) => { | 943 | const _getSizeData = (sizeInfo) => { |
945 | - let size = {}; | 944 | + if (!_.has(sizeInfo, 'sizeInfoBo')) { |
945 | + return {}; | ||
946 | + } | ||
946 | 947 | ||
947 | // 尺码信息 | 948 | // 尺码信息 |
948 | - if (sizeInfo.sizeInfoBo) { | ||
949 | - sizeInfo.sizeInfoBo = _sizeInfoBoSort(sizeInfo.sizeInfoBo); | ||
950 | - | ||
951 | - let boyReference = !!sizeInfo.productExtra.boyReference; | ||
952 | - | ||
953 | - let girlReference = !!sizeInfo.productExtra.girlReference; | ||
954 | - | ||
955 | - let gender = sizeInfo.productDescBo.gender || 3; | ||
956 | - | ||
957 | - let referenceName = '参考尺码'; | ||
958 | - | ||
959 | - if ((gender === 1 && boyReference) || (gender === 2 && girlReference)) { | ||
960 | - referenceName = '参考尺码'; | ||
961 | - } else if (gender === 3 && boyReference) { | ||
962 | - referenceName = '参考尺码(男)'; | 949 | + sizeInfo.sizeInfoBo = _sizeInfoBoSort(sizeInfo.sizeInfoBo); |
950 | + | ||
951 | + let boyReference = _.get(sizeInfo, 'productExtra.boyReference', false); | ||
952 | + let girlReference = _.get(sizeInfo, 'productExtra.girlReference', false); | ||
953 | + let gender = _.get(sizeInfo, 'productDescBo.gender', 3); | ||
954 | + let referenceName = (function() { | ||
955 | + if (gender === 3 && boyReference) { | ||
956 | + return '参考尺码(男)'; | ||
963 | } else if (gender === 3 && girlReference) { | 957 | } else if (gender === 3 && girlReference) { |
964 | - referenceName = '参考尺码(女)'; | 958 | + return '参考尺码(女)'; |
959 | + } else { | ||
960 | + return '参考尺码'; | ||
965 | } | 961 | } |
962 | + }()); | ||
966 | 963 | ||
967 | - // 判断是否显示参考尺码 | ||
968 | - let showReference = (boyReference && sizeInfo.sizeInfoBo.sizeBoList[0].boyReferSize) || | ||
969 | - (girlReference && sizeInfo.sizeInfoBo.sizeBoList[0].girlReferSize); | 964 | + // 判断是否显示参考尺码 |
965 | + let showReference = (boyReference && _.get(sizeInfo, 'sizeInfoBo.sizeBoList[0].boyReferSize', false)) || | ||
966 | + (girlReference && _.get(sizeInfo, 'sizeInfoBo.sizeBoList[0].girlReferSize', false)); | ||
970 | 967 | ||
971 | - if (sizeInfo.sizeInfoBo.sizeAttributeBos) { | ||
972 | - // 尺码信息头部 | ||
973 | - size.thead = [{name: '吊牌尺码', id: ''}]; | ||
974 | - | ||
975 | - // 显示参考尺码 | ||
976 | - if (showReference) { | ||
977 | - size.thead[1] = {name: referenceName, id: ''}; | ||
978 | - } | 968 | + if (!_.has(sizeInfo, 'sizeInfoBo.sizeAttributeBos')) { |
969 | + return {}; | ||
970 | + } | ||
979 | 971 | ||
980 | - sizeInfo.sizeInfoBo.sizeAttributeBos.forEach(attr => { | ||
981 | - size.thead.push({ | ||
982 | - name: attr.attributeName || ' ', | ||
983 | - id: attr.id | ||
984 | - }); | ||
985 | - }); | 972 | + // 尺码信息头部 |
973 | + let size = { | ||
974 | + thead: [{name: '吊牌尺码', id: ''}], | ||
975 | + tbody: [] | ||
976 | + }; | ||
986 | 977 | ||
978 | + // 显示参考尺码 | ||
979 | + if (showReference) { | ||
980 | + size.thead[1] = {name: referenceName, id: ''}; | ||
981 | + } | ||
987 | 982 | ||
988 | - size.tbody = []; | 983 | + _.get(sizeInfo, 'sizeInfoBo.sizeAttributeBos', []).forEach(attr => { |
984 | + size.thead.push({ | ||
985 | + name: attr.attributeName || ' ', | ||
986 | + id: attr.id | ||
987 | + }); | ||
988 | + }); | ||
989 | 989 | ||
990 | - sizeInfo.sizeInfoBo.sizeBoList.forEach(value => { | 990 | + _.get(sizeInfo, 'sizeInfoBo.sizeBoList', []).forEach(value => { |
991 | 991 | ||
992 | - let sizes = []; | 992 | + let sizes = []; |
993 | 993 | ||
994 | - // 吊牌尺码 | ||
995 | - sizes.push(value.sizeName); | 994 | + // 吊牌尺码 |
995 | + sizes.push(value.sizeName); | ||
996 | 996 | ||
997 | - // 判断是否显示参考尺码 | ||
998 | - if (boyReference && (gender === 1 || gender === 3) && showReference) { | ||
999 | - sizes.push(value.boyReferSize.referenceName || ' '); | ||
1000 | - } else if (girlReference && (gender === 2 || gender === 3) && showReference) { | ||
1001 | - sizes.push(value.girlReferSize.referenceName || ' '); | ||
1002 | - } else { | ||
1003 | - if (size.thead[1] && showReference) { | ||
1004 | - size.thead[1] = {}; | ||
1005 | - } | ||
1006 | - } | 997 | + // 判断是否显示参考尺码 |
998 | + if (boyReference && (gender === 1 || gender === 3) && showReference) { | ||
999 | + sizes.push(_.get(value, 'boyReferSize.referenceName', ' ')); | ||
1000 | + } else if (girlReference && (gender === 2 || gender === 3) && showReference) { | ||
1001 | + sizes.push(_.get(value, 'girlReferSize.referenceName', ' ')); | ||
1002 | + } else { | ||
1003 | + if (size.thead[1] && showReference) { | ||
1004 | + size.thead[1] = {}; | ||
1005 | + } | ||
1006 | + } | ||
1007 | 1007 | ||
1008 | - // 其他尺码信息 | ||
1009 | - value.sortAttributes.forEach(attr => { | ||
1010 | - sizes.push((attr.sizeValue || BLANK_STR)); | ||
1011 | - }); | 1008 | + // 其他尺码信息 |
1009 | + _.get(value, 'sortAttributes', []).forEach(attr => { | ||
1010 | + sizes.push(_.get(attr, 'sizeValue', BLANK_STR)); | ||
1011 | + }); | ||
1012 | 1012 | ||
1013 | - // 尺码信息 | ||
1014 | - size.tbody.push(sizes); | ||
1015 | - }); | 1013 | + // 尺码信息 |
1014 | + size.tbody.push(sizes); | ||
1015 | + }); | ||
1016 | 1016 | ||
1017 | - // 参考尺码为空 | ||
1018 | - if (_.isEmpty(size.thead[1]) && showReference) { | ||
1019 | - // 移除这个值 | ||
1020 | - size.thead.splice(1, 1); | ||
1021 | - } | ||
1022 | - } | 1017 | + // 参考尺码为空 |
1018 | + if (_.isEmpty(size.thead[1]) && showReference) { | ||
1019 | + // 移除这个值 | ||
1020 | + size.thead.splice(1, 1); | ||
1023 | } | 1021 | } |
1024 | 1022 | ||
1025 | // 测量方式 | 1023 | // 测量方式 |
@@ -1377,7 +1375,7 @@ const _getSeoByGoodsInfo = function(goodsInfo, navs) { | @@ -1377,7 +1375,7 @@ const _getSeoByGoodsInfo = function(goodsInfo, navs) { | ||
1377 | const showMainAsync = (data) => { | 1375 | const showMainAsync = (data) => { |
1378 | return co(function * () { | 1376 | return co(function * () { |
1379 | let result = {}; | 1377 | let result = {}; |
1380 | - let currentUserProductInfo = _.curry(_detailDataPkg)(_, data.uid, data.vipLevel); | 1378 | + let currentUserProductInfo = _.partial(_detailDataPkg, data.uid, data.vipLevel); |
1381 | 1379 | ||
1382 | // 获取商品信息 | 1380 | // 获取商品信息 |
1383 | let productInfo = yield productAPI.getProductAsync(data.pid, data.uid).then(currentUserProductInfo); | 1381 | let productInfo = yield productAPI.getProductAsync(data.pid, data.uid).then(currentUserProductInfo); |
-
Please register or login to post a comment