sale.js 3.17 KB
/*
 * @Author: Targaryen
 * @Date:   2016-05-19 10:20:08
 * @Last Modified by:   Targaryen
 * @Last Modified time: 2016-05-20 17:55:34
 */

'use strict';
const library = '../../../library';
const API = require(`${library}/api`).API;
const sign = require(`${library}/sign`);
const api = new API();
const _ = require('lodash');

/**
 * 处理 sale 首页原始数据
 * @param  {Object} origin [原始数据]
 * @return {Object}        [结果]
 */
const handleSaleIndexData = (origin) => {
    var dest = {};

    dest = origin;
    return dest;
};

/**
 * 处理商品列表数据
 * @param  {[type]} origin [description]
 * @return {[type]}        [description]
 */
const handleSaleGoodsListData = (origin) => {
    var goods = [];


    if (!_.isEmpty(origin.product_list)) {

        _.forEach(origin.product_list, function(value) {
            let oneGoods = {};

            oneGoods.tags = value.tags;
            oneGoods.thumb = value.default_images;
            oneGoods.url = '/product/pro_' + value.product_id + '_' + value.goods_list[0].goods_id + '/' +
                value.cn_alphabet + '.html';
            oneGoods.goodsList = value.goods_list;
            oneGoods.name = value.product_name;
            oneGoods.brand = {};
            oneGoods.brand.url = value.brand_domain + '.SUB_DOMAIN'; // 待处理
            oneGoods.brand.name = value.brand_name;
            oneGoods.marketPrice = value.market_price;

            goods.push(oneGoods);
        });
    }

    return goods;
};

/**
 * 处理分类筛选数据
 * @return {[type]} [description]
 */
const handleSaleSortData = (origin) => {
    var leftContent = {};

    leftContent.allDiscount = {};
    leftContent.allDiscount.list = [];

    _.forEach(origin, function(value) {
        let category = {};

        category.name = value.sort_name;
        leftContent.allDiscount.list.push(category);
    });


    return leftContent;
};

/**
 * 返回商品列表 promise 对象
 * @return {[type]} [description]
 */
const getSaleGoodsList = () => {
    return api.get('', sign.apiSign({
        method: 'app.search.sales',
        limit: 5,
        order: 's_t_desc',
        page: 1,
        productSize: '384x511',
        yh_channel: 1
    }));
};

/**
 * 获取分类信息 promise 对象
 * @return {[type]} [description]
 */
const getSortList = () => {
    return api.get('', sign.apiSign({
        method: 'app.sale.getBreakingSort',
        yh_channel: 1
    }));
};

/**
 * 获取 Sale 首页数据
 * @return {[type]} [description]
 */
exports.getSaleIndexDate = () => {
    return api.get('', sign.apiSign({
        method: 'app.activity.get',
        sort: 2,
        plateform: 2
    })).then(result => {

        return handleSaleIndexData(result);
    });
};

/**
 * 获取页面全部信息
 * @return {[type]} [description]
 */
exports.getSaleData = () => {

    return api.all([getSortList(), getSaleGoodsList()]).then(result => {
        let finalResult = {};

        if (result[0].code === 200) {
            finalResult.leftContent = handleSaleSortData(result[0].data);
        }
        if (result[1].code === 200) {
            finalResult.goods = handleSaleGoodsListData(result[1].data);
        }
        return finalResult;
    });
};