Authored by ccbikai

增加filter

@@ -131,11 +131,22 @@ exports.vip = (req, res) => { @@ -131,11 +131,22 @@ exports.vip = (req, res) => {
131 }); 131 });
132 }; 132 };
133 133
  134 +exports.filter = (req, res) => {
  135 + let params = Object.assign({}, req.query);
  136 +
  137 + saleModel.getFilterData(params).then((result) => {
  138 + res.render('product', {
  139 + layout: false,
  140 + params: params,
  141 + filter: result
  142 + });
  143 + });
  144 +};
  145 +
134 exports.search = (req, res) => { 146 exports.search = (req, res) => {
135 let params = Object.assign({}, req.query); 147 let params = Object.assign({}, req.query);
136 148
137 saleModel.getSearchData(params).then((result) => { 149 saleModel.getSearchData(params).then((result) => {
138 -  
139 res.render('product', { 150 res.render('product', {
140 layout: false, 151 layout: false,
141 params: params, 152 params: params,
@@ -127,7 +127,7 @@ const procProductImg = (product, gender) => { @@ -127,7 +127,7 @@ const procProductImg = (product, gender) => {
127 /** 127 /**
128 * 商品搜索数据处理 128 * 商品搜索数据处理
129 */ 129 */
130 -const processSearch = (list, options) => { 130 +const processProductList = (list, options) => {
131 const pruductList = []; 131 const pruductList = [];
132 132
133 options = Object.assign({ 133 options = Object.assign({
@@ -218,96 +218,10 @@ const processSearch = (list, options) => { @@ -218,96 +218,10 @@ const processSearch = (list, options) => {
218 pruductList.push(product); 218 pruductList.push(product);
219 }); 219 });
220 return pruductList; 220 return pruductList;
  221 +};
221 222
222 - /* eslint-disable */  
223 - // /**  
224 - // * 格式化商品信息  
225 - // *  
226 - // * @param array $productData 需要格式化的商品数据  
227 - // * @param bool $showTags 控制是否显示标签  
228 - // * @param bool $showNew 控制是否显示NEW图标  
229 - // * @param bool $showSale 控制是否显示SALE图标  
230 - // * @param int $width 图片的宽度  
231 - // * @param int $height 图片的高度  
232 - // * @param bool $isApp 判断是不是APP访问  
233 - // * @param bool $showPoint 商品价格是否显示小数位,默认显示  
234 - // * @return array | false  
235 - // */  
236 - // public static function formatProduct($productData, $showTags = true, $showNew = true, $showSale = true, $width = 290, $height = 388, $isApp = false, $showPoint = true)  
237 - // {  
238 - // // 商品信息有问题,则不显示  
239 - // if (!isset($productData['product_skn']) || !isset($productData['goods_list'][0])) {  
240 - // return false;  
241 - // }  
242 - //  
243 - // // 市场价和售价一样,则不显示市场价  
244 - // if (intval($productData['market_price']) === intval($productData['sales_price'])) {  
245 - // $productData['market_price'] = false;  
246 - // }  
247 - //  
248 - // // 判别默认的商品是否将默认的图片URL赋值到skn  
249 - // $flag = false;  
250 - // // 如果设置了默认图片,就取默认的图片  
251 - // foreach ($productData['goods_list'] as $oneGoods) {  
252 - // // 此skc是默认的,则将图片赋值给skn  
253 - // if ($oneGoods['is_default'] === 'Y') {  
254 - // $productData['default_images'] = self::procProductImg($oneGoods);  
255 - // $flag = true;  
256 - // break;  
257 - // }  
258 - // }  
259 - // // 如果还未赋值,则取第一个skc产品的默认图片  
260 - // if (!$flag) {  
261 - // $productData['default_images'] = self::procProductImg($productData['goods_list'][0]);  
262 - // }  
263 - //  
264 - // $result = array();  
265 - // $result['id'] = $productData['product_skn'];  
266 - // $result['product_id'] = $productData['product_id'];  
267 - // $result['thumb'] = Images::getImageUrl($productData['default_images'], $width, $height);  
268 - // $result['name'] = $productData['product_name'];  
269 - // $result['price'] = empty($productData['market_price']) ? false : $productData['market_price'];  
270 - // $result['salePrice'] = $productData['sales_price'];  
271 - // if ($showPoint) {  
272 - // $result['price'] && $result['price'] .= '.00';  
273 - // $result['salePrice'] && $result['salePrice'] .= '.00';  
274 - // }  
275 - // $result['is_soon_sold_out'] = ($productData['is_soon_sold_out'] === 'Y');  
276 - // $result['url'] = self::url('/product/pro_' . $productData['product_id'] . '_'  
277 - // . $productData['goods_list'][0]['goods_id']  
278 - // . '/' . $productData['cn_alphabet'] . '.html');  
279 - // // APP访问需要加附加的参数  
280 - // // 备注:如果以后APP的接口太多,可以把这边参数提取出来,变成一个公共的方法来生成,便于以后管理维护  
281 - // if ($isApp) {  
282 - // $result['url'] .= '?openby:yohobuy={"action":"go.productDetail","params":{"product_skn":' . $productData['product_skn'] . '}}';  
283 - // }  
284 - //  
285 - // if ($showTags) {  
286 - // $result['tags'] = array();  
287 - // $result['tags']['is_new'] = $showNew && isset($productData['is_new']) && $productData['is_new'] === 'Y'; // 新品  
288 - // $result['tags']['is_discount'] = $showSale && isset($productData['is_discount']) && $productData['is_discount'] === 'Y'; // 在售  
289 - // $result['tags']['is_limited'] = isset($productData['is_limited']) && $productData['is_limited'] === 'Y'; // 限量  
290 - // $result['tags']['is_yohood'] = isset($productData['is_yohood']) && $productData['is_yohood'] === 'Y'; // YOHOOD  
291 - // $result['tags']['midYear'] = isset($productData['mid-year']) && $productData['mid-year'] === 'Y'; // 年中  
292 - // $result['tags']['yearEnd'] = isset($productData['year-end']) && $productData['year-end'] === 'Y'; // 年末  
293 - // $result['tags']['is_advance'] = isset($productData['is_advance']) && $productData['is_advance'] === 'Y'; // 再到着  
294 - // // 打折与即将售完组合显示打折  
295 - // if ($result['is_soon_sold_out'] && $result['tags']['is_discount']) {  
296 - // $result['tags']['is_new'] = false;  
297 - // }  
298 - // // 打折与其它组合则隐藏打折  
299 - // elseif ($result['tags']['is_discount'] &&  
300 - // ($result['tags']['is_new'] || $result['tags']['is_limited'] || $result['tags']['is_yohood'] || $result['tags']['is_advance'])) {  
301 - // $result['tags']['is_discount'] = false;  
302 - // }  
303 - // // YOHOOD和新品组合显示YOHOOD  
304 - // elseif ($result['tags']['is_yohood'] && $result['tags']['is_new']) {  
305 - // $result['tags']['is_new'] = false;  
306 - // }  
307 - // }  
308 - //  
309 - // return $result;  
310 - // } 223 +const processFilter = (list) => {
  224 + return list;
311 }; 225 };
312 226
313 /** 227 /**
@@ -335,16 +249,20 @@ const processBreakingSort = (list) => { @@ -335,16 +249,20 @@ const processBreakingSort = (list) => {
335 return formatData; 249 return formatData;
336 }; 250 };
337 251
  252 +const searchSales = (params) => {
  253 + params = params || {};
  254 + return api.get('', sign.apiSign(Object.assign({
  255 + method: 'app.search.sales'
  256 + }, params)), true);
  257 +};
338 258
339 /** 259 /**
340 * 获取商品数据 260 * 获取商品数据
341 */ 261 */
342 -exports.getSearchData = (params) => {  
343 - return api.get('', sign.apiSign(Object.assign({  
344 - method: 'app.search.sales'  
345 - }, params))).then((result) => { 262 +exports.getFilterData = (params) => {
  263 + return searchSales(params).then((result) => {
346 if (result && result.code === 200) { 264 if (result && result.code === 200) {
347 - return processSearch(result); 265 + return processFilter(result.data.filter || []);
348 } else { 266 } else {
349 logger.error('SALE 商品搜索返回 code 不是 200'); 267 logger.error('SALE 商品搜索返回 code 不是 200');
350 return []; 268 return [];
@@ -353,6 +271,20 @@ exports.getSearchData = (params) => { @@ -353,6 +271,20 @@ exports.getSearchData = (params) => {
353 }; 271 };
354 272
355 /** 273 /**
  274 + * 获取商品数据
  275 + */
  276 +exports.getSearchData = (params) => {
  277 + return searchSales(params).then((result) => {
  278 + if (result && result.code === 200) {
  279 + return processProductList(result.data.product_list || []);
  280 + } else {
  281 + logger.error('SALE 商品搜索返回 code 不是 200');
  282 + return {};
  283 + }
  284 + });
  285 +};
  286 +
  287 +/**
356 * 获取资源位数据 288 * 获取资源位数据
357 */ 289 */
358 const getResources = (page) => { 290 const getResources = (page) => {
@@ -391,32 +323,20 @@ const getBreakingSort = (yhChannel) => { @@ -391,32 +323,20 @@ const getBreakingSort = (yhChannel) => {
391 }); 323 });
392 }; 324 };
393 325
394 -const getSpecial = (params) => {  
395 -  
396 -}  
397 -  
398 /** 326 /**
399 - * 获取商品数据 327 + * 获取sale首页数据
400 */ 328 */
401 -exports.getSearchData = (params) => {  
402 - params = params || {};  
403 - return api.get('', sign.apiSign(Object.assign({  
404 - method: 'app.search.sales'  
405 - }, params))).then((result) => {  
406 - if (result && result.code === 200) {  
407 - return processSearch(result.data.product_list || []);  
408 - } else {  
409 - logger.error('SALE 商品搜索返回 code 不是 200');  
410 - return {};  
411 - }  
412 - }); 329 +exports.getSaleData = () => {
  330 + return getResources('sale');
413 }; 331 };
414 332
415 /** 333 /**
416 - * 获取sale首页数据 334 + * 获取会员享数据
  335 + * @param {[object]} params
  336 + * @return {[object]}
417 */ 337 */
418 -exports.getSaleData = () => {  
419 - return getResources('sale'); 338 +exports.getVipData = () => {
  339 + return getResources('vip');
420 }; 340 };
421 341
422 /** 342 /**
@@ -434,6 +354,10 @@ exports.getBreakCodeData = (params) => { @@ -434,6 +354,10 @@ exports.getBreakCodeData = (params) => {
434 }); 354 });
435 }; 355 };
436 356
  357 +
  358 +// const getSpecial = (params) => {
  359 +//
  360 +// };
437 /** 361 /**
438 * 获取折扣专场专题列表数据 362 * 获取折扣专场专题列表数据
439 * @param {[object]} params 363 * @param {[object]} params
@@ -486,13 +410,3 @@ exports.getSpecialDetailData = (id) => { @@ -486,13 +410,3 @@ exports.getSpecialDetailData = (id) => {
486 } 410 }
487 }); 411 });
488 }; 412 };
489 -  
490 -  
491 -/**  
492 - * 获取会员享数据  
493 - * @param {[object]} params  
494 - * @return {[object]}  
495 - */  
496 -exports.getVipData = (params) => {  
497 - return getResources('vip');  
498 -};  
@@ -92,6 +92,7 @@ @@ -92,6 +92,7 @@
92 "yoho-handlebars": "^4.0.5", 92 "yoho-handlebars": "^4.0.5",
93 "yoho-jquery": "^1.9.1", 93 "yoho-jquery": "^1.9.1",
94 "yoho-jquery-lazyload": "^1.9.7", 94 "yoho-jquery-lazyload": "^1.9.7",
  95 + "yoho-mlellipsis": "0.0.2",
95 "yoho-swiper": "^3.3.1" 96 "yoho-swiper": "^3.3.1"
96 } 97 }
97 } 98 }