index.js 4.54 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) => {
        const uid = req.user.uid;

        if (!uid && req.xhr) {
            return res.json({
                code: 400,
                message: '抱歉,您暂未登录!'
            });
        }

        homeModel.getUserHomeData(uid).then(data => {
            const proData = data[0];
            const result = {
                module: 'home',
                page: 'index',
                noLocalCSS: true,
                head_ico: proData && proData.head_ico ? helpers.image(proData.head_ico, 200, 200) : '',
                nickname: proData ? proData.nickname : '登录/注册',
                userinfourl: proData ? '/home/mydetails' : '',
                serviceUrl: '/home/service'
            };

            res.render('index', _.merge(result, data[1]));
        }).catch(next);
    },
    mydetails: (req, res, next) => {
        const uid = req.user.uid;

        homeModel.getUserProfileData(uid).then(data => {
            data = data || {};
            var gender = '';

            if (data.gender === '1') {
                gender = 'men';
            } else if (data.gender === '2') {
                gender = 'women';
            }

            res.render('mydetails', {
                module: 'home',
                page: 'mydetails',
                head_ico: data.head_ico ? helpers.image(data.head_ico, 92, 92) : '',
                nickname: data.nickname,
                gender: gender,
                birthday: data.birthday
            });
        }).catch(next);
    },
    saveMydetails: (req, res, next) => {
        var params = {
            uid: req.user.uid
        };

        if (req.body.nickname !== undefined) {
            params.nick_name = req.body.nickname;
        }

        if (req.body.gender !== undefined) {
            params.gender = req.body.gender;
        }

        if (req.body.birthday !== undefined) {
            params.birthday = req.body.birthday;
        }

        homeModel.saveMydetails(params).then(data => {
            return res.json(data);
        }).catch(next);
    },
    service: (req, res, next) => {
        res.redirect('http://chat8.live800.com/live800/chatClient/chatbox.jsp?companyID=620092&configID=149091&jid=8732423409')
    },
    help: (req, res, next) => {
        homeModel.getHelpInfo().then(helpList => {
            res.render('help', {
                module: 'home',
                page: 'help',
                noLocalJS: true,
                noLocalCSS: true,
                helpList: helpList
            });
        }).catch(next);
    },
    helpDetail: (req, res, next) => {
        let helpDetailPara = {
            code: req.query.code,
            caption: req.query.caption
        };

        homeModel.getHelpDetail(helpDetailPara).then(helpDetail => {
            res.render('help-detail', {
                module: 'home',
                page: 'help',
                noLocalJS: true,
                noLocalCSS: true,
                helpDetail: helpDetail
            });
        }).catch(next);
    },
    feedback: (req, res) => {
        res.render('feedback', {
            module: 'home',
            page: 'feedback',
            suggestSub: true,
            noLocalCSS: true
        });
    },
    saveFeedback: (req, res, next) => {
        let saveFeedbackPara = {
            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 => {
            if (result.code === 200) {
                return res.json({
                    code: 200,
                    message: '谢谢您的反馈'
                });
            } else {
                return res.json({
                    code: 400,
                    message: '保存出错'
                });
            }
        }).catch(next);
    },
    about: (req, res) => {
        res.render('about', {
            module: 'home',
            page: 'index',
            noLocalJS: true,
            noLocalCSS: true
        });
    }
};

module.exports = component;