index.js 2.89 KB
/**
 * Created by PhpStorm.
 * User: Targaryen
 * Date: 2016/8/10
 * Time: 13:43
 */

'use strict';

const favApi = global.yoho.FavAPI;
const api = global.yoho.API;
const helpers = global.yoho.helpers;
const camelCase = global.yoho.camelCase;

/**
 * 个人详情数据
 */
const _userData = (params) => {
    return api.get('', {
        method: 'app.passport.profile',
        uid: params.uid
    }, {code: 200});
};

/**
 * 获取个人中心公告有关数据
 */
const _noticeData = () => {
    return api.get('', {
        method: 'app.resources.getNotices'
    }, {code: 200});
};

/**
 * 收藏数量接口
 * @param params
 * @returns {*|Promise.<TResult>}
 */
const _favoriteData = (params) => {
    return favApi.get('brower', {
        method: 'app.favorite.getFavoriteCount',
        uid: params.uid
    }, {code: 200});
};

/**
 * 个人中心页面优惠券,收藏的商品等的数目数据
 */
const _infoNum = (params) => {
    return api.get('', {
        method: 'app.home.getInfoNum',
        uid: params.uid,
        udid: params.udid
    }, {code: 200});
};

/**
 * 个人中心首页
 * @param params
 * @returns {function()}
 */
const index = (params) => {
    let finalResult = {
        myIndexPage: true,
        showDownloadApp: true,
        navHome: true,
        pageFooter: true,
        refundExchangeNum: 0,
        commentTotal: 0,
        cartUrl: helpers.urlFormat('/cart/index/index'),
        signinUrl: helpers.urlFormat('/signin.html', {refer: helpers.urlFormat('/home')})
    };

    return api.all([
        _userData(params),
        _noticeData(),
        _favoriteData(params),
        _infoNum(params)
    ]).then(result => {
        if (result[0] && result[0].data) {
            Object.assign(finalResult, {
                profileName: result[0].data.profile_name,
                headIco: result[0].data.head_ico,
                vipInfo: result[0].data.vip_info
            });
        }

        if (result[1] && result[1].data) {
            Object.assign(finalResult, {
                notice: result[1].data.list
            });
        }

        if (result[2] && result[2].data) {
            Object.assign(finalResult, {
                productFavoriteTotal: result[2].data.product_favorite_total
            });
        }

        if (result[3] && result[3].data) {
            Object.assign(finalResult, {
                sendCargoNum: result[3].data.send_cargo_num,
                waitCargoNum: result[3].data.wait_cargo_num,
                waitPayNum: result[3].data.wait_pay_num,
                yohoCoinNum: result[3].data.yoho_coin_num,
                inboxTotal: result[3].data.inbox_total,
                couponNum: result[3].data.coupon_num,
                brandFavoriteTotal: result[3].data.brand_favorite_total,
                productBrowse: result[3].data.product_browse
            });
        }


        return camelCase(finalResult);
    });
};

module.exports = {
    index
};