index.js 4.49 KB
/**
 * 主页
 * @author: shenzm<zhimin.shen@yoho.cn>
 * @date: 2016/07/18
 */
'use strict';
const homeModel = require('../models/index');
const _ = require('lodash');
const helpers = global.yoho.helpers;

/**
 * 个人中心主页
 */
const component = {
    index: (req, res, next) => {
        let uid = req.user.uid;
        if (!uid && req.xhr) {
            return res.json({
                code: 400,
                message: '抱歉,您暂未登录!'
            });
        }

        homeModel.getUserHomeData(uid).then(data => {
            let result = {
                module: 'home',
                page: 'index',
                head_ico: uid ? '' : '',
                profile_name: uid ? 'James Sen' : '登录/注册',
                userinfourl: uid ? '/home/mydetails' : helpers.urlFormat('/signin.html', {
                    refer: req.originalUrl
                }),
            };

            res.render('index', _.merge(result, data[1]));
        }).catch(next);
    },
    help: (req, res, next) => {
        homeModel.getHelpInfo().then(helpList => {
            res.render('help', {
                module: 'home',
                page: 'help',
                helpList: helpList
            });
        }).catch(next);
    },

    helpDetail: (req, res, next) => {
        var helpDetailPara = {
            code: req.query.code,
            caption: req.query.caption
        };

        homeModel.getHelpDetail(helpDetailPara).then(helpDetail => {
            res.render('help-detail', {
                module: 'home',
                page: 'help',
                helpDetail: helpDetail
            });
        }).catch(next);
    },

    feedback: (req, res, next) => {
        res.render('feedback', {
            module: 'home',
            page: 'feedback',
            suggestSub: true,
        }).catch(next);
    },

    saveFeedback: (req, res, next) => {
        let saveFeedbackPara = {
            uid: '13549737',
            content: req.body.content,
            suggest_type: 2
        };

        if (req.user && req.user.uid) {
            _.merge(saveFeedbackPara, {
                uid: req.user.uid
            });
        }

        if (req.user && req.user.udid && !req.user.uid) {
            _.merge(saveFeedbackPara, {
                udid: req.user.udid
            });
        }

        homeModel.saveFeedback(saveFeedbackPara).then(result => {
            console.log(result);

            if (result.code === 200) {
                return res.json({
                    code: 200,
                    message: '谢谢您的反馈'
                });
            } else {
                return res.json({
                    code: 400,
                    message: '保存出错'
                });
            }
        }).catch(next);
    },

    favorite: (req, res, next) => {
        let tab = req.query.tab;
        let testData = {
            brandUrl: helpers.urlFormat('/product/new'),
            productUrl: helpers.urlFormat('/product/new')
        };

        if (tab === 'brand') {
            res.render('favorite-brand', _.merge({
                module: 'home',
                page: 'favorite-brand',
            }, testData));
        } else {
            res.render('favorite', _.merge({
                module: 'home',
                page: 'favorite',
            }, testData));
        }
    },

    favpaging: (req, res, next) => {
        let tab = req.query.tab;
        let page = req.query.page;

        if (page > 2) return res.json([]);

        let testData = [];
        for (var i = 1; i <= 9; i++) {
            if (tab === 'brand') {
                testData.push({
                    fav_id: Number(page + i),
                    brandName: '品牌名测试' + Number(page + i),
                    invalidGoods: true
                });
            } else {
                testData.push({
                    fav_id: Number(page + i),
                    title: '商品名测试测试测试测试测试测试测试测试' + Number(page + i),
                    invalidGoods: true,
                    discountPrice: '¥' + 900,
                    price: '¥' + 990
                });
            }
        }

        return res.json(testData);
    },

    favdel: (req, res, next) => {
        let id = req.body.id;

        return res.json({
            code: 200
        });
    },

    //关于我们
    aboutUs: (req, res, next) => {
        res.render('about-us', {
            module: 'home',
            page: 'index'
        });
    }
};

module.exports = component;