Authored by ccbikai

增加filter

... ... @@ -131,11 +131,22 @@ exports.vip = (req, res) => {
});
};
exports.filter = (req, res) => {
let params = Object.assign({}, req.query);
saleModel.getFilterData(params).then((result) => {
res.render('product', {
layout: false,
params: params,
filter: result
});
});
};
exports.search = (req, res) => {
let params = Object.assign({}, req.query);
saleModel.getSearchData(params).then((result) => {
res.render('product', {
layout: false,
params: params,
... ...
... ... @@ -127,7 +127,7 @@ const procProductImg = (product, gender) => {
/**
* 商品搜索数据处理
*/
const processSearch = (list, options) => {
const processProductList = (list, options) => {
const pruductList = [];
options = Object.assign({
... ... @@ -218,96 +218,10 @@ const processSearch = (list, options) => {
pruductList.push(product);
});
return pruductList;
};
/* eslint-disable */
// /**
// * 格式化商品信息
// *
// * @param array $productData 需要格式化的商品数据
// * @param bool $showTags 控制是否显示标签
// * @param bool $showNew 控制是否显示NEW图标
// * @param bool $showSale 控制是否显示SALE图标
// * @param int $width 图片的宽度
// * @param int $height 图片的高度
// * @param bool $isApp 判断是不是APP访问
// * @param bool $showPoint 商品价格是否显示小数位,默认显示
// * @return array | false
// */
// public static function formatProduct($productData, $showTags = true, $showNew = true, $showSale = true, $width = 290, $height = 388, $isApp = false, $showPoint = true)
// {
// // 商品信息有问题,则不显示
// if (!isset($productData['product_skn']) || !isset($productData['goods_list'][0])) {
// return false;
// }
//
// // 市场价和售价一样,则不显示市场价
// if (intval($productData['market_price']) === intval($productData['sales_price'])) {
// $productData['market_price'] = false;
// }
//
// // 判别默认的商品是否将默认的图片URL赋值到skn
// $flag = false;
// // 如果设置了默认图片,就取默认的图片
// foreach ($productData['goods_list'] as $oneGoods) {
// // 此skc是默认的,则将图片赋值给skn
// if ($oneGoods['is_default'] === 'Y') {
// $productData['default_images'] = self::procProductImg($oneGoods);
// $flag = true;
// break;
// }
// }
// // 如果还未赋值,则取第一个skc产品的默认图片
// if (!$flag) {
// $productData['default_images'] = self::procProductImg($productData['goods_list'][0]);
// }
//
// $result = array();
// $result['id'] = $productData['product_skn'];
// $result['product_id'] = $productData['product_id'];
// $result['thumb'] = Images::getImageUrl($productData['default_images'], $width, $height);
// $result['name'] = $productData['product_name'];
// $result['price'] = empty($productData['market_price']) ? false : $productData['market_price'];
// $result['salePrice'] = $productData['sales_price'];
// if ($showPoint) {
// $result['price'] && $result['price'] .= '.00';
// $result['salePrice'] && $result['salePrice'] .= '.00';
// }
// $result['is_soon_sold_out'] = ($productData['is_soon_sold_out'] === 'Y');
// $result['url'] = self::url('/product/pro_' . $productData['product_id'] . '_'
// . $productData['goods_list'][0]['goods_id']
// . '/' . $productData['cn_alphabet'] . '.html');
// // APP访问需要加附加的参数
// // 备注:如果以后APP的接口太多,可以把这边参数提取出来,变成一个公共的方法来生成,便于以后管理维护
// if ($isApp) {
// $result['url'] .= '?openby:yohobuy={"action":"go.productDetail","params":{"product_skn":' . $productData['product_skn'] . '}}';
// }
//
// if ($showTags) {
// $result['tags'] = array();
// $result['tags']['is_new'] = $showNew && isset($productData['is_new']) && $productData['is_new'] === 'Y'; // 新品
// $result['tags']['is_discount'] = $showSale && isset($productData['is_discount']) && $productData['is_discount'] === 'Y'; // 在售
// $result['tags']['is_limited'] = isset($productData['is_limited']) && $productData['is_limited'] === 'Y'; // 限量
// $result['tags']['is_yohood'] = isset($productData['is_yohood']) && $productData['is_yohood'] === 'Y'; // YOHOOD
// $result['tags']['midYear'] = isset($productData['mid-year']) && $productData['mid-year'] === 'Y'; // 年中
// $result['tags']['yearEnd'] = isset($productData['year-end']) && $productData['year-end'] === 'Y'; // 年末
// $result['tags']['is_advance'] = isset($productData['is_advance']) && $productData['is_advance'] === 'Y'; // 再到着
// // 打折与即将售完组合显示打折
// if ($result['is_soon_sold_out'] && $result['tags']['is_discount']) {
// $result['tags']['is_new'] = false;
// }
// // 打折与其它组合则隐藏打折
// elseif ($result['tags']['is_discount'] &&
// ($result['tags']['is_new'] || $result['tags']['is_limited'] || $result['tags']['is_yohood'] || $result['tags']['is_advance'])) {
// $result['tags']['is_discount'] = false;
// }
// // YOHOOD和新品组合显示YOHOOD
// elseif ($result['tags']['is_yohood'] && $result['tags']['is_new']) {
// $result['tags']['is_new'] = false;
// }
// }
//
// return $result;
// }
const processFilter = (list) => {
return list;
};
/**
... ... @@ -335,16 +249,20 @@ const processBreakingSort = (list) => {
return formatData;
};
const searchSales = (params) => {
params = params || {};
return api.get('', sign.apiSign(Object.assign({
method: 'app.search.sales'
}, params)), true);
};
/**
* 获取商品数据
*/
exports.getSearchData = (params) => {
return api.get('', sign.apiSign(Object.assign({
method: 'app.search.sales'
}, params))).then((result) => {
exports.getFilterData = (params) => {
return searchSales(params).then((result) => {
if (result && result.code === 200) {
return processSearch(result);
return processFilter(result.data.filter || []);
} else {
logger.error('SALE 商品搜索返回 code 不是 200');
return [];
... ... @@ -353,6 +271,20 @@ exports.getSearchData = (params) => {
};
/**
* 获取商品数据
*/
exports.getSearchData = (params) => {
return searchSales(params).then((result) => {
if (result && result.code === 200) {
return processProductList(result.data.product_list || []);
} else {
logger.error('SALE 商品搜索返回 code 不是 200');
return {};
}
});
};
/**
* 获取资源位数据
*/
const getResources = (page) => {
... ... @@ -391,32 +323,20 @@ const getBreakingSort = (yhChannel) => {
});
};
const getSpecial = (params) => {
}
/**
* 获取商品数据
* 获取sale首页数据
*/
exports.getSearchData = (params) => {
params = params || {};
return api.get('', sign.apiSign(Object.assign({
method: 'app.search.sales'
}, params))).then((result) => {
if (result && result.code === 200) {
return processSearch(result.data.product_list || []);
} else {
logger.error('SALE 商品搜索返回 code 不是 200');
return {};
}
});
exports.getSaleData = () => {
return getResources('sale');
};
/**
* 获取sale首页数据
* 获取会员享数据
* @param {[object]} params
* @return {[object]}
*/
exports.getSaleData = () => {
return getResources('sale');
exports.getVipData = () => {
return getResources('vip');
};
/**
... ... @@ -434,6 +354,10 @@ exports.getBreakCodeData = (params) => {
});
};
// const getSpecial = (params) => {
//
// };
/**
* 获取折扣专场专题列表数据
* @param {[object]} params
... ... @@ -486,13 +410,3 @@ exports.getSpecialDetailData = (id) => {
}
});
};
/**
* 获取会员享数据
* @param {[object]} params
* @return {[object]}
*/
exports.getVipData = (params) => {
return getResources('vip');
};
... ...
{{> common/filter}}
... ...
... ... @@ -92,6 +92,7 @@
"yoho-handlebars": "^4.0.5",
"yoho-jquery": "^1.9.1",
"yoho-jquery-lazyload": "^1.9.7",
"yoho-mlellipsis": "0.0.2",
"yoho-swiper": "^3.3.1"
}
}
... ...