order.js 2.36 KB
/**
 * 订单.
 * @author hgwang
 * @date 2016-07-20
 */
'use strict';

const api = global.yoho.API;

// const serviceAPI = global.yoho.ServiceAPI;
const camelCase = global.yoho.camelCase;
const _ = require('lodash');

/**
 * 获取订单列表数据
 * @param param
 *          uid  uid,
 *          page  页数
 *          type  订单类型 1:全部订单,2:待付款,3:待发货,4:待收货,5:待评论/成功订单,7:失败/取消
 *          limit  每页大小
 *          app_type 0:yohobuy,1:blk
 * @returns {Promise.<T>|*}
 */
exports.getOrders = (param) => {
    param = Object.assign({method: 'app.SpaceOrders.get'}, param);

    return api.get('', param).then(camelCase);
};

/**
 * 获取订单详情
 * @param uid
 * @param orderCode
 * @returns {Promise.<T>|*}
 */
exports.getOrderDetail = (uid, orderCode) => {
    return api.get('', {
        method: 'app.SpaceOrders.detail',
        order_code: orderCode,
        uid: uid
    }).then(camelCase);
};

/**
 * 取消订单
 * @param orderCode
 * @param reasonId
 * @param reason
 * @returns {Promise.<T>|*}
 */
exports.cancelOrder = (orderCode, reasonId, reason) => {

    return api.get('', {
        method: 'app.SpaceOrders.close',
        order_code: orderCode,
        reason_id: reasonId,
        reason: reason
    }).then(result => {
        return result;
    });
};

/**
 * 确认订单
 * @param orderCode 订单号
 * @returns {Promise.<T>|*}
 */
exports.confirmOrder = (orderCode) => {

    return api.get('', {
        method: 'app.SpaceOrders.confirm',
        order_code: orderCode
    }).then(result => {
        return result;
    });
};

/**
 * 删除订单
 * @param orderCode 订单号
 * @param uid uid
 * @returns {Promise.<T>|*}
 */
exports.deleteOrder = (orderCode, uid) => {
    return api.get('', {
        method: 'app.SpaceOrders.delOrderByCode',
        order_code: orderCode,
        uid: uid
    }).then(result => {
        return result;
    });
};

/**
 * 查看订单物流详情
 * @param {[int]} order_code 订单号
 * @param {[int]} uid 用户uid
 * @return {[array]}
 */
exports.getOrderLogisticdate = (params) => {

    if (_.isEmpty(params) || _.isEmpty(params.uid)) {
        return [];
    }

    return api.get('', Object.assign({
        method: 'app.express.li'
    }, params)).then(result => {

        if (result.code === 200) {
            return result.data;
        }

        return [];
    });
};