|
@ -8,14 +8,14 @@ let getui = require('getui');
|
|
|
|
|
|
let RedisModel = require('./../redis.model');
|
|
|
let Schedule = require("./../schedule/schedule.js");
|
|
|
let doctorRepo = require('../../repository/mysql/doctor.repo.js');
|
|
|
let gmRepo = require('../../repository/mysql/group.msg.repo');
|
|
|
let pmRepo = require('../../repository/mysql/private.msg.repo');
|
|
|
let nmRepo = require("../../repository/mysql/notify.msg.repo");
|
|
|
let smRepo = require("../../repository/mysql/system.msg.repo.js");
|
|
|
let statsRepo = require("../../repository/mysql/stats.msg.repo");
|
|
|
let objectUtil = require("../../util/object.util.js");
|
|
|
let modelUtil = require('../../util/model.util');
|
|
|
let DoctorRepo = require('../../repository/mysql/doctor.repo.js');
|
|
|
let GroupMsgRepo = require('../../repository/mysql/group.msg.repo');
|
|
|
let PrivateMsgRepo = require('../../repository/mysql/private.msg.repo');
|
|
|
let NotifyMsgRepo = require("../../repository/mysql/notify.msg.repo");
|
|
|
let SystemMsgRepo = require("../../repository/mysql/system.msg.repo.js");
|
|
|
let StatsRepo = require("../../repository/mysql/stats.msg.repo");
|
|
|
let ObjectUtil = require("../../util/object.util.js");
|
|
|
let ModelUtil = require('../../util/model.util');
|
|
|
|
|
|
const CONTENT_TYPES = require('../../include/commons').CONTENT_TYPE;
|
|
|
const PLATFORMS = require('../../include/commons').PLATFORM;
|
|
@ -41,32 +41,32 @@ class Doctor extends RedisModel {
|
|
|
let self = this;
|
|
|
let tempContent = message.contentType === CONTENT_TYPES.Article ? JSON.stringify(message.content) : message.content;
|
|
|
|
|
|
pmRepo.save(message.to, message.from, message.contentType, tempContent, function (err, result) {
|
|
|
PrivateMsgRepo.save(message.to, message.from, message.contentType, tempContent, function (err, result) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Save private message failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Save private message failed', err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
// 返回新插入的消息数据,并推送
|
|
|
pmRepo.findOneMessage(result.insertId, function (err, msg) {
|
|
|
PrivateMsgRepo.findOneMessage(result.insertId, function (err, msg) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Save private message success, but return last message failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Save private message success, but return last message failed', err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
// 先结束网络连接,再推送给客户端
|
|
|
modelUtil.emitData(self.eventEmitter, Doctor.fillMessages(msg));
|
|
|
ModelUtil.emitData(self.eventEmitter, Doctor.fillMessages(msg));
|
|
|
|
|
|
Doctor.pushMessage(message, 'p2p_msg');
|
|
|
});
|
|
|
|
|
|
// 更新自身的聊天统计信息
|
|
|
statsRepo.updatePrivateChatSummary(message.from, message.to, message.from, message.contentType, message.content, function (err, result) {
|
|
|
StatsRepo.updatePrivateChatSummary(message.from, message.to, message.from, message.contentType, message.content, function (err, result) {
|
|
|
if (err) log.error(err);
|
|
|
});
|
|
|
|
|
|
// 更新对端的聊天统计信息
|
|
|
statsRepo.updatePrivateChatSummary(message.to, message.from, message.from, message.contentType, message.content, function (err, result) {
|
|
|
StatsRepo.updatePrivateChatSummary(message.to, message.from, message.from, message.contentType, message.content, function (err, result) {
|
|
|
if (err) log.error(err);
|
|
|
});
|
|
|
});
|
|
@ -79,19 +79,19 @@ class Doctor extends RedisModel {
|
|
|
*/
|
|
|
sendSystemMessage(message) {
|
|
|
let self = this;
|
|
|
smRepo.save(message.to,
|
|
|
SystemMsgRepo.save(message.to,
|
|
|
message.contentType,
|
|
|
message.title,
|
|
|
message.summary,
|
|
|
message.content,
|
|
|
function (err, result) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, "Save system message failed", err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, "Save system message failed", err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
// 先结束网络连接,再推送给客户端
|
|
|
modelUtil.emitData(self.eventEmitter, {});
|
|
|
ModelUtil.emitData(self.eventEmitter, {});
|
|
|
|
|
|
Doctor.pushMessage(message, 'system_msg');
|
|
|
});
|
|
@ -104,7 +104,7 @@ class Doctor extends RedisModel {
|
|
|
* @param channel
|
|
|
*/
|
|
|
static pushMessage(message, channel){
|
|
|
doctorRepo.getUserStatus(message.to, function (err, result) {
|
|
|
DoctorRepo.getUserStatus(message.to, function (err, result) {
|
|
|
if (err) {
|
|
|
log.error('Lookup notify message receiver failed: ' + message.to);
|
|
|
return;
|
|
@ -136,7 +136,7 @@ class Doctor extends RedisModel {
|
|
|
}
|
|
|
|
|
|
// 保存通知消息到数据库中,并根据用户在线状态推送此消息
|
|
|
nmRepo.save(message.to, message.contentType, title, content, JSON.stringify(notifyMessage), isOnline, delay, function (err, result) {
|
|
|
NotifyMsgRepo.save(message.to, message.contentType, title, content, JSON.stringify(notifyMessage), isOnline, delay, function (err, result) {
|
|
|
if (err) {
|
|
|
log.error('Save notify message failed, ', err);
|
|
|
return;
|
|
@ -194,9 +194,9 @@ class Doctor extends RedisModel {
|
|
|
*/
|
|
|
getRecentChatList(userId, days) {
|
|
|
let self = this;
|
|
|
statsRepo.getRecentChats(userId, days, function (err, rows) {
|
|
|
StatsRepo.getRecentChats(userId, days, function (err, rows) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Get recent chat objects failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Get recent chat objects failed', err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@ -229,7 +229,7 @@ class Doctor extends RedisModel {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
modelUtil.emitData(self.eventEmitter, data);
|
|
|
ModelUtil.emitData(self.eventEmitter, data);
|
|
|
});
|
|
|
}
|
|
|
|
|
@ -242,9 +242,9 @@ class Doctor extends RedisModel {
|
|
|
let self = this;
|
|
|
|
|
|
// 与患者的私信
|
|
|
pmRepo.findAllP2PWithPatient(userId, function (err, patients) {
|
|
|
PrivateMsgRepo.findAllP2PWithPatient(userId, function (err, patients) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Get chat list with patient failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Get chat list with patient failed', err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@ -260,14 +260,14 @@ class Doctor extends RedisModel {
|
|
|
newMessageCount: patient.new_msg_count,
|
|
|
lastContentType: patient.last_content_type,
|
|
|
lastContent: patient.last_content,
|
|
|
timestamp: objectUtil.timestampToLong(patient.timestamp)
|
|
|
timestamp: ObjectUtil.timestampToLong(patient.timestamp)
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// 含有患者的群
|
|
|
gmRepo.findAllGroupsWithPatient(userId, function (err, groups) {
|
|
|
GroupMsgRepo.findAllGroupsWithPatient(userId, function (err, groups) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Get group list with patient failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Get group list with patient failed', err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@ -284,14 +284,14 @@ class Doctor extends RedisModel {
|
|
|
newMessageCount: group.new_msg_count,
|
|
|
lastContentType: group.last_content_type,
|
|
|
lastContent: group.last_content,
|
|
|
timestamp: objectUtil.timestampToLong(group.timestamp)
|
|
|
timestamp: ObjectUtil.timestampToLong(group.timestamp)
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// 医生间的私聊
|
|
|
pmRepo.findAllP2PWithDoctor(userId, function (err, doctors) {
|
|
|
PrivateMsgRepo.findAllP2PWithDoctor(userId, function (err, doctors) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Get chat list with doctor failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Get chat list with doctor failed', err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@ -305,14 +305,14 @@ class Doctor extends RedisModel {
|
|
|
newMessageCount: doctor.new_msg_count,
|
|
|
lastContentType: doctor.last_content_type,
|
|
|
lastContent: doctor.last_content,
|
|
|
timestamp: objectUtil.timestampToLong(doctor.timestamp)
|
|
|
timestamp: ObjectUtil.timestampToLong(doctor.timestamp)
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// 获取医生间的组
|
|
|
gmRepo.findAllGroupsWithDoctor(userId, function (err, groups) {
|
|
|
GroupMsgRepo.findAllGroupsWithDoctor(userId, function (err, groups) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Get group list with doctor failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Get group list with doctor failed', err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@ -325,11 +325,11 @@ class Doctor extends RedisModel {
|
|
|
newMessageCount: group.new_msg_count,
|
|
|
lastContentType: group.last_content_type,
|
|
|
lastContent: group.last_content,
|
|
|
timestamp: objectUtil.timestampToLong(group.timestamp)
|
|
|
timestamp: ObjectUtil.timestampToLong(group.timestamp)
|
|
|
});
|
|
|
}
|
|
|
|
|
|
modelUtil.emitData(self.eventEmitter, chats);
|
|
|
ModelUtil.emitData(self.eventEmitter, chats);
|
|
|
});
|
|
|
});
|
|
|
})
|
|
@ -342,9 +342,9 @@ class Doctor extends RedisModel {
|
|
|
getChatsListWithPatient(userId) {
|
|
|
let self = this;
|
|
|
|
|
|
pmRepo.findAllP2PWithPatient(userId, function (err, patients) {
|
|
|
PrivateMsgRepo.findAllP2PWithPatient(userId, function (err, patients) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Get chat list with patient failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Get chat list with patient failed', err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@ -360,13 +360,13 @@ class Doctor extends RedisModel {
|
|
|
newMessageCount: patient.new_msg_count,
|
|
|
lastContentType: patient.last_content_type,
|
|
|
lastContent: patient.last_content,
|
|
|
timestamp: objectUtil.timestampToLong(patient.timestamp)
|
|
|
timestamp: ObjectUtil.timestampToLong(patient.timestamp)
|
|
|
});
|
|
|
}
|
|
|
|
|
|
gmRepo.findAllGroupsWithPatient(userId, function (err, groups) {
|
|
|
GroupMsgRepo.findAllGroupsWithPatient(userId, function (err, groups) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Get group list with patient failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Get group list with patient failed', err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@ -383,11 +383,11 @@ class Doctor extends RedisModel {
|
|
|
newMessageCount: group.new_msg_count,
|
|
|
lastContentType: group.last_content_type,
|
|
|
lastContent: group.last_content,
|
|
|
timestamp: objectUtil.timestampToLong(group.timestamp)
|
|
|
timestamp: ObjectUtil.timestampToLong(group.timestamp)
|
|
|
});
|
|
|
}
|
|
|
|
|
|
modelUtil.emitData(self.eventEmitter, chats);
|
|
|
ModelUtil.emitData(self.eventEmitter, chats);
|
|
|
})
|
|
|
});
|
|
|
}
|
|
@ -401,9 +401,9 @@ class Doctor extends RedisModel {
|
|
|
let self = this;
|
|
|
|
|
|
// 先获取医生间的私聊
|
|
|
pmRepo.findAllP2PWithDoctor(userId, function (err, doctors) {
|
|
|
PrivateMsgRepo.findAllP2PWithDoctor(userId, function (err, doctors) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Get chat list with doctor failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Get chat list with doctor failed', err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@ -418,14 +418,14 @@ class Doctor extends RedisModel {
|
|
|
newMessageCount: doctor.new_msg_count,
|
|
|
lastContentType: doctor.last_content_type,
|
|
|
lastContent: doctor.last_content,
|
|
|
timestamp: objectUtil.timestampToLong(doctor.timestamp)
|
|
|
timestamp: ObjectUtil.timestampToLong(doctor.timestamp)
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// 再获取医生间的组
|
|
|
gmRepo.findAllGroupsWithDoctor(userId, function (err, groups) {
|
|
|
GroupMsgRepo.findAllGroupsWithDoctor(userId, function (err, groups) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Get group list with doctor failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Get group list with doctor failed', err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@ -438,11 +438,11 @@ class Doctor extends RedisModel {
|
|
|
newMessageCount: group.new_msg_count,
|
|
|
lastContentType: group.last_content_type,
|
|
|
lastContent: group.last_content,
|
|
|
timestamp: objectUtil.timestampToLong(group.timestamp)
|
|
|
timestamp: ObjectUtil.timestampToLong(group.timestamp)
|
|
|
});
|
|
|
}
|
|
|
|
|
|
modelUtil.emitData(self.eventEmitter, chats);
|
|
|
ModelUtil.emitData(self.eventEmitter, chats);
|
|
|
});
|
|
|
});
|
|
|
}
|
|
@ -456,9 +456,9 @@ class Doctor extends RedisModel {
|
|
|
let self = this;
|
|
|
let chats = {doctor: {}, patient: {}};
|
|
|
// 先获取医生间的私聊
|
|
|
pmRepo.findAllP2PWithDoctor(userId, function (err, doctors) {
|
|
|
PrivateMsgRepo.findAllP2PWithDoctor(userId, function (err, doctors) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Get chat list with doctor failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Get chat list with doctor failed', err);
|
|
|
return;
|
|
|
}
|
|
|
var amount = 0;
|
|
@ -469,9 +469,9 @@ class Doctor extends RedisModel {
|
|
|
amount = doctor.new_msg_count+amount;
|
|
|
}
|
|
|
// 再获取医生间的组
|
|
|
gmRepo.findAllGroupsWithDoctor(userId, function (err, groups) {
|
|
|
GroupMsgRepo.findAllGroupsWithDoctor(userId, function (err, groups) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Get group list with doctor failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Get group list with doctor failed', err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@ -484,9 +484,9 @@ class Doctor extends RedisModel {
|
|
|
chats.doctor = amount;
|
|
|
var patientAmount =0;
|
|
|
//获取患者记录数量
|
|
|
pmRepo.findAllP2PWithPatient(userId, function (err, patients) {
|
|
|
PrivateMsgRepo.findAllP2PWithPatient(userId, function (err, patients) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Get chat list with patient failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Get chat list with patient failed', err);
|
|
|
return;
|
|
|
}
|
|
|
for (let i = 0; i < patients.length; i++) {
|
|
@ -497,9 +497,9 @@ class Doctor extends RedisModel {
|
|
|
|
|
|
}
|
|
|
//获取患者记录数量
|
|
|
gmRepo.findAllGroupsWithPatient(userId, function (err, groups) {
|
|
|
GroupMsgRepo.findAllGroupsWithPatient(userId, function (err, groups) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Get group list with patient failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Get group list with patient failed', err);
|
|
|
return;
|
|
|
}
|
|
|
for (let i = 0; i < groups.length; i++) {
|
|
@ -511,7 +511,7 @@ class Doctor extends RedisModel {
|
|
|
patientAmount = patientAmount+ group.new_msg_count;
|
|
|
}
|
|
|
chats.patient = patientAmount;
|
|
|
modelUtil.emitData(self.eventEmitter, chats);
|
|
|
ModelUtil.emitData(self.eventEmitter, chats);
|
|
|
});
|
|
|
});
|
|
|
});
|
|
@ -532,17 +532,17 @@ class Doctor extends RedisModel {
|
|
|
getPrivateMessages(userId, peerId, contentType, msgStartId, msgEndId, count, closedInterval) {
|
|
|
let self = this;
|
|
|
|
|
|
pmRepo.findAllMessages(userId, peerId, contentType === undefined ? "0,1,2,3,4,5,6" : contentType, msgStartId, msgEndId, count, closedInterval, function (err, rows) {
|
|
|
PrivateMsgRepo.findAllMessages(userId, peerId, contentType === undefined ? "0,1,2,3,4,5,6" : contentType, msgStartId, msgEndId, count, closedInterval, function (err, rows) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Get private message failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Get private message failed', err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
let messages = Doctor.fillMessages(rows);
|
|
|
modelUtil.emitData(self.eventEmitter, messages);
|
|
|
ModelUtil.emitData(self.eventEmitter, messages);
|
|
|
|
|
|
// 清空统计信息
|
|
|
statsRepo.clearPrivateChatSummary(userId, peerId, function (err, result) {
|
|
|
StatsRepo.clearPrivateChatSummary(userId, peerId, function (err, result) {
|
|
|
if (err) log.error(err);
|
|
|
});
|
|
|
});
|
|
@ -557,9 +557,9 @@ class Doctor extends RedisModel {
|
|
|
getUnreadMessageCount(userId, peerId) {
|
|
|
let self = this;
|
|
|
|
|
|
statsRepo.getPrivateChatAllUnReadCount(userId, function (err, result) {
|
|
|
StatsRepo.getPrivateChatAllUnReadCount(userId, function (err, result) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, "Get unread private message count failed", err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, "Get unread private message count failed", err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@ -568,7 +568,7 @@ class Doctor extends RedisModel {
|
|
|
data.newMessageCount += result[i].new_msg_count;
|
|
|
}
|
|
|
|
|
|
modelUtil.emitData(self.eventEmitter, data);
|
|
|
ModelUtil.emitData(self.eventEmitter, data);
|
|
|
});
|
|
|
}
|
|
|
|
|
@ -580,9 +580,9 @@ class Doctor extends RedisModel {
|
|
|
getAllUnreadMessageCount(userId) {
|
|
|
let self = this;
|
|
|
|
|
|
statsRepo.getChatAllUnReadCount(userId, function (err, result) {
|
|
|
StatsRepo.getChatAllUnReadCount(userId, function (err, result) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, "Get all unread message count failed", err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, "Get all unread message count failed", err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@ -591,7 +591,7 @@ class Doctor extends RedisModel {
|
|
|
data.newMessageCount += result[index].new_msg_count;
|
|
|
}
|
|
|
|
|
|
modelUtil.emitData(self.eventEmitter, data);
|
|
|
ModelUtil.emitData(self.eventEmitter, data);
|
|
|
});
|
|
|
}
|
|
|
|
|
@ -603,26 +603,26 @@ class Doctor extends RedisModel {
|
|
|
*/
|
|
|
getUnreadPrivateMessages(userId, peerId) {
|
|
|
let self = this;
|
|
|
statsRepo.getPrivateChatSummary(userId, peerId, function (err, summary) {
|
|
|
StatsRepo.getPrivateChatSummary(userId, peerId, function (err, summary) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, 'Get unread private messages failed', err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Get unread private messages failed', err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
// 没有未读消息,直接返回
|
|
|
if (summary.length == 0 || summary[0].new_msg_count === 0) {
|
|
|
modelUtil.emitData(self.eventEmitter, {startId: 0, count: 0, records: []});
|
|
|
ModelUtil.emitData(self.eventEmitter, {startId: 0, count: 0, records: []});
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
pmRepo.findUnread(peerId, userId, MAX_INT, summary[0].new_msg_count, function (err, rows) {
|
|
|
PrivateMsgRepo.findUnread(peerId, userId, MAX_INT, summary[0].new_msg_count, function (err, rows) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, "Get unread private messages failed", err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, "Get unread private messages failed", err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
let messages = Doctor.fillMessages(rows);
|
|
|
modelUtil.emitData(self.eventEmitter, messages);
|
|
|
ModelUtil.emitData(self.eventEmitter, messages);
|
|
|
});
|
|
|
});
|
|
|
}
|
|
@ -635,9 +635,9 @@ class Doctor extends RedisModel {
|
|
|
*/
|
|
|
getChatSummary(userId, peerId) {
|
|
|
let self = this;
|
|
|
statsRepo.getPrivateChatSummary(userId, peerId, function (err, result) {
|
|
|
StatsRepo.getPrivateChatSummary(userId, peerId, function (err, result) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, "Get private messages statistic failed", err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, "Get private messages statistic failed", err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@ -658,10 +658,10 @@ class Doctor extends RedisModel {
|
|
|
data.lastContentType = row.last_content_type;
|
|
|
data.lastContent = row.last_content;
|
|
|
data.newMessageCount = row.new_msg_count;
|
|
|
data.timestamp = objectUtil.timestampToLong(row.timestamp)
|
|
|
data.timestamp = ObjectUtil.timestampToLong(row.timestamp)
|
|
|
}
|
|
|
|
|
|
modelUtil.emitData(self.eventEmitter, data);
|
|
|
ModelUtil.emitData(self.eventEmitter, data);
|
|
|
});
|
|
|
}
|
|
|
|
|
@ -670,47 +670,47 @@ class Doctor extends RedisModel {
|
|
|
|
|
|
if (messageType == 1) {
|
|
|
// 私信
|
|
|
pmRepo.findOneMessage(messageId, function (err, result) {
|
|
|
PrivateMsgRepo.findOneMessage(messageId, function (err, result) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, "Get message failed", err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, "Get message failed", err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (result.length == 0) {
|
|
|
modelUtil.emitDataNotFound(self.eventEmitter, "Message not found.");
|
|
|
ModelUtil.emitDataNotFound(self.eventEmitter, "Message not found.");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
modelUtil.emitData(self.eventEmitter, {
|
|
|
ModelUtil.emitData(self.eventEmitter, {
|
|
|
id: result[0].msg_id,
|
|
|
from: result[0].from_uid,
|
|
|
to: result[0].to_uid,
|
|
|
contentType: result[0].type,
|
|
|
content: result[0].content,
|
|
|
timestamp: objectUtil.timestampToLong(result[0].timestamp)
|
|
|
timestamp: ObjectUtil.timestampToLong(result[0].timestamp)
|
|
|
});
|
|
|
})
|
|
|
} else {
|
|
|
// 群信
|
|
|
gmRepo.findOneMessage(messageId, function (err, result) {
|
|
|
GroupMsgRepo.findOneMessage(messageId, function (err, result) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, "Get message failed", err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, "Get message failed", err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (result.length == 0) {
|
|
|
modelUtil.emitDataNotFound(self.eventEmitter, "Message not found.");
|
|
|
ModelUtil.emitDataNotFound(self.eventEmitter, "Message not found.");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
modelUtil.emitData(self.eventEmitter, {
|
|
|
ModelUtil.emitData(self.eventEmitter, {
|
|
|
id: result[0].msg_id,
|
|
|
from: result[0].from_uid,
|
|
|
at: result[0].at_uid,
|
|
|
groupId: result[0].to_gid,
|
|
|
contentType: result[0].type,
|
|
|
content: result[0].content,
|
|
|
timestamp: objectUtil.timestampToLong(result[0].timestamp)
|
|
|
timestamp: ObjectUtil.timestampToLong(result[0].timestamp)
|
|
|
});
|
|
|
});
|
|
|
}
|
|
@ -722,9 +722,9 @@ class Doctor extends RedisModel {
|
|
|
isConsultFinished(doctorId, patientId) {
|
|
|
let self = this;
|
|
|
|
|
|
pmRepo.isCurrentSessionFinished(doctorId, patientId, function (err, result) {
|
|
|
PrivateMsgRepo.isCurrentSessionFinished(doctorId, patientId, function (err, result) {
|
|
|
if (err) {
|
|
|
modelUtil.emitDbError(self.eventEmitter, "Get session finish status failed: ", err);
|
|
|
ModelUtil.emitDbError(self.eventEmitter, "Get session finish status failed: ", err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@ -738,7 +738,7 @@ class Doctor extends RedisModel {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
modelUtil.emitData(self.eventEmitter, data);
|
|
|
ModelUtil.emitData(self.eventEmitter, data);
|
|
|
})
|
|
|
}
|
|
|
|
|
@ -758,7 +758,7 @@ class Doctor extends RedisModel {
|
|
|
from: row.from_uid,
|
|
|
contentType: row.type,
|
|
|
content: row.content,
|
|
|
timestamp: objectUtil.timestampToLong(row.timestamp)
|
|
|
timestamp: ObjectUtil.timestampToLong(row.timestamp)
|
|
|
};
|
|
|
|
|
|
if (row.to_uid !== undefined) record.to = row.to_uid;
|