cart.js 2.63 KB
/**
 * 购物车 controller
 * @author: jinhu.dong<jinhu.dong@yoho.cn>
 * @date: 2016/07/04
 */

'use strict';

const cartModel = require('../models/cart');
const _ = require('lodash');

exports.index = (req, res) => {
    cartModel.getCartInfo().then((result) => {

        const mock = {
            loggedIn: true,
            prosNum: result[0].preSalePros.length && result[1].commonPros.length && result[2].invalidPros.length
        };

        if (result[0].preSalePros) {
            _.merge(mock, {
                preSalePros: _.groupBy(result[0].preSalePros, 'brandName')
            });
        }

        if (result[1].commonPros) {
            _.merge(mock, {
                commonPros: _.groupBy(result[1].commonPros, 'brandName')
            });
        }

        if (result[2].invalidPros) {
            console.log(result[2].invalidPros);
            _.merge(mock, {
                invalidPros: result[2].invalidPros
            });
        }

        res.display('cart', _.merge({
            module: 'shopping',
            page: 'cart'
        }, mock));

    }).catch((err) => {
        res.send(err);
    });
};

// 检查库存
exports.checkInventory = (req, res) => {
    let chkResult,
        invalidProIds = [],
        productId = req.query.productId,
        result = {};

    if (productId === 'ALL') {
        chkResult = false;
        invalidProIds.push('286143');
    } else {
        if (req.query.productId === '286143') {
            chkResult = false;
        } else {
            chkResult = true;
        }
    }

    if (invalidProIds.length) {
        _.merge(result, {
            invalidProIds: invalidProIds
        });
    }

    _.merge(result, {
        valid: chkResult
    });

    res.json(result);
};


// 修改数量
exports.changeProductNum = (req, res) => {
    const changeType = req.body.changeType;
    const changeTo = req.body.changeTo;

    if (changeType === 'INCREASE') {
        // TODO
        if (changeTo === '4') {
            res.json({
                code: '1000',
                num: parseInt(changeTo, 10) - 1,
                changed: false
            });
        } else {
            res.json({
                code: '0',
                num: changeTo,
                changed: true
            });
        }
    } else if (changeType === 'DECREASE') {
        // TODO
        res.json({
            code: '0',
            num: changeTo,
            changed: true
        });
    }
};

// 删除商品
exports.removeProduct = (req, res) => {
    // TODO
    res.json({
        code: '0'
    });
};

// 收藏商品
exports.sendToFavorite = (req, res) => {
    // TODO
    res.json({
        code: '0'
    });
};