chatQa.js 2.49 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 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 (req.query.id) { // 有 ID 直接通过 ID 取数据
            let detailApi = yield chatQaModel.getDetailById(req.query.id);

            detailData = _.get(detailApi, 'data.helpdetail_list[0]');
        } 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);
};