| 
					
				 | 
			
			
				@ -79,7 +79,7 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 保存会话及成员至MySQL中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                self.saveSessionToMysql(sessionId, name, type, createDate, function (err, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Participants.saveParticipantsToMysql(sessionId, participantArray, function (err, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(err){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            ModelUtil.emitError(self.eventEmitter, err.message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -152,86 +152,64 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            size = size + page; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 倒序获取 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        redis.zrevrangeAsync(userSessionKey, page, size).then(function (res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            let sessionList = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (res.length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                ModelUtil.emitOK(self.eventEmitter, []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (let i in res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                callGetSessions(res[i], i == res.length - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            function callGetSessions(sessionId, lastOne) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                let sessionKey = RedisModel.makeRedisKey(REDIS_KEYS.Session, sessionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redis.hgetallAsync(sessionKey).then(function (session) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    let sessionParticipantsKey = RedisModel.makeRedisKey(REDIS_KEYS.SessionParticipants, sessionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    // 对比当前用户最后一次此会话消息的时间与会话中最新的消息时间,以此判断未读消息数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    redis.zscoreAsync(sessionParticipantsKey, userId).then(function (lastFetchTime) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        callGetUnreadCount(session, sessionId, lastFetchTime, lastOne); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }).catch(function (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    throw err; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        async.waterfall([ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 获取会话ID列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            function (callback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redis.zrevrangeAsync(userSessionKey, page, size) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .then(function (sessionIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (sessionIds.length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            ModelUtil.emitOK(self.eventEmitter, []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             * 统计未读消息数。以当前时间为准。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             * @param session 返回的会话列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             * @param sessionId 当前会话ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             * @param lastFetchTime 当前会话当前用户的最后一次时间搓 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             * @param lastOne 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            function callGetUnreadCount(session, sessionId, lastFetchTime, lastOne) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                let messagesByTimestampKey = RedisModel.makeRedisKey(REDIS_KEYS.MessagesByTimestamp, sessionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redis.zrangebyscoreAsync(messagesByTimestampKey, lastFetchTime, (new Date().getTime())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .then(function (messagetimelist) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        session.id = sessionId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        session.unread_count = messagetimelist.length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        callGetMyRole(session, sessionId, lastOne); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        callback(null, sessionIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    .catch(function (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        throw err; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             * 获取用户在此会话中的角色。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             * @param session 要返回的JSON 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             * @param sessionId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             * @param lastOne 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            function callGetMyRole(session, sessionId, lastOne) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                let participantsRoleKey = RedisModel.makeRedisKey(REDIS_KEYS.SessionParticipantsRole, sessionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redis.hgetAsync(participantsRoleKey, userId).then(function (role) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    session.my_role = role; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    callback(session, lastOne); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 遍历会话 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            function (sessionIds, callback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                let sessionList = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sessionIds.forEach(function (sessionId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    let sessionKey = RedisModel.makeRedisKey(REDIS_KEYS.Session, sessionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    let participantsRoleKey = RedisModel.makeRedisKey(REDIS_KEYS.SessionParticipantsRole, sessionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    let sessionParticipantsKey = RedisModel.makeRedisKey(REDIS_KEYS.SessionParticipants, sessionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             * 列表封装完毕后由此回调返回数据界面 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             * @param session 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             * @param lastOne 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            function callback(session, lastOne) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sessionList.push(session); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (lastOne) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    ModelUtil.emitOK(self.eventEmitter, sessionList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    redis.multi() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        .hgetall(sessionKey)                       // 会话实体 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        .hget(participantsRoleKey, userId)         // 用户在此会话中的角色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        .zscore(sessionParticipantsKey, userId)    // 用户在此会话中最后一次获取未读消息的时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        .execAsync() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        .then(function (res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            let session = res[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            let role = res[1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            let lastFetchTime = res[2]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            // 计算未读消息数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            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, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        sender_name: session.sender_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        unread_count: count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }).catch(function (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            ModelUtil.emitError(self.eventEmitter, {message: "Get sessions failed: " + err}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -247,13 +225,13 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        let message_timestamp_key = RedisModel.makeRedisKey(REDIS_KEYS.MessagesByTimestamp, sessionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (!start_msg_id && !end_msg_id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redis.zrevrangeAsync(message_timestamp_key, 0, 0).then(function (res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(res.length==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (res.length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    ModelUtil.emitOK(self.eventEmitter, res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                start_msg_id = res[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redis.zrangeAsync(message_timestamp_key, 0, 0).then(function (res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(res.length==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (res.length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        ModelUtil.emitOK(self.eventEmitter, res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -261,7 +239,7 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    self.getMessagesByPage(sessionId, user, start_msg_id, end_msg_id, page, pagesize, function (err, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            logger.error("getMessagesByPage error" + err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            ModelUtil.emitError(self.eventEmitter,err,err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            ModelUtil.emitError(self.eventEmitter, err, err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            ModelUtil.emitOK(self.eventEmitter, res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -270,7 +248,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.length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    ModelUtil.emitOK(self.eventEmitter, res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -278,7 +256,7 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                self.getMessagesByPage(sessionId, user, startMsgId, endMsgId, page, pagesize, function (err, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        logger.error("getMessagesByPage error" + err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        ModelUtil.emitError(self.eventEmitter,err,err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        ModelUtil.emitError(self.eventEmitter, err, err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        ModelUtil.emitOK(self.eventEmitter, res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -286,7 +264,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.length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    ModelUtil.emitOK(self.eventEmitter, res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -294,7 +272,7 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                self.getMessagesByPage(sessionId, user, start_msg_id, end_msg_id, page, pagesize, function (err, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        logger.error("getMessagesByPage error" + err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        ModelUtil.emitError(self.eventEmitter,err,err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        ModelUtil.emitError(self.eventEmitter, err, err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        ModelUtil.emitOK(self.eventEmitter, res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -304,7 +282,7 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            self.getMessagesByPage(sessionId, user, start_msg_id, end_msg_id, page, pagesize, function (err, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    logger.error("getMessagesByPage error" + err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    ModelUtil.emitError(self.eventEmitter,err,err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    ModelUtil.emitError(self.eventEmitter, err, err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    ModelUtil.emitOK(self.eventEmitter, res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -333,7 +311,7 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        let offset = (page - 1 < 0 ? 0 : page - 1) * size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        let count = 20; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        participants.existsParticipant(sessionId, user, function (err,res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        participants.existsParticipant(sessionId, user, function (err, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                handler("用户不在此会话中!", false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -491,7 +469,7 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redis.hmgetAsync(sessionKey, ["type", "name"]).then(function (res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    let sessionType = res[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(sessionType == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (sessionType == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        ModelUtil.emitError(self.eventEmitter, "Session with id " + sessionId + " not found."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 |