detail-product-api.js 3.24 KB
/**
 * Created by TaoHuang on 2016/6/14.
 */

'use strict';

const api = global.yoho.API;
const config = global.yoho.config;
const redis = global.yoho.redis;

/**
 * 商品的 banner
 */
const getProductBannerAsync = (pid) => {
    return api.get('', {
        method: 'web.productBanner.data',
        product_id: pid
    }, config.apiCache);

};

/**
 * 商品尺寸
 */
const sizeInfoAsync = (skn) => {
    return api.get('', {
        method: 'h5.product.intro',
        productskn: skn
    }, config.apiCache);

};

/**
 * 特殊商品退换货
 */
const isSupportReturnedSale = (skn) => {
    return api.get('', {
        method: 'web.product.refundExchange',
        product_skn: skn
    }, config.apiCache);
};

/**
 * 商品舒适度
 */
const getProductComfortAsync = (pid) => {
    return api.get('', {
        method: 'web.productComfort.data',
        product_id: pid
    }, config.apiCache);

};

/**
 * 模特试穿
 */
const getProductModelTryAsync = (skn) => {
    return api.get('', {
        method: 'web.productModelTry.data',
        product_skn: skn
    }, config.apiCache);
};

/**
 * 获得产品信息
 */
const getProductAsync = (id, uid, isStudents, vipLevel) => {

    let params = {
        method: 'app.product.data'
    };

    if (id.skn) {
        params.product_skn = id.skn;
    }

    if (id.pid) {
        params.product_id = id.pid;
    }

    if (uid) {
        params.uid = uid;
    }

    if (isStudents) {
        params.is_student = isStudents;
    }

    if (vipLevel) {
        params.current_vip_level = vipLevel;
    }

    return api.get('', params, config.apiCache);
};

/**
 * 促销信息
 */
const getPromotionAsync = (skn) => {
    let params = {
        method: 'app.product.promotion',
        product_skn: skn
    };

    return api.get('', params, config.apiCache);
};

/**
 * 限购商品
 */
const getLimitedProductStatusAsync = (code, uid, skn) => {
    let params = {
        method: 'app.limitProduct.productStatus',
        limitProductCode: code
    };

    if (uid) {
        params.uid = uid;
    }

    if (skn) {
        params.product_skn = skn;
    }

    return api.get('', params, config.apiCache);
};

/**
 * 店铺推荐
 */
const getShopRecommendAsync = (skn, page, limit) => {
    return api.get('', {
        method: 'web.product.shopRecommend',
        product_skn: skn,
        page: page || 1,
        limit: limit || 20
    });
};

/**
 * 套餐和量贩
 */
const getBundleAsync = (skn) => {
    return api.get('', {
        method: 'app.query.bundleSkn',
        product_skn: skn
    });
};

/**
 * 找相似
 */
const getLikeAsync = (skn, limit) => {
    return api.get('', {
        method: 'app.search.findLike',
        limit: limit || 10,
        product_skn: skn
    });
};

// 根据small_sort从redis获取分类下的关键词
const getRecommendKeywords = (smallSort) => {
    return redis.all([['get', `global:yoho:seo:keywords:sortId:${smallSort}:page:1`]]).then(res => {
        return res[0];
    });
};

module.exports = {
    getProductBannerAsync,
    sizeInfoAsync,
    getProductComfortAsync,
    getProductModelTryAsync,
    getProductAsync,
    getPromotionAsync,
    isSupportReturnedSale,
    getLimitedProductStatusAsync,
    getShopRecommendAsync,
    getBundleAsync,
    getLikeAsync,
    getRecommendKeywords
};