|
@ -71,8 +71,6 @@ class Sessions extends RedisModel {
|
|
|
}
|
|
|
ModelUtil.emitError(self.eventEmitter, {message: err, status: -1}, null);
|
|
|
} else {
|
|
|
//更新成为进行中的会话
|
|
|
// self.updateSessionStatus(sessionId,0);
|
|
|
if (handler) {
|
|
|
handler(null, res);
|
|
|
return;
|
|
@ -101,7 +99,6 @@ class Sessions extends RedisModel {
|
|
|
for (let i in participantArray) {
|
|
|
participantIdArray.push(participantArray[i].split(":")[0]);
|
|
|
}
|
|
|
|
|
|
if (type == SESSION_TYPES.P2P || type == SESSION_TYPES.SYSTEM) {
|
|
|
if (sessionId) {
|
|
|
callBusinessType(sessionId);
|
|
@ -160,7 +157,6 @@ class Sessions extends RedisModel {
|
|
|
redis.hmsetAsync(sessionKey, session).then(function () {
|
|
|
Participants.saveParticipantsToRedis(sessionId, participantArray, createDate, function (res) {
|
|
|
handler(null, session);
|
|
|
//messages.saveMessageToRedisFromCreateSession(sessionId, messageId, message);
|
|
|
});
|
|
|
})
|
|
|
}
|
|
@ -411,7 +407,7 @@ class Sessions extends RedisModel {
|
|
|
if (res.length != 0 && res[0].sex) {
|
|
|
sex = res[0].sex;
|
|
|
}
|
|
|
|
|
|
//end
|
|
|
sessionList.push({
|
|
|
id: sessionId,
|
|
|
name: sessionName,
|
|
@ -446,7 +442,6 @@ class Sessions extends RedisModel {
|
|
|
|
|
|
functionList.push(fun);
|
|
|
}
|
|
|
|
|
|
async.waterfall(functionList);
|
|
|
}
|
|
|
]);
|
|
@ -839,7 +834,7 @@ class Sessions extends RedisModel {
|
|
|
if (err) {
|
|
|
if(handler)
|
|
|
{
|
|
|
handler(err,res)
|
|
|
handler(err,res);
|
|
|
return;
|
|
|
}
|
|
|
ModelUtil.logError("getAllSessionsUnreadMessageCount is failed", err);
|
|
@ -849,7 +844,7 @@ class Sessions extends RedisModel {
|
|
|
if (res.length == 0) {
|
|
|
if(handler)
|
|
|
{
|
|
|
handler(err,count)
|
|
|
handler(err,count);
|
|
|
return;
|
|
|
}
|
|
|
ModelUtil.emitOK(self.eventEmitter, {count: count});
|
|
@ -859,9 +854,8 @@ class Sessions extends RedisModel {
|
|
|
for (let j in res) {
|
|
|
if (res[j].type == SESSION_TYPES.SYSTEM) {
|
|
|
if (j == res.length - 1) {
|
|
|
if(handler)
|
|
|
{
|
|
|
handler(err,count)
|
|
|
if(handler){
|
|
|
handler(err,count);
|
|
|
return;
|
|
|
}
|
|
|
ModelUtil.emitOK(self.eventEmitter, {count: count, patient: patientCount, doctor: doctorCount});
|
|
@ -877,7 +871,7 @@ class Sessions extends RedisModel {
|
|
|
if (err) {
|
|
|
if(handler)
|
|
|
{
|
|
|
handler(err,count)
|
|
|
handler(err,count);
|
|
|
return;
|
|
|
}
|
|
|
ModelUtil.logError("getAllSessionsUnreadMessageCount is failed", err);
|
|
@ -1133,7 +1127,9 @@ class Sessions extends RedisModel {
|
|
|
let sessionType = 0;
|
|
|
let sessionName = "";
|
|
|
message.id = messageId;
|
|
|
|
|
|
if(!message.timestamp){
|
|
|
message.timestamp = new Date();
|
|
|
}
|
|
|
// 发送成员必须处于会话中
|
|
|
participants.existsParticipant(sessionId, message.sender_id, function (err, res) {
|
|
|
if (res) {
|
|
@ -1142,19 +1138,22 @@ class Sessions extends RedisModel {
|
|
|
sessionName = res[1];
|
|
|
if (!sessionType || !sessionName) {
|
|
|
logger.error("Unknown session key " + session_key);
|
|
|
if (handler) {handler(new Error("Unknown session key " + session_key));return;} ;
|
|
|
if (handler) {
|
|
|
handler(new Error("Unknown session key " + session_key));return;
|
|
|
};
|
|
|
}
|
|
|
}).then(function (res) {
|
|
|
// 消息数据双写,并更新用户最后消息获取时间,会话新状态等
|
|
|
messages.saveMessageToRedis(sessionId, sessionType, messageId, message);
|
|
|
messages.saveMessageToMysql(sessionId, sessionType, messageId, message);
|
|
|
|
|
|
// 更新会话最新状态及成员最后一次消息获取时间
|
|
|
Sessions.updateParticipantLastFetchTime(sessionId, message.sender_id, message.timestamp.getTime());
|
|
|
Messages.updateLastContent(session_key, sessionType, sessionName, message);
|
|
|
SessionRepo.updateSessionLastStatus(message.sender_id, message.sender_name, message.timestamp, message.content, message.content_type, sessionId);
|
|
|
|
|
|
if (handler) {handler(null, messageId);return;}
|
|
|
if (handler) {
|
|
|
handler(null, messageId);
|
|
|
return;
|
|
|
}
|
|
|
}).then(function (res) {
|
|
|
// 推送消息
|
|
|
ParticipantRepo.findIds(sessionId, function (err, res) {
|
|
@ -1171,7 +1170,8 @@ class Sessions extends RedisModel {
|
|
|
}
|
|
|
})
|
|
|
}).catch(function (err) {
|
|
|
if (handler) { handler(err, messageId);return;}
|
|
|
log.error(err);
|
|
|
return;
|
|
|
})
|
|
|
} else {
|
|
|
if (handler){ handler("用户不在此会话当中!", messageId);return;}
|
|
@ -1255,7 +1255,7 @@ class Sessions extends RedisModel {
|
|
|
ParticipantRepo.updateLastFetchTime(new Date(score), sessionId, userId, function (err, res) {
|
|
|
if (err) {
|
|
|
logger.error("Update participant last fetch time failed: ", err);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
})
|
|
|
.catch(function (err) {
|