|  | @ -245,7 +245,7 @@ class Sessions extends RedisModel {
 | 
	
		
			
				|  |  |      * @param start_msg_id 消息会话最新的一条消息的ID
 | 
	
		
			
				|  |  |      * @param end_msg_id 消息会话刚开始的消息ID
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     getMessages(sessionId, user, start_msg_id, end_msg_id, page, pagesize) {
 | 
	
		
			
				|  |  |     getMessages(sessionId, user, start_msg_id, end_msg_id, page, pagesize,isoffset) {
 | 
	
		
			
				|  |  |         let self = this;
 | 
	
		
			
				|  |  |         let message_timestamp_key = RedisModel.makeRedisKey(REDIS_KEYS.MessagesByTimestamp, sessionId);
 | 
	
		
			
				|  |  |         if (!start_msg_id && !end_msg_id) {
 | 
	
	
		
			
				|  | @ -261,7 +261,7 @@ class Sessions extends RedisModel {
 | 
	
		
			
				|  |  |                         return;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     end_msg_id = res[0];
 | 
	
		
			
				|  |  |                     self.getMessagesByPage(sessionId, user, end_msg_id, start_msg_id, page, pagesize, function (err, res) {
 | 
	
		
			
				|  |  |                     self.getMessagesByPage(sessionId, user, end_msg_id, start_msg_id, page, pagesize,isoffset, function (err, res) {
 | 
	
		
			
				|  |  |                         if (err) {
 | 
	
		
			
				|  |  |                             logger.error("getMessagesByPage error" + err);
 | 
	
		
			
				|  |  |                             ModelUtil.emitError(self.eventEmitter, err, err);
 | 
	
	
		
			
				|  | @ -278,7 +278,7 @@ class Sessions extends RedisModel {
 | 
	
		
			
				|  |  |                     return;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 start_msg_id = res[0];
 | 
	
		
			
				|  |  |                 self.getMessagesByPage(sessionId, user, end_msg_id, start_msg_id, page, pagesize, function (err, res) {
 | 
	
		
			
				|  |  |                 self.getMessagesByPage(sessionId, user, end_msg_id, start_msg_id, page, pagesize,isoffset, function (err, res) {
 | 
	
		
			
				|  |  |                     if (err) {
 | 
	
		
			
				|  |  |                         logger.error("getMessagesByPage error" + err);
 | 
	
		
			
				|  |  |                         ModelUtil.emitError(self.eventEmitter, err, err);
 | 
	
	
		
			
				|  | @ -294,7 +294,7 @@ class Sessions extends RedisModel {
 | 
	
		
			
				|  |  |                     return;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 end_msg_id = res[0];
 | 
	
		
			
				|  |  |                 self.getMessagesByPage(sessionId, user, start_msg_id, end_msg_id, page, pagesize, function (err, res) {
 | 
	
		
			
				|  |  |                 self.getMessagesByPage(sessionId, user, start_msg_id, end_msg_id, page, pagesize,isoffset, function (err, res) {
 | 
	
		
			
				|  |  |                     if (err) {
 | 
	
		
			
				|  |  |                         logger.error("getMessagesByPage error" + err);
 | 
	
		
			
				|  |  |                         ModelUtil.emitError(self.eventEmitter, err, err);
 | 
	
	
		
			
				|  | @ -304,7 +304,7 @@ class Sessions extends RedisModel {
 | 
	
		
			
				|  |  |                 })
 | 
	
		
			
				|  |  |             })
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             self.getMessagesByPage(sessionId, user, end_msg_id, start_msg_id, page, pagesize, function (err, res) {
 | 
	
		
			
				|  |  |             self.getMessagesByPage(sessionId, user, end_msg_id, start_msg_id, page, pagesize,isoffset, function (err, res) {
 | 
	
		
			
				|  |  |                 if (err) {
 | 
	
		
			
				|  |  |                     logger.error("getMessagesByPage error" + err);
 | 
	
		
			
				|  |  |                     ModelUtil.emitError(self.eventEmitter, err, err);
 | 
	
	
		
			
				|  | @ -326,17 +326,16 @@ class Sessions extends RedisModel {
 | 
	
		
			
				|  |  |      * @param size          必选。页面大小
 | 
	
		
			
				|  |  |      * @param handler       必选。回调
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     getMessagesByPage(sessionId, userId, startMsgId, endMsgId, page, size, handler) {
 | 
	
		
			
				|  |  |     getMessagesByPage(sessionId, userId, startMsgId, endMsgId, page, size,isoffset, handler) {
 | 
	
		
			
				|  |  |         let messagesTimestampKey = RedisModel.makeRedisKey(REDIS_KEYS.MessagesByTimestamp, sessionId);
 | 
	
		
			
				|  |  |         let messagesKey = RedisModel.makeRedisKey(REDIS_KEYS.Messages, sessionId);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         let participants = new Participants();
 | 
	
		
			
				|  |  |         let offset = (page - 1 < 0 ? 0 : page - 1) * size;
 | 
	
		
			
				|  |  |         let count = size;
 | 
	
		
			
				|  |  |         if (page > 1 || startMsgId) {//翻页由于闭区间,需跳过本身数据
 | 
	
		
			
				|  |  |         if (page > 1 ||isoffset==1) {//翻页由于闭区间,需跳过本身数据
 | 
	
		
			
				|  |  |             offset += 1;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         participants.existsParticipant(sessionId, userId, function (err, res) {
 | 
	
		
			
				|  |  |             if (!res) {
 | 
	
		
			
				|  |  |                 handler(Error("User not found in session " + sessionId), null);
 | 
	
	
		
			
				|  | @ -453,7 +452,7 @@ class Sessions extends RedisModel {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 let startMsgId = messageIds[0];
 | 
	
		
			
				|  |  |                 let endMsgId = messageIds[messageIds.length - 1];
 | 
	
		
			
				|  |  |                 self.getMessagesByPage(sessionId, userId, startMsgId, endMsgId, 0, messageIds.length, function (err, res) {
 | 
	
		
			
				|  |  |                 self.getMessagesByPage(sessionId, userId, startMsgId, endMsgId, 0, messageIds.length,0,function (err, res) {
 | 
	
		
			
				|  |  |                     if (err) {
 | 
	
		
			
				|  |  |                         ModelUtil.emitError(self.eventEmitter, err.message);
 | 
	
		
			
				|  |  |                         return;
 |