address.js 2.27 KB
/**
 * 个人中心---地址管理
 * @author gaohongwei <hongwei.gao@yoho.cn>
 * @date: 2016/9/5
 */
'use strict';

const mRoot = '../models';
const addressModel = require(`${mRoot}/address-service`); // user  model
const cleanHtml = require(`${global.utils}/cleanHtml`);

/**
 * 地址管理列表
 */
exports.index = (req, res, next) => {
    let uid = req.user.uid;

    let responseData = {
        module: 'home',
        page: 'address'
    };

    // 真实数据输出
    req.ctx(addressModel).getAddressInfo(uid).then(result => {
        responseData.meAddressPage = true;
        responseData.address = result.address;

        res.render('home/address/address', responseData);
    }).catch(next);
};

/**
 * 编辑修改地址
 */
exports.editAddress = (req, res, next) => {
    let uid = req.user.uid;

    if (!req.body.id) {
        return res.json({code: 400});
    }

    // 真实数据输出
    req.ctx(addressModel).editAddress(req.body, uid).then(result => {
        if (result && result.data) {
            result.data.address = cleanHtml.htmlDecode(result.data.address);
            result.data.consignee = cleanHtml.htmlDecode(result.data.consignee);
        }

        res.json(result);
    }).catch(next);
};

/**
 * 添加保存地址
 */
exports.saveAddress = (req, res, next) => {
    let uid = req.user.uid;

    req.body.addressName = cleanHtml.htmlEncode(req.body.addressName);

    // 真实数据输出
    req.ctx(addressModel).saveAddress(req.body, uid).then(result => {
        res.json(result);
    }).catch(next);
};

/**
 * 删除地址
 */
exports.delAddress = (req, res, next) => {
    let uid = req.user.uid;

    if (!req.query.id) {
        return res.json({
            code: 400,
            message: '缺失必填项'
        });
    }

    // 真实数据输出
    req.ctx(addressModel).delAddress(req.query, uid).then(result => {
        res.json(result);
    }).catch(next);
};

/**
 * 设置默认地址
 */
exports.defaultAddress = (req, res, next) => {
    let uid = req.user.uid;

    if (!req.body.id) {
        return res.json({
            code: 400,
            message: '缺失必填项'
        });
    }

    // 真实数据输出
    req.ctx(addressModel).defaultAddress(req.body, uid).then(result => {
        res.json(result);
    }).catch(next);
};