index.js 2.01 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.yoho.channel;

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

        // channel为空不缓存
        if (_.isEmpty(data.channel)) {
            res.set('Cache-Control', 'no-cache');
        }
        res.render('channel', data);
    }).catch(next);
};

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

    channelModel.getbrandFloorDataAjax(channelType, contentCode).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 = {},
        isJKChannel = reqBody.mChannel === 'japanKorean' ? true : false;

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

    channelModel.getNewArrival(channel, isJKChannel).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);
};