detail.js 3.1 KB
/**
 *
 * @author: Aiden Xu<aiden.xu@yoho.cn>
 * @date: 2016/07/19
 */
'use strict';

/**
 * 商品详情
 */
module.exports = class extends global.yoho.BaseModel {
    constructor(ctx) {
        super(ctx);
    }

    product(params) {
        return this.get({
            data: Object.assign({
                method: 'app.product.data'
            }, params),
            param: {
                code: 200,
                cache: true
            }
        }).then(result => {

            if (result.data) {
                let storage = 0; // result.storage 的 数值 不可靠,循环累加 库存
                const goodsList = result.data.goods_list;

                if (goodsList) {
                    for (let good of goodsList) {
                        for (let size of good.size_list) {
                            storage += size.storage_number;
                        }
                    }
                }

                result.data.storage = storage;
            }

            return result;
        });
    }

    getVipData(params) {
        return this.get({
            data: {
                method: 'app.passport.vip',
                uid: params.uid
            },
            param: {
                code: 200
            }
        });
    }

    intro(params) {
        return this.get({
            data: Object.assign({
                method: 'h5.product.intro'
            }, params)
        });
    }

    /**
     * 加入购物车接口
     *
     */
    addToCart(params) {
        return this.get({
            data: Object.assign({
                method: 'app.Shopping.add'
            }, params)
        });
    }

    /**
     * 添加收藏/取消收藏
     *
     * @param params
     */
    favorite(params, flag) {
        let method = '';

        if (flag) {
            method = 'app.favorite.add';
        } else {
            method = 'app.favorite.cancel';
        }

        return this.get({
            data: Object.assign({
                method: method
            }, params)
        });
    }

    /**
     * 判断是否收藏
     * @param params
     */
    isFavorite(params) {
        return this.get({
            url: '/favorite',
            data: Object.assign({
                method: 'app.favorite.isFavoriteNew'
            }, params),
            api: global.yoho.SingleAPI
        });
    }

    /**
     * 获取购物车数量
     *
     * @param params
     */
    getCartCount(params) {
        return this.get({
            data: Object.assign({
                method: 'app.Shopping.count'
            }, params)
        });
    }

    /**
     * 是否支持退换货
     * @param params
     */
    refundExchange(params) {
        return this.get({
            data: Object.assign({
                method: 'app.product.refundExchange'
            }, params),
            param: {
                cache: true
            }
        });
    }

    /**
     * 猜你喜欢
     * @param params
     */
    mightLike(params) {
        return this.get({
            data: Object.assign({
                method: 'app.blk.shopRecommend'
            }, params)
        });
    }
};