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

'use strict';

const api = global.yoho.API;
const singleAPI = global.yoho.SingleAPI;
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 singleAPI.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);
    });
};

/**
 * 个人基本资料
 * @param params
 */
const myDetails = (params) => {
    return api.get('', {
        method: 'app.passport.profile',
        uid: params.uid
    }, {code: 200}).then((result) => {
        result = camelCase(result);
        if (result.data) {
            return result.data;
                // {
                //     nickname: result.data.nickname,
                //     gender: result.data.gender,
                //     birthday: result.data.birthday,
                //     headIco: result.data.headIco,
                //     vipInfo: {
                //                 curLevel: result.data.vipInfo.curLevel
                //             }
                // }
        }
        // return finalResult;
    });
};

module.exports = {
    index,
    myDetails
};