|
@ -223,7 +223,7 @@ class Sessions extends RedisModel {
|
|
|
function callCreateSession(businessType) {
|
|
|
//查找该sessionId是否存在存在则直接返回实例
|
|
|
SessionRepo.findOne(sessionId, function (err, res) {
|
|
|
if (res.length > 0) {//已经存在
|
|
|
if (res && res.length > 0) {//已经存在
|
|
|
//已存在的会话不修改名称
|
|
|
name = res[0].name;
|
|
|
//更新成员
|
|
@ -415,7 +415,7 @@ class Sessions extends RedisModel {
|
|
|
// },
|
|
|
function (callback) {
|
|
|
SessionRepo.findAllByType(userId,businessType,page,size,function(err,res){
|
|
|
if (res.length == 0) {
|
|
|
if (res && res.length == 0) {
|
|
|
ModelUtil.emitOK(self.eventEmitter, []);
|
|
|
return;
|
|
|
}
|
|
@ -625,11 +625,11 @@ class Sessions extends RedisModel {
|
|
|
sessionName = res[0].name;
|
|
|
}
|
|
|
var bir = new Date().getTime();
|
|
|
if (res.length != 0 && res[0].birthdate) {
|
|
|
if (res && res.length != 0 && res[0].birthdate) {
|
|
|
bir = res[0].birthdate.getTime();
|
|
|
}
|
|
|
var sex = 1;
|
|
|
if (res.length != 0 && res[0].sex) {
|
|
|
if (res && res.length != 0 && res[0].sex) {
|
|
|
sex = res[0].sex;
|
|
|
}
|
|
|
//end
|
|
@ -700,13 +700,16 @@ class Sessions extends RedisModel {
|
|
|
* @param status 0:进行中的会话1:结束的会话
|
|
|
*/
|
|
|
getUserSessionsByType(userId,type,page, size,status) {
|
|
|
logger.info("根据用户类型获取用户的session列表1: ");
|
|
|
let userSessionKey = RedisModel.makeRedisKey(REDIS_KEYS.UserSessions, userId);
|
|
|
let self = this;
|
|
|
logger.info("根据用户类型获取用户的session列表2: ");
|
|
|
async.waterfall([
|
|
|
// 获取会话ID列表
|
|
|
function (callback) {
|
|
|
SessionRepo.findListByType(userId,type,page,size,status,function(err,res){
|
|
|
if (res.length == 0) {
|
|
|
logger.info("根据用户类型获取用户的session列表: res :"+res);
|
|
|
if (res == null || res.length == 0) {
|
|
|
ModelUtil.emitOK(self.eventEmitter, []);
|
|
|
return;
|
|
|
}
|
|
@ -717,6 +720,8 @@ class Sessions extends RedisModel {
|
|
|
function (sessionIds) {
|
|
|
let sessionList = [];
|
|
|
let functionList = [];
|
|
|
|
|
|
|
|
|
for (let j = 0; j < sessionIds.length; j++) {
|
|
|
let fun = function (index, callback) {
|
|
|
if (!callback) {
|
|
@ -756,7 +761,6 @@ class Sessions extends RedisModel {
|
|
|
}
|
|
|
|
|
|
if (!lastFetchTime) lastFetchTime = new Date().getTime();
|
|
|
|
|
|
// 计算未读消息数
|
|
|
let messagesByTimestampKey = RedisModel.makeRedisKey(REDIS_KEYS.MessagesByTimestamp, sessionId);
|
|
|
redis.zcountAsync(messagesByTimestampKey, parseInt(lastFetchTime)+1, new Date().getTime())
|
|
@ -769,11 +773,11 @@ class Sessions extends RedisModel {
|
|
|
sessionName = res[0].name;
|
|
|
}
|
|
|
var bir = new Date().getTime();
|
|
|
if (res.length != 0 && res[0].birthdate) {
|
|
|
if (res && res.length != 0 && res[0].birthdate) {
|
|
|
bir = res[0].birthdate.getTime();
|
|
|
}
|
|
|
var sex = 1;
|
|
|
if (res.length != 0 && res[0].sex) {
|
|
|
if (res && res.length != 0 && res[0].sex) {
|
|
|
sex = res[0].sex;
|
|
|
}
|
|
|
|
|
@ -831,7 +835,7 @@ class Sessions extends RedisModel {
|
|
|
// 获取会话ID列表
|
|
|
function (callback) {
|
|
|
SessionRepo.findAllByTypeAndStatus(userId,businessType,status,page,size,function(err,res){
|
|
|
if (res.length == 0) {
|
|
|
if (res && res.length == 0) {
|
|
|
ModelUtil.emitOK(self.eventEmitter, []);
|
|
|
return;
|
|
|
}
|
|
@ -911,7 +915,7 @@ class Sessions extends RedisModel {
|
|
|
sessionName = res[0].name;
|
|
|
}
|
|
|
var bir = new Date().getTime();
|
|
|
if (res.length != 0 && res[0].birthdate) {
|
|
|
if (res && res.length != 0 && res[0].birthdate) {
|
|
|
bir = res[0].birthdate.getTime();
|
|
|
}
|
|
|
var sex = 1;
|
|
@ -981,8 +985,8 @@ class Sessions extends RedisModel {
|
|
|
if (!start_msg_id && !end_msg_id) {
|
|
|
redis.zrevrangeAsync(message_timestamp_key, 0, 0).then(function (res) {
|
|
|
logger.info("redis return res-----"+res);
|
|
|
log.info("session.js--830---getMessages res.length: " + res.length);
|
|
|
if (res.length == 0) {
|
|
|
// log.info("session.js--830---getMessages res.length: " + res.length);
|
|
|
if (res && res.length == 0) {
|
|
|
//修复应redis没有缓冲聊天记录导致会话列表加载不出来
|
|
|
// cache messages
|
|
|
let messagesKey = RedisModel.makeRedisKey(REDIS_KEYS.Messages, sessionId);
|
|
@ -1026,7 +1030,7 @@ class Sessions extends RedisModel {
|
|
|
}
|
|
|
start_msg_id = res[0];
|
|
|
redis.zrangeAsync(message_timestamp_key, 0, 0).then(function (res) {
|
|
|
if (res.length == 0) {
|
|
|
if (res && res.length == 0) {
|
|
|
if (handler) {
|
|
|
handler(null, res);
|
|
|
return;
|
|
@ -1055,7 +1059,7 @@ class Sessions extends RedisModel {
|
|
|
})
|
|
|
} else if (!start_msg_id) {
|
|
|
redis.zrevrangeAsync(message_timestamp_key, 0, 0).then(function (res) {
|
|
|
if (res.length == 0) {
|
|
|
if (res && res.length == 0) {
|
|
|
if (handler) {
|
|
|
handler(null, res);
|
|
|
return;
|
|
@ -1083,7 +1087,7 @@ class Sessions extends RedisModel {
|
|
|
})
|
|
|
} else if (!end_msg_id) {
|
|
|
redis.zrangeAsync(message_timestamp_key, 0, 0).then(function (res) {
|
|
|
if (res.length == 0) {
|
|
|
if (res && res.length == 0) {
|
|
|
ModelUtil.emitOK(self.eventEmitter, res);
|
|
|
return;
|
|
|
}
|
|
@ -1176,7 +1180,7 @@ class Sessions extends RedisModel {
|
|
|
if(endMsgScore>startMsgScore){
|
|
|
redis.zrangebyscoreAsync(messagesTimestampKey, startMsgScore, endMsgScore, "limit", offset, count)
|
|
|
.then(function (res) {
|
|
|
if (res.length == 0) {
|
|
|
if (res && res.length == 0) {
|
|
|
handler(null, []);
|
|
|
return;
|
|
|
}
|
|
@ -1208,7 +1212,7 @@ class Sessions extends RedisModel {
|
|
|
// 从消息时间表中过滤出要获取的消息ID列表,倒序取出消息
|
|
|
redis.zrevrangebyscoreAsync(messagesTimestampKey, startMsgScore, endMsgScore, "limit", offset, count)
|
|
|
.then(function (res) {
|
|
|
if (res.length == 0) {
|
|
|
if (res && res.length == 0) {
|
|
|
handler(null, []);
|
|
|
return;
|
|
|
}
|
|
@ -1263,7 +1267,7 @@ class Sessions extends RedisModel {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (res.length == 0) {
|
|
|
if (res && res.length == 0) {
|
|
|
if(handler)
|
|
|
{
|
|
|
handler(err,count);
|