|
@ -229,7 +229,7 @@ class Topics extends RedisModel {
|
|
|
ModelUtil.emitOK(self.eventEmitter, {status: 200, message: "议题创建成功!", start_msg_id: startMsgId});
|
|
|
sessions.updateSessionStatus(sessionId,SESSION_STATUS.PROCEEDINGS,function(err,res){});
|
|
|
//执行数据库操作
|
|
|
self.saveTopicToMySQL(topicName, topicId, sessionId, startMsgId, new Date(datetime), messages.description, TOPIC_STATUS.NEW, function (err, res) {
|
|
|
self.saveTopicToMySQL(topicName, topicId, sessionId, startMsgId, new Date(datetime), messages.description, TOPIC_STATUS.NEW, messages.agent, function (err, res) {
|
|
|
if (err) {
|
|
|
ModelUtil.logError("Save topic to mysql failed", err);
|
|
|
}
|
|
@ -267,6 +267,7 @@ class Topics extends RedisModel {
|
|
|
msg.sender_name = "系统";//messages.sender_name;发起和结束咨询的消息由系统发出,发送者ID记录操作人!
|
|
|
msg.content_type = 10;
|
|
|
msg.content = messages.sender_name + "发起了咨询";
|
|
|
msg.agent = null;
|
|
|
msg.timestamp = new Date(datetime);
|
|
|
sessions.saveMessageByTopic(msg, sessionId, function (err, msgId) {
|
|
|
if (err) {
|
|
@ -285,6 +286,7 @@ class Topics extends RedisModel {
|
|
|
msg.sender_name = messages.sender_name;
|
|
|
msg.content_type = 6;
|
|
|
msg.content = messages.description;
|
|
|
msg.agent = messages.agent;
|
|
|
msg.timestamp = new Date(datetime+200);
|
|
|
sessions.saveMessageByTopic(msg, sessionId, function (err, msgId) {
|
|
|
if (messages.img) {
|
|
@ -306,6 +308,7 @@ class Topics extends RedisModel {
|
|
|
msgimg.sender_name = messages.sender_name;
|
|
|
msgimg.content_type = 2;
|
|
|
msgimg.content = imgs[j];
|
|
|
msgimg.agent = messages.agent;
|
|
|
msgimg.timestamp = new Date(datetime+(200*j));
|
|
|
sessions.saveMessageByTopic(msgimg, sessionId, function (err, msgId) {
|
|
|
if (err) {
|
|
@ -317,8 +320,8 @@ class Topics extends RedisModel {
|
|
|
}
|
|
|
|
|
|
|
|
|
saveTopicToMySQL(topicName, topicId, sessionId, messageId, date, description, status, handler) {
|
|
|
TopicsRepo.saveTopic(topicName, topicId, sessionId, messageId, date, description, status, handler);
|
|
|
saveTopicToMySQL(topicName, topicId, sessionId, messageId, date, description, status, agent, handler) {
|
|
|
TopicsRepo.saveTopic(topicName, topicId, sessionId, messageId, date, description, status, agent, handler);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -357,7 +360,7 @@ class Topics extends RedisModel {
|
|
|
* @param endUser
|
|
|
* @param endUserName
|
|
|
*/
|
|
|
endTopic(topicId, endUser, endUserName) {
|
|
|
endTopic(topicId, endUser, endUserName,agent) {
|
|
|
let endDate = new Date();
|
|
|
let self = this;
|
|
|
let topic_key = RedisModel.makeRedisKey(REDIS_KEYS.Topic, topicId);
|
|
@ -374,6 +377,7 @@ class Topics extends RedisModel {
|
|
|
let msg = {
|
|
|
sender_id: endUser,
|
|
|
sender_name: "系统",//endUserName,发起和结束咨询的消息由系统发出,发送者ID记录操作人!
|
|
|
agent: agent,
|
|
|
content_type: 7,
|
|
|
content: endUserName + "结束了咨询",
|
|
|
timestamp: new Date()
|
|
@ -394,6 +398,52 @@ class Topics extends RedisModel {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 进入议题(发送提示医生,医生不在线就不发送)
|
|
|
* @param topicId
|
|
|
* @param intoUser
|
|
|
* @param intoUserName
|
|
|
*/
|
|
|
intoTopic(topicId,intoUser,intoUserName,senderId,content){
|
|
|
let intoDate = new Date();
|
|
|
let self = this;
|
|
|
let topic_key = RedisModel.makeRedisKey(REDIS_KEYS.Topic, topicId);
|
|
|
redis.hmsetAsync(topic_key, "into_time", intoDate.getTime(), "into_by", intoUser).then(function (res) {
|
|
|
redis.hgetallAsync(topic_key).then(function (topic) {
|
|
|
callEnd(topic.session_id);
|
|
|
})
|
|
|
});
|
|
|
|
|
|
let agent = null;
|
|
|
if(senderId!=intoUser){
|
|
|
agent = intoUser;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 进入消息发送
|
|
|
*/
|
|
|
function callEnd(sessionId) {
|
|
|
let msg = {
|
|
|
sender_id: senderId,
|
|
|
sender_name: "系统",//endUserName,发起和结束(进入)咨询的消息由系统发出,发送者ID记录操作人!
|
|
|
content_type: 14,
|
|
|
//content: intoUserName + "进入了咨询",
|
|
|
content: content,
|
|
|
agent: agent,
|
|
|
timestamp: new Date()
|
|
|
};
|
|
|
|
|
|
let sessions = new Sessions();
|
|
|
sessions.saveIntoMessageByTopic(msg, sessionId, function (err, msgId) {
|
|
|
if (err) {
|
|
|
ModelUtil.emitOK(self.eventEmitter, {status: -1, "message": err});
|
|
|
} else {
|
|
|
ModelUtil.emitOK(self.eventEmitter, {status: 200, "id": msgId, "message": "进入成功!"});
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
|
|
|
updateTopic(topicId, valueJson) {
|
|
|
let self = this;
|
|
|
let topickey = RedisModel.makeRedisKey(REDIS_KEYS.Topic, topicId);
|