chatQa.js 3.68 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,
    };

    req.ctx(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,
    };

    req.ctx(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,
    };

    req.ctx(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 protocolUrl = '';

    if (+req.query.sonId === 340) {
        protocolUrl =
            'https://cdn.yoho.cn/yohobuy/pdf/YOHO!BUY有货用户服务协议0725.pdf';
    }

    if (+req.query.sonId === 352) {
        protocolUrl =
            'https://cdn.yoho.cn/yohobuy/pdf/有货隐私条款(2019.8.7).pdf';
    }

    let responseData = {
        pageHeader: headerData,
        module: 'service',
        page: 'chat-qa',
        title: `${title} | Yoho!Buy有货 | 潮流购物逛不停`,
        width750: true,
        pageFooter: true,
        isApp: req.yoho.isApp,
        protocolUrl: protocolUrl,
    };

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

        if (id) {
            // 有 ID 直接通过 ID 取数据
            let detailApi = yield req
                .ctx(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 req.ctx(chatQaModel).qaDetail(params);
        }
        return res.render('chat/qa-detail', _.assign(responseData, detailData));
    })().catch(next);
};