Authored by yyq

Merge branch 'feature/cs-session-key' into release/5.8.1

... ... @@ -7,6 +7,7 @@
'use strict';
const aes = require('./aes-pwd');
const helpers = global.yoho.helpers;
const common = require('../../../config/common');
const clientApi = require('../models/client-api');
const clientService = require('../models/client-service');
... ... @@ -16,10 +17,11 @@ const clientService = require('../models/client-service');
*/
const index = (req, res, next) => {
let type = 2;
let uid = req.user.uid;
let reg = /MSIE\s?[987]\.0/i;
let userAgent = req.headers['user-agent'];
let unSupport = reg.test(userAgent);
let encryptedUid = aes.encryptionUid(req.user.uid);
let encryptedUid = aes.encryptionUid(uid);
let domains = common.domains;
let imCs = domains.imCs;
let imSocket = domains.imSocket;
... ... @@ -36,8 +38,11 @@ const index = (req, res, next) => {
layout: false
});
} else {
clientService.getClientData(type, encryptedUid)
clientService.getClientData(uid, type, encryptedUid)
.then(result => {
if (result.code === 401) {
return res.redirect(helpers.urlFormat('/signin.html'));
}
res.render('client', Object.assign(data, result));
}).catch(next);
}
... ... @@ -58,10 +63,11 @@ const domains = (req, res) => {
* @param next
*/
const history = (req, res, next) => {
const encId = aes.encryptionUid(req.user.uid);
const uid = req.user.uid;
const encId = aes.encryptionUid(uid);
const endTime = req.body.endTime;
clientApi.getMsgHistory(encId, endTime)
clientApi.getMsgHistory(uid, encId, endTime)
.then(result => {
res.json(result);
}).catch(next);
... ... @@ -74,7 +80,10 @@ const history = (req, res, next) => {
* @param next
*/
const saveEval = (req, res, next) => {
const params = {};
const uid = req.user.uid;
const params = {
uid
};
params.stars = req.body.stars;
params.promoter = req.body.promoter;
... ... @@ -102,9 +111,12 @@ const saveEval = (req, res, next) => {
* @param next
*/
const queryReason = (req, res, next) => {
const uid = req.user.uid;
const type = req.body.type;
const encryptedUid = aes.encryptionUid(uid);
clientApi.queryReason(type)
clientApi.queryReason(uid, encryptedUid, type)
.then(result => {
res.json(result);
}).catch(next);
... ... @@ -117,11 +129,12 @@ const queryReason = (req, res, next) => {
* @param next
*/
const saveMessage = (req, res, next) => {
const uid = req.user.uid;
const content = req.body.content;
const encId = req.body.encryptedUid;
const cvId = req.body.conversationId;
clientApi.saveMessage(content, encId, cvId)
clientApi.saveMessage(content, encId, cvId, uid)
.then(result => {
res.json(result);
}).catch(next);
... ...
... ... @@ -32,8 +32,9 @@ let urls = {
* @param { string } encryptedUid 用户ID
* @return { Object } 最近10条订单
*/
const getLastTenOrders = (encryptedUid) => {
const getLastTenOrders = (uid, encryptedUid) => {
return api.post(urls.lastTen, {
uid,
encryptedUid
});
};
... ... @@ -43,8 +44,11 @@ const getLastTenOrders = (encryptedUid) => {
* @function getQas
* @return { Object } 问答列表
*/
const getQas = () => {
return api.post(urls.qas, {});
const getQas = (uid, encryptedUid) => {
return api.post(urls.qas, {
uid,
encryptedUid
});
};
/**
... ... @@ -65,8 +69,10 @@ const getCsSetting = (type) => {
* @param { string } endTime 截止时间
* @return { Array } 历史聊天记录
*/
const getMsgHistory = (encryptedUid, endTime) => {
const getMsgHistory = (uid, encryptedUid, endTime) => {
let params = {
uid,
encryptedUid
};
... ... @@ -91,9 +97,11 @@ const saveEval = (params) => {
* @param cvId
* @returns {*}
*/
const queryReason = (type) => {
const queryReason = (uid, encryptedUid, type) => {
const params = {
type
uid,
type,
encryptedUid
};
return api.post(urls.evalReason, params);
... ... @@ -106,8 +114,9 @@ const queryReason = (type) => {
* @param cvId 会话ID
* @returns {*}
*/
const saveMessage = (content, encId, cvId) => {
const saveMessage = (content, encId, cvId, uid) => {
const params = {
uid,
content,
encryptedUid: encId,
conversationId: cvId
... ...
... ... @@ -17,7 +17,7 @@ const clientAPI = require('./client-api');
* @param { string } encryptedUid
* @return { Object } 客服设置
*/
const getClientData = (type, encryptedUid) => {
const getClientData = (uid, type, encryptedUid) => {
const logoSize = '136x40';
const qcSize = '135x135';
const advSize = '160x335';
... ... @@ -25,9 +25,9 @@ const getClientData = (type, encryptedUid) => {
let apiMethod = [
clientAPI.getCsSetting(type),
clientAPI.getMsgHistory(encryptedUid),
clientAPI.getLastTenOrders(encryptedUid),
clientAPI.getQas()
clientAPI.getMsgHistory(uid, encryptedUid),
clientAPI.getLastTenOrders(uid, encryptedUid),
clientAPI.getQas(uid, encryptedUid)
];
return Promise.all(apiMethod)
... ... @@ -38,6 +38,14 @@ const getClientData = (type, encryptedUid) => {
let records = [];
let hasHistory = false;
if (res[1].code === 401 ||
res[2].code === 401 ||
res[3].code === 401) {
return {
code: 401
};
}
if (res[0] && res[0].code === 200) {
if (res[0].data.config) {
csSetting = res[0].data.config;
... ...
... ... @@ -237,6 +237,7 @@ function _loadPage() {
// 接入人工客服需要评价
processInfo.manual = true;
processInfo.savedEval = false;
// 显示评价&隐藏人工
edit.setIcons({
... ... @@ -607,6 +608,12 @@ function _loadPage() {
serviceApi.history(data)
.done(function(res) {
if (res && res.code === 401) {
window.onbeforeunload = null;
return location.href = '//www.yohobuy.com/signin.html?refer=' + // eslint-disable-line
encodeURIComponent(location.href);
}
if (res && res.code === 200) {
if (processInfo.hasMore) {
msgList = res.data.records || [];
... ... @@ -690,7 +697,13 @@ function _loadPage() {
encryptedUid: encryptedUid,
conversationId: socketConfCM.conversationId
})
.done(function() {})
.done(function(res) {
if (res && res.code === 401) {
window.onbeforeunload = null;
return location.href = '//www.yohobuy.com/signin.html?refer=' + // eslint-disable-line
encodeURIComponent(location.href);
}
})
.always(function() {
lMsg.modal('hide');
});
... ...
... ... @@ -36,6 +36,12 @@ var _fetchReason = (function() {
type: YOHO_CS
})
.done(function(res) {
if (res && res.code === 401) {
window.onbeforeunload = null;
return location.href = '//www.yohobuy.com/signin.html?refer=' + // eslint-disable-line
encodeURIComponent(location.href);
}
if (res.code === 200) {
cache = res.data;
render(cache);
... ... @@ -131,6 +137,12 @@ function _evalSubmit() {
$btnEval.hide();
processSign.savedEval = true;
if (res && res.code === 401) {
window.onbeforeunload = null;
return location.href = '//www.yohobuy.com/signin.html?refer=' + // eslint-disable-line
encodeURIComponent(location.href);
}
if (res && res.code === 200) {
send.completeEval();
self.close();
... ...