Authored by htoooth

健状性检查

@@ -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);