router.js 6.92 KB
/**
 * router of sub app product
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2016/05/06
 */

'use strict';

const router = require('express').Router(); // eslint-disable-line

const auth = require('../../doraemon/middleware/auth');

const rewrite = require('../../doraemon/middleware/rewrite');

const cRoot = './controllers';

// 商品详情controller
const detail = require(`${cRoot}/detail`);
const newDetail = require(`${cRoot}/new-detail`);

// sale controller
const sale = require(`${cRoot}/sale`);

// outlet controller
const outlet = require(`${cRoot}/outlet`);

// recommend-for-you controller
const recommendForYou = require(`${cRoot}/recommend-for-you`);

// search controller
const search = require(`${cRoot}/search`);

// 品类|品牌|店铺 controller
const list = require(`${cRoot}/list`);

// 新品到着 controller
const news = require(`${cRoot}/new`);

// 热销排行榜
const newsale = require(`${cRoot}/newsale`);

// recom
const recom = require(`${cRoot}/recom`);

// 秒杀 controller
const seckill = require(`${cRoot}/seckill`);

// 秒杀商品详情controller
const seckillDetail = require(`${cRoot}/seckill-detail`);

const newShop = require(`${cRoot}/new-shop`);

// 套装
const bundle = require(`${cRoot}/bundle`);

// routers

// /pro_136349_455445/HEARTSOFARMianMaShuJiaoXiuXianKuPS1684.html

// 因为正则匹配原因,秒杀详情页路由要放在普通详情页前面,待解决
router.get(/^\/seckill\/show_([\d]+)/, seckillDetail.indexSkn); // 秒杀商品详情页 SKN 进入
router.get(/^\/seckill\/pro_([\d]+)_([\d]+)/, seckillDetail.index); // 秒杀商品详情页进入
router.get(/^\/pro_([\d]+)_([\d]+)/, rewrite.channel, newDetail.indexRedirect); // 商品详情页
// /show_51047967.html
router.get(/^\/show_([\d]+)/, newDetail.index); // 商品详情页 SKN 进入
router.get(/^\/(.*?-)?p(\d+)\.html/, rewrite.resolve, newDetail.index); // 商品详情页 进入 SEO优化

router.get('/detail/sknData.json', newDetail.sknData); // 商品咨询,评价,店铺
router.get('/detail/intro/:productskn', detail.intro); // 商品内嵌页
router.get('/detail/preference', detail.preference); // 为你优选
router.get('/detail/consults', detail.consults); // 商品咨询页
router.get('/detail/consultform', auth, detail.consultform); // 商品咨询表单页
router.get('/detail/comments', detail.comments); // 商品评价
router.post('/detail/info', detail.getUser, detail.indexData); // 商品详情页-异步数据
router.post('/detail/newinfo', detail.getUser, newDetail.indexData); // 商品详情页-异步数据 (优化)
router.post('/detail/consultsubmit', auth, detail.consultsubmit); // 商品咨询提交接口


router.get('/detail/coupon.json', detail.brandCoupon); // 品牌券
router.post('/detail/coupon/save.json', auth, detail.getCoupon); // 获得 品牌券

router.get('/recom/maylike', recom.mayLike); // 你可能喜欢


// 限定商品
router.get('/detail/limit', detail.limit);

router.get('/recom/maylike', recom.mayLike);// 你可能喜欢
router.get('/recom/maylikekids', recom.mayLikeKids); // 潮童你可能喜欢
router.get('/recom/maylikelife', recom.mayLikelife); // 创意生活你可能喜欢

router.get('/seckillDetail/seckillData/:productskn', seckillDetail.getSeckillData); // 秒杀数据接口

router.post('/detail/consultupvote', detail.consultUpvoteOrUseful); // 商品咨询提交接口
router.post('/detail/consultuseful', detail.consultUpvoteOrUseful); // 商品咨询提交接口

router.get('/sale', rewrite.channel, sale.indexRedirect);
router.get(/^\/(.*?)-sale/, rewrite.resolve, sale.index); // 折扣专区 SEO优化

router.get('/sale/discount', sale.discount);

// router.get(/^\/(.*?)-sale\/discount/, rewrite.resolve, sale.discount);
router.get('/sale/discount/detail', sale.discountDetail);
router.get('/sale/breakingYards', sale.breakingYards);

// router.get(/^\/(.*?)-sale\/breakingYards/, rewrite.resolve, sale.breakingYards); // SEO优化
router.get('/sale/vip', sale.vip);
router.get('/sale/discount/getTime', sale.getTime);

router.get('/sale/search', sale.search);
router.get('/sale/filter', sale.filter);

router.get('/outlet', outlet.index);
router.get('/outlet/activity', outlet.activityDetail);
router.get('/outlet/activityTime', outlet.activityTime);

router.get('/outlet/activityinfo', outlet.activityList);

router.get('/recommend-for-you/userCenter', recommendForYou.userCenter);
router.get('/recommend-for-you/cart', recommendForYou.cart);


router.get('/seckill', seckill.checkAppVer('5.1.0'), seckill.index); // 秒杀列表页
router.get('/seckill/list', seckill.indexData);

router.post('/seckill/remind', seckill.remind); // only app; 秒杀提醒
router.get('/seckill/get-product-list', seckill.getProductList); // 秒杀列表根据活动id获取商品列表

// 搜索主页
router.get('/search/index', search.index);

// 搜索落地页
router.get('/search/list', search.list);

// filter
router.get('/search/filter', search.filter);

// fuzzyDatas
router.get('/search/fuzzyDatas', search.fuzzyDatas);

// ajax 请求商品数据
router.get('/search/search', search.search);

// 品类
router.get('/index/index', list.category);
router.get('/list/index', list.category); // 兼容 PC 的链接

// 品牌 | 店铺
router.get('/index/shopAppCookie', list.shopAppCookie);
router.get('/index/shopFav', list.shopFav);

router.get('/index/category', list.shopCategory);
router.post('/index/userCoupon', list.userCoupon);
router.get('/index/getShopCouponsList', list.getShopCouponsList);
router.get('/index/getBrandCouponsList', list.getBrandCouponsList);

// 店铺重构
router.get('/index/brand', newShop.index);
router.get('/index/baseShopFav', newShop.baseShopFav);
router.get('/index/brandFav', newShop.brandFav);
router.get('/new/shop/hotlist', newShop.shopHotList);

router.get('/red_shop', newShop.redShop); // TODO,TODO,TODO,TODO

// end- 店铺重构

// 店铺介绍
router.get('/index/intro', list.shopIntro);

// 品牌|店铺收藏|取消收藏
router.get('/opt/favoriteBrand', list.favoriteBrand);

// 新品到着
router.get('/new', rewrite.channel, news.newGoodsRedirect);

// 新品到着 SEO优化
router.get(/^\/(.*?)-new/, rewrite.resolve, news.newGoods);

router.get('/list/new', news.newGoods); // 兼容 PC 的链接
router.get('/new/selectNewSale', news.selectNewSale);
router.get('/new/filter', news.filter);

router.get('/newnew', news._newGoods); // TODO: repleace /new
router.get('/new/recommend-shop.json', news.recommendShop);
router.get('/new/goods.json', news.fetchNew);
router.get('/new/goods-filter', news.goodsFilter);
router.get('/new/shops', news.brands);


// 新品到着(blk)
router.get('/blknew', news.blkNewGoods);

router.get('/newsale/hotrank', newsale.index); // 热销排行榜
router.get('/newsale/selectHotrank', newsale.selectHotrank); // 热销排行榜

router.get('/bundle/detail', bundle.detail); // 套装详情页

router.post('/opt/favoriteProduct', newDetail.favoriteProduct); // 商品收藏、取消收藏
router.get('/detail/limitHelp', newDetail.limitHelp);

module.exports = router;