chatQa.js 3.04 KB
/**
 * 服务与反馈
 * <jing.li@yoho.cn>
 * 2016/11/29
 */

'use strict';

const _ = require('lodash');
const co = Promise.coroutine;
const headerModel = require('../../../doraemon/models/header'); // 头部model
const chatQaModel = require('../models/chatQa');

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

    let headerData = headerModel.setNav({
        navTitle: '服务与反馈'
    });

    let responseData = {
        pageHeader: headerData,
        module: 'service',
        page: 'chat-qa',
        title: '服务与反馈 | Yoho!Buy有货 | 潮流购物逛不停',
        width750: true,
        pageFooter: true
    };

    chatQaModel.index({

    }).then((result) => {

        res.render('chat/chat-qa', Object.assign(result, responseData));

    }).catch(next);
};

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

    let headerData = headerModel.setNav({
        navTitle: '服务与反馈'
    });

    let responseData = {
        pageHeader: headerData,
        module: 'service',
        page: 'chat-qa',
        title: '服务与反馈 | Yoho!Buy有货 | 潮流购物逛不停',
        width750: true
    };

    chatQaModel.qaSearch({

    }).then((result) => {

        res.render('chat/qa-search', Object.assign(result, responseData));

    }).catch(next);

};

exports.keySearch = (req, res, next) => {
    let params = {
        keyword: req.query.keyword
    };

    chatQaModel.keySearch(params).then(result => {
        res.json(result);
    }).catch(next);
};

exports.qaDetail = (req, res, next) => {
    let title = req.query.title || '问题详情';
    let id = req.query.id;
    let headerData = headerModel.setNav({
        navTitle: title
    });
    let responseData = {
        pageHeader: headerData,
        module: 'service',
        page: 'chat-qa',
        title: `${title} | Yoho!Buy有货 | 潮流购物逛不停`,
        width750: true,
        pageFooter: true,
        isApp: req.yoho.isApp
    };

    co(function* () {
        let detailData = {};

        if (id) { // 有 ID 直接通过 ID 取数据
            let detailApi = yield chatQaModel.getDetailById(req.query.id);

            return res.send(`
                <html>
                    <head>
                    <meta charset="utf-8">
                    <title>${req.query.keyword || _.get(detailApi, 'data.helpdetail_list[0].caption')}</title>
                    <meta name="viewport" 
                    content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
                    </head>
                    <body style="margin: 15px;">
                        ${_.get(detailApi, 'data.helpdetail_list[0].content')}
                    </body>
                </html>
            `);
        } else {
            let params = {
                sonId: req.query.sonId,
                parentId: req.query.parentId,
                keyword: req.query.keyword
            };

            detailData = yield chatQaModel.qaDetail(params);
        }
        return res.render('chat/qa-detail', _.assign(responseData, detailData));
    })().catch(next);
};