Blame view

apps/product/controllers/sale.js 4.43 KB
王水玲 authored
1 2 3 4 5 6 7
/**
 * sale controller
 * @author: wsl<shuiling.wang@yoho.cn>
 * @date: 2016/5/17
 */

'use strict';
王水玲 authored
8
const mRoot = '../models';
Feng authored
9 10

// const cookie = require(`${library}/cookie`);
王水玲 authored
11
const headerModel = require('../../../doraemon/models/header');
12
const saleModel = require(`${mRoot}/sale`);
王水玲 authored
13
王水玲 authored
14 15 16 17 18 19 20 21
// const queryParam = {
//     brand: '0',
//     gender: '1,2,3',
//     sort: '0',
//     size: '0',
//     price: '0',
//     pD: '0.1,0.9'
// };
王水玲 authored
22
王水玲 authored
23 24 25 26 27 28 29 30 31
/**
 * 公共数据处理
 * @param  {[object]} req
 * @param  {[string]} title 标题
 * @param  {[string]} page js文件page名称
 * @return {[type]}
 */
const processPublicData = (req, title, page) => {
    let data = {};
32 33 34
    let headerData = headerModel.setNav({
        navTitle: title
    });
王水玲 authored
35
王水玲 authored
36
    data = {
37
        channel: req.yoho.channel,
王水玲 authored
38 39 40 41 42 43 44 45 46 47
        renderData: {
            module: 'product',
            page: page,
            title: title,
            pageHeader: headerData,
            pageFooter: true
        }
    };

    return data;
王水玲 authored
48 49
};
50
/**
王水玲 authored
51 52 53 54
 * sale 首页 资源位获取
 * @param  {[object]} req
 * @param  {[object]} res
 * @return {[type]}
55
 */
56
exports.index = (req, res, next) => {
王水玲 authored
57
    let params = processPublicData(req, 'SALE', 'sale');
王水玲 authored
58
王水玲 authored
59
    saleModel.getSaleData(params.channel).then((result) => {
王水玲 authored
60
        res.render('sale/index', Object.assign(params.renderData,  {
王水玲 authored
61
            content: result,
王水玲 authored
62 63 64 65
            floorHeader: {
                title: {
                    title: '最新降价'
                }
王水玲 authored
66
            }
67
        }));
68
    }).catch(next);
王水玲 authored
69
};
70 71

/**
ccbikai authored
72
 * 断码区
王水玲 authored
73 74 75
 * @param  {[object]} req
 * @param  {[object]} res
 * @return {[type]}
76
 */
77
exports.breakingYards = (req, res, next) => {
王水玲 authored
78
    let params = processPublicData(req, '断码区', 'break-code');
79
王水玲 authored
80
    saleModel.getBreakCodeData({
王水玲 authored
81
        yhChannel: params.channel
王水玲 authored
82
    }).then((result) => {
王水玲 authored
83
        res.render('sale/break-code', Object.assign(params.renderData, result));
84
    }).catch(next);
85
};
王水玲 authored
86 87

/**
ccbikai authored
88
 * 折扣专场列表
王水玲 authored
89 90 91
 * @param  {[object]} req
 * @param  {[object]} res
 * @return {[type]}
王水玲 authored
92
 */
93
exports.discount = (req, res, next) => {
王水玲 authored
94
    let params = processPublicData(req, '折扣专场', 'discount');
王水玲 authored
95
王水玲 authored
96 97
    saleModel.getDiscountData(params.channel).then((result) => {
        res.render('sale/discount', Object.assign(params.renderData, result));
98
    }).catch(next);
王水玲 authored
99
};
王水玲 authored
100
ccbikai authored
101
王水玲 authored
102
/**
ccbikai authored
103
 * 折扣专场专题详情
王水玲 authored
104 105 106
 * @param  {[object]} req
 * @param  {[object]} res
 * @return {[type]}
王水玲 authored
107
 */
108
exports.discountDetail = (req, res, next) => {
王水玲 authored
109
    let id = req.query.id;
王水玲 authored
110
    let params = processPublicData(req, '', 'discount-detail');
王水玲 authored
111
王水玲 authored
112
    saleModel.getDiscountDetailData(id, params.channel).then((result) => {
王水玲 authored
113 114
        params.renderData.pageHeader.navTitle = result.title;
        res.render('sale/discount-detail', Object.assign(params.renderData, result));
115
    }).catch(next);
王水玲 authored
116
};
王水玲 authored
117 118

/**
王水玲 authored
119 120 121 122
 * vip 会员专享
 * @param  {[object]} req
 * @param  {[object]} res
 * @return {[type]}
王水玲 authored
123
 */
124
exports.vip = (req, res, next) => {
王水玲 authored
125
    let params = processPublicData(req, '会员专享', 'vip');
王水玲 authored
126
王水玲 authored
127 128
    saleModel.getVipData(params.channel).then((result) => {
        res.render('sale/vip', Object.assign(params.renderData, {
王水玲 authored
129 130
            content: result
        }));
131
    }).catch(next);
王水玲 authored
132
};
王水玲 authored
133
王水玲 authored
134 135 136 137 138 139
/**
 * 筛选
 * @param  {[object]} req
 * @param  {[object]} res
 * @return {[type]}
 */
140
exports.filter = (req, res, next) => {
ccbikai authored
141 142 143
    let params = Object.assign({}, req.query);

    saleModel.getFilterData(params).then((result) => {
王水玲 authored
144
        res.render('sale/filter', {
ccbikai authored
145 146 147 148
            layout: false,
            params: params,
            filter: result
        });
149
    }).catch(next);
ccbikai authored
150 151
};
王水玲 authored
152 153 154 155 156 157 158

/**
 * 商品搜索
 * @param  {[object]} req
 * @param  {[object]} res
 * @return {[type]}
 */
159
exports.search = (req, res, next) => {
ccbikai authored
160
    let params = Object.assign({}, req.query);
王水玲 authored
161 162

    // uid = 9239279
王水玲 authored
163
    let uid = req.user.uid || 0;
ccbikai authored
164 165 166

    saleModel.getSearchData(params, uid).then((result) => {
        let vipLevel = result[1].curLevel;
王水玲 authored
167 168 169
        let vipObj = {};

        if (req.query.saleType === '2') {
王水玲 authored
170
            vipObj = {
王水玲 authored
171
                saleVip: (req.query.saleType === '2' && (!uid || vipLevel === '0')),
王水玲 authored
172
                vipLevel: vipLevel,
王水玲 authored
173 174 175 176
                saleViplogin: vipLevel >= 1 ? true : false,
                vipPrice1: vipLevel === '1',
                vipPrice2: vipLevel === '2',
                vipPrice3: vipLevel === '3'
王水玲 authored
177
            };
王水玲 authored
178 179
        }
王水玲 authored
180
        res.render('sale/product', Object.assign({
王水玲 authored
181
            layout: false,
ccbikai authored
182
            params: params,
王水玲 authored
183 184
            goods: result[0]
        }, vipObj));
185
    }).catch(next);
王水玲 authored
186
};