sale.js 4.04 KB
/*
 * @Author: Targaryen
 * @Date:   2016-05-19 10:20:08
 * @Last Modified by:   Targaryen
 * @Last Modified time: 2016-05-26 11:11:37
 */

'use strict';
const library = '../../../library';
const API = require(`${library}/api`).API;
const api = new API();
const _ = require('lodash');
const saleApi = require('./sale-api');
const saleHandler = require('./sale-handler');

/**
 * 获取Sale首页商品列表数据 仅 Ajax 调用 Controller 调用
 * @return {[type]} [description]
 */
exports.getSaleGoodsData = (params) => {

    return saleApi.getSaleGoodsList(params).then(result => {
        let finalResult = {};

        if (result.code === 200) {
            finalResult.goods = saleHandler.handleSaleGoodsListData(result.data.product_list);
        }
        return finalResult;
    });
};

/**
 * 获取 Sale 首页数据 Controller 调用
 * @return {[type]} [description]
 */
exports.getSaleIndexData = () => {

    return api.all([saleApi.getSaleActivityList(), saleApi.getSaleBannerList()]).then(result => {
        var finalResult = {};

        if (result[0].code === 200) {
            finalResult.brandSale = saleHandler.handleSaleActivityData(result[0].data);
        }

        if (result[1].code === 200) {
            finalResult.topBanner = saleHandler.handleSaleBannerData(result[1].data);
            finalResult.activityEnter = saleHandler.handleSaleBannerSmallData(result[1].data);
        }

        return finalResult;
    });
};

/**
 * 获取 VIP 会员专享和新降价专区数据 Controller 调用
 * @return {[type]} [description]
 */
exports.getSaleOthersData = (params) => {

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

        if (result[0].code === 200) {

            if (!_.isEmpty(result[0].data.product_list)) { // 处理商品列表数据
                finalResult.goods = saleHandler.handleSaleGoodsListData(result[0].data.product_list);
            }

            if (!_.isEmpty(result[0].data.filter)) {
                finalResult.filters = saleHandler.handleSaleFilterData(result[0].data.filter, params);
            }

            if (!_.isEmpty(result[0].data.filter.group_sort)) {
                finalResult.leftContent = saleHandler.handleSaleSortData(result[0].data.filter.group_sort, params);
            }

        }
        finalResult.opts = saleHandler.handleSaleOptsData();
        return finalResult;
    });
};

/**
 * 获取折扣专场数据 Controller 调用
 * @return {[type]} [description]
 */
exports.getSaleDiscountData = (params) => {
    return api.all([saleApi.getSaleGoodsList(params)]).then(result => {
        let finalResult = {};

        if (result[0].code === 200) {
            finalResult.saleList = {};
            finalResult.saleList.goods = saleHandler.handleSaleGoodsListData(result[0].data.product_list);
            finalResult.leftContent = saleHandler.handleSaleSortData(result[0].data.filter.group_sort, params);
        }

        return finalResult;
    });
};

/**
 * 获取断码区数据 Controller 调用
 * @param  {[type]} params [description]
 * @return {[type]}        [description]
 */
exports.getSalebreakingYardsData = (params) => {
    return api.all([saleApi.getSalebreakingYardsSortList(), saleApi.getSaleGoodsList(params)]).then(result => {
        let finalResult = {};

        if (result[0].code === 200) {
            finalResult.size = saleHandler.handleSalebreakingYardsSortData(result[0].data); // 待处理
        }
        if (result[1].code === 200) {

            if (!_.isEmpty(result[1].data.product_list)) { // 处理商品列表数据
                finalResult.goods = saleHandler.handleSaleGoodsListData(result[1].data.product_list);
            }

            if (!_.isEmpty(result[1].data.filter)) {
                finalResult.filters = saleHandler.handleSaleFilterData(result[1].data.filter);
                finalResult.leftContent = saleHandler.handleSaleSortData(result[1].data.filter.group_sort, params);
            }
        }
        finalResult.opts = saleHandler.handleSaleOptsData(params);
        return finalResult;
    });
};