returns.js 4.65 KB
/**
 * 退换货controller
 * @author: yyq<yanqing.yang@yoho.cn>
 * @date: 2016/7/18
 */
'use strict';

const mcHandler = require('../models/menu-crumb-handler');
const returns = require('../models/returns');
const _ = require('lodash');


const index = (req, res, next) => {
    const uid = global.yoho.uid || '8050560';
    const page = req.query.page;

    returns.getUserReturn(uid, page).then(result => {
        res.display('index', {
            page: 'return-list',
            isMe: true,
            content: Object.assign({
                nav: mcHandler.getMeCrumb('我的退/换货'),
                navigation: mcHandler.getSideMenu('我的退/换货'),
                banner: 'http://placehold.it/{width}x{height}'
            }, result)
        });
    }).catch(next);
};

const detail = (req, res, next) => {
    next();
};

const refund = (req, res, next) => {
    let uid = req.user.uid || '8050560';
    let code = parseInt(req.params.orderCode, 10) || '160192757';

    if (!uid || !code) {
        return next();
    }

    returns.getRefundGoodsData(code, uid).then(result => {
        res.display('index', {
            page: 'returns-refund',
            content: result
        });
    }).catch(next);
};

const refundApply = (req, res, next) => {
    let orderCode = req.body.orderCode,
        uid = req.user.uid,
        goods = req.body.goods,
        payment = req.body.payment;

    if (!orderCode || _.isEmpty(goods) || _.isEmpty(payment)) {
        return res.json({
            code: 203,
            message: '非法提交'
        });
    }

    returns.saveRefund(orderCode, uid, goods, payment).then(result => {
        res.json(result);
    }).catch(next);

};

const refundDetail = (req, res, next) => {
    let applyId = parseInt(req.params.applyId, 10) || '429528',
        uid = req.user.uid || '8050560';

    if (!uid || !applyId) {
        return next();
    }

    returns.getRefundDetailData(applyId, uid).then(result => {
        res.display('index', {
            page: 'returns-refund',
            content: result
        });
    }).catch(next);
};

const exchange = (req, res, next) => {
    const code = req.params.orderCode;
    const uid = req.user.uid || '8050560';

    returns.getChangeGoodsList(code, uid).then(result => {
        res.display('index', {
            page: 'returns-change',
            isMe: true,
            content: Object.assign({
                nav: mcHandler.getMeCrumb('我的退/换货'),
                navigation: mcHandler.getSideMenu('我的退/换货'),
                banner: 'http://placehold.it/{width}x{height}'
            }, result)
        });
    }).catch(next);
};

const getProductInfo = (req, res, next) => {
    const productId = req.query.productId;
    const productSkn = req.query.productSkn;

    returns.getProductInfo(productId, productSkn).then(result => {
        res.json(result);
    }).catch(next);
};

const detailExchange = (req, res) => {
    // const uid = global.yoho.uid || '8050560';
    // const page = req.query.page;

    res.display('index', {
        page: 'exchange-detail',
        isMe: true,
        content: {
            nav: mcHandler.getMeCrumb('我的退/换货'),
            navigation: mcHandler.getSideMenu('我的退/换货'),
            banner: 'http://placehold.it/{width}x{height}',

            exchange: {
                // audit: true,
                // through: false,
                // send: true,
                finish: true,
                way: '上门送货',
                goods: [
                    {
                        img: '',
                        name: 'fdefwfwefwrefverfref',
                        color: '',
                        size: '',
                        num: '',
                        reason: '',
                        exchangeColor: '蓝色',
                        exchangeSize: 'M'
                    },
                    {
                        img: '',
                        name: 'fdefwfwefwrefverfref',
                        color: '',
                        size: '',
                        num: '',
                        reason: '',
                        exchangeColor: '蓝色',
                        exchangeSize: 'M'
                    }
                ],
                reasonInfo: [
                    {
                        problem: '太小了',
                        img: ''
                    },
                    {
                        problem: '太小了',
                        img: ''
                    }
                ]
            }
        }
    });
};

module.exports = {
    index,
    detail,
    refund,
    refundApply,
    exchange,
    getProductInfo,
    refundDetail,
    detailExchange
};