|
@ -75,7 +75,7 @@ class Sessions extends RedisModel {
|
|
|
if (isPatient) {
|
|
|
businessType = SESSION_BUSINESS_TYPE.PATIENT
|
|
|
}
|
|
|
if (length - 1 == j || businessType == SESSION_BUSINESS_TYPE.PATIENT) {
|
|
|
if (length - 1 == j) {
|
|
|
callCreate(sessionId, businessType);
|
|
|
}
|
|
|
})
|
|
@ -203,33 +203,32 @@ class Sessions extends RedisModel {
|
|
|
let session = res[0];
|
|
|
let role = res[1];
|
|
|
let lastFetchTime = res[2];
|
|
|
if (businessType && businessType != session.business_type) {
|
|
|
logger.info("businessType:" + businessType + "<>" + session.business_type);
|
|
|
} else {
|
|
|
if(!lastFetchTime)lastFetchTime = new Date().getTime();
|
|
|
// 计算未读消息数
|
|
|
let messagesByTimestampKey = RedisModel.makeRedisKey(REDIS_KEYS.MessagesByTimestamp, sessionId);
|
|
|
redis.zcountAsync(messagesByTimestampKey, lastFetchTime, new Date().getTime())
|
|
|
.then(function (count) {
|
|
|
sessionList.push({
|
|
|
id: sessionId,
|
|
|
name: session.name,
|
|
|
create_date: session.create_date,
|
|
|
last_content_type: session.last_content_type,
|
|
|
last_content: session.last_content,
|
|
|
sender_id: session.sender_id,
|
|
|
type: session.type,
|
|
|
sender_name: session.sender_name,
|
|
|
unread_count: count,
|
|
|
business_type: session.business_type,
|
|
|
my_role: role
|
|
|
});
|
|
|
|
|
|
if (sessionId === sessionIds[sessionIds.length - 1]) {
|
|
|
if(businessType&&businessType!= session.business_type){
|
|
|
|
|
|
}else{
|
|
|
sessionList.push({
|
|
|
id: sessionId,
|
|
|
name: session.name,
|
|
|
create_date: session.create_date,
|
|
|
last_content_type: session.last_content_type,
|
|
|
last_content: session.last_content,
|
|
|
sender_id: session.sender_id,
|
|
|
type: session.type,
|
|
|
sender_name: session.sender_name,
|
|
|
unread_count: count,
|
|
|
business_type: session.business_type,
|
|
|
my_role: role
|
|
|
});
|
|
|
}
|
|
|
if (sessionId == sessionIds[sessionIds.length - 1]) {
|
|
|
ModelUtil.emitOK(self.eventEmitter, sessionList);
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
;
|
|
|
})
|
|
|
.catch(function (err) {
|
|
|
ModelUtil.emitError(self.eventEmitter, "Get sessions failed: " + err);
|
|
@ -548,6 +547,14 @@ class Sessions extends RedisModel {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
sendTopicMessages(topicId,message){
|
|
|
let self = this;
|
|
|
let topicKey = RedisModel.makeRedisKey(REDIS_KEYS.Topic, topicId);
|
|
|
redis.hgetallAsync(topicKey).then(function (topic) {
|
|
|
self.saveMessageBySession(topic.session_id,message);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 保存消息
|
|
|
*
|