index.js 2.34 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.split('/')[1] || 'boys';

    // 将woman转换为girls,以便model层进行处理
    channelType === 'woman' ? channelType = 'girls' : null;
    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,
        poolId = reqBody.poolId;

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

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

exports.hasNewUserFloor = (req, res, next) => {

    channelModel.hasNewUserFloor(req.yoho.channel, req).then(data => {
        res.send(data);
    }).catch(next);
};