index.js 2.29 KB
/**
 * girls controller
 * @author: 赵彪<bill.zhao@yoho.cn>
 * @date: 2016/05/16
 */

'use strict';

const _ = require('lodash');

const channelModel = require('../models/index');

exports.index = (req, res, next) => {
    let channelType = req.path.substring(1) || 'boys';

    // 将woman转换为girls,以便model层进行处理
    channelType === 'woman' ? channelType = 'girls' : null;

    channelModel.getContent(channelType).then(data => {

        // channel为空不缓存
        
        var clone = data['channel'][3]['recommend']['tplrecommend'][0]['products'][0];
        var obj = {'channel':
        {'seven': {'sevendata': [{'products': [clone, clone, clone, clone, clone, clone, clone]}]} },
        'module': 'channel',
        'page': 'channel',
        'pageType': 'boys'
      };
      if (_.isEmpty(data.channel)) {
          res.set('Cache-Control', 'no-cache');
      }
        res.render('channel', obj);
    }).catch(next);
};

exports.getbrandFloorDataAjax = (req, res, next) => {
    const channelType = req.query.channelType || 'boys';

    channelModel.getbrandFloorDataAjax(channelType).then(data => {
        res.json(data);
    }).catch(next);
};

exports.getNewArrival = (req, res, next) => {
    let reqBody = req.body,
        pageIndex = reqBody.pageIndex,
        pageCount = reqBody.pageCount,
        channel = reqBody.type || req.yoho.channel,
        goods = [],
        result = {};

    if (pageIndex < 0) {
        pageIndex = 0;
    }
    if (pageCount < 0 || pageCount > 50) {
        pageCount = 20;
    }

    channelModel.getNewArrival(channel).then(data => {
        goods = _.slice(data, pageIndex, pageIndex + pageCount);

        if (goods.length !== 0) {
            result = {
                code: 200,
                goods: goods
            };
        }
        res.send(result);
    }).catch(next);
};

exports.getIndexGuide = (req, res, next) => {
    channelModel.getIndexGuideData().then(data => {
        if (data.code !== 200) {
            const err = new Error('异常');

            throw err;
        }
        return channelModel.formatIndexGuideData(data.data);
    }).then(data => {
        return channelModel.getResourceData(data);
    }).then(data => {
        let result = {list: data, layout: false};

        res.render('guide', result);
    }).catch(next);
};