|  | @ -10,6 +10,7 @@ let Messages = require('../messages/messages');
 | 
	
		
			
				|  |  | let Users = require('../user/users');
 | 
	
		
			
				|  |  | let Participants = require('./Participants');
 | 
	
		
			
				|  |  | let SessionRepo = require('../../repository/mysql/session.repo');
 | 
	
		
			
				|  |  | let TopicRepo = require('../../repository/mysql/topics.repo');
 | 
	
		
			
				|  |  | let ParticipantRepo = require('../../repository/mysql/participant.repo');
 | 
	
		
			
				|  |  | let MessageRepo = require('../../repository/mysql/message.repo');
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -62,10 +63,10 @@ class Sessions extends RedisModel {
 | 
	
		
			
				|  |  |         self.createSessionToRedis(sessionId, name, type, participantArray,messageId, function(err,res){
 | 
	
		
			
				|  |  |             if(err){
 | 
	
		
			
				|  |  |                 if(handler){handler(err,null);return;};
 | 
	
		
			
				|  |  |                 ModelUtil.emitError(self.eventEmitter, {message:err}, null);
 | 
	
		
			
				|  |  |                 ModelUtil.emitError(self.eventEmitter, {message:err,status:-1}, null);
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 if(handler){handler(null,res);return;};
 | 
	
		
			
				|  |  |                 ModelUtil.emitOK(self.eventEmitter,res);
 | 
	
		
			
				|  |  |                 ModelUtil.emitOK(self.eventEmitter,{status:200,data:res});
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         });
 | 
	
		
			
				|  |  |     }
 | 
	
	
		
			
				|  | @ -120,7 +121,7 @@ class Sessions extends RedisModel {
 | 
	
		
			
				|  |  |             let message = {
 | 
	
		
			
				|  |  |                 sender_id: "system",
 | 
	
		
			
				|  |  |                 sender_name: "system",
 | 
	
		
			
				|  |  |                 content_type: 6,
 | 
	
		
			
				|  |  |                 content_type: 11,
 | 
	
		
			
				|  |  |                 content: "会话创建成功",
 | 
	
		
			
				|  |  |                 timestamp: createDate,
 | 
	
		
			
				|  |  |                 id:messageId
 | 
	
	
		
			
				|  | @ -140,7 +141,7 @@ 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);
 | 
	
		
			
				|  |  |                     //messages.saveMessageToRedisFromCreateSession(sessionId, messageId, message);
 | 
	
		
			
				|  |  |                 });
 | 
	
		
			
				|  |  |             })
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -238,18 +239,15 @@ class Sessions extends RedisModel {
 | 
	
		
			
				|  |  |             session.last_content  = message.content;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             session.last_content_type = message.content_type;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             MessageRepo.save(message,type,messageId,sessionId,function(err,res){
 | 
	
		
			
				|  |  |                 SessionRepo.updateSessionLastStatus(message.sender_id,
 | 
	
		
			
				|  |  |                     message.sender_name,
 | 
	
		
			
				|  |  |                     message.timestamp,
 | 
	
		
			
				|  |  |                     message.content,
 | 
	
		
			
				|  |  |                     message.content_type,
 | 
	
		
			
				|  |  |                     sessionId, function (err, res) {
 | 
	
		
			
				|  |  |                         if (err) {handler(err,null);return;};
 | 
	
		
			
				|  |  |                         handler(null,session);
 | 
	
		
			
				|  |  |                     });
 | 
	
		
			
				|  |  |             })
 | 
	
		
			
				|  |  |             SessionRepo.updateSessionLastStatus(message.sender_id,
 | 
	
		
			
				|  |  |                 message.sender_name,
 | 
	
		
			
				|  |  |                 message.timestamp,
 | 
	
		
			
				|  |  |                 message.content,
 | 
	
		
			
				|  |  |                 message.content_type,
 | 
	
		
			
				|  |  |                 sessionId, function (err, res) {
 | 
	
		
			
				|  |  |                 if (err) {handler(err,null);return;};
 | 
	
		
			
				|  |  |                 handler(null,session);
 | 
	
		
			
				|  |  |             });
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -375,27 +373,43 @@ 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, isoffset) {
 | 
	
		
			
				|  |  |     getMessages(sessionId, user, start_msg_id, end_msg_id, page, pagesize, isoffset,handler) {
 | 
	
		
			
				|  |  |         let self = this;
 | 
	
		
			
				|  |  |         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(handler){
 | 
	
		
			
				|  |  |                         handler(null,res);
 | 
	
		
			
				|  |  |                         return;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     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(handler){
 | 
	
		
			
				|  |  |                             handler(null,res);
 | 
	
		
			
				|  |  |                             return;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         ModelUtil.emitOK(self.eventEmitter, res);
 | 
	
		
			
				|  |  |                         return;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     end_msg_id = res[0];
 | 
	
		
			
				|  |  |                     self.getMessagesByPage(sessionId, user, end_msg_id, start_msg_id, page, pagesize, isoffset, function (err, res) {
 | 
	
		
			
				|  |  |                         if (err) {
 | 
	
		
			
				|  |  |                             if(handler){
 | 
	
		
			
				|  |  |                                 handler(err,null);
 | 
	
		
			
				|  |  |                                 return;
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                             logger.error("getMessagesByPage error" + err);
 | 
	
		
			
				|  |  |                             ModelUtil.emitError(self.eventEmitter, err, err);
 | 
	
		
			
				|  |  |                         } else {
 | 
	
		
			
				|  |  |                             if(handler){
 | 
	
		
			
				|  |  |                                 handler(null,res);
 | 
	
		
			
				|  |  |                                 return;
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                             ModelUtil.emitOK(self.eventEmitter, res);
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     })
 | 
	
	
		
			
				|  | @ -404,15 +418,27 @@ class Sessions extends RedisModel {
 | 
	
		
			
				|  |  |         } else if (!start_msg_id) {
 | 
	
		
			
				|  |  |             redis.zrevrangeAsync(message_timestamp_key, 0, 0).then(function (res) {
 | 
	
		
			
				|  |  |                 if (res.length == 0) {
 | 
	
		
			
				|  |  |                     if(handler){
 | 
	
		
			
				|  |  |                         handler(null,res);
 | 
	
		
			
				|  |  |                         return;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     ModelUtil.emitOK(self.eventEmitter, res);
 | 
	
		
			
				|  |  |                     return;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 start_msg_id = res[0];
 | 
	
		
			
				|  |  |                 self.getMessagesByPage(sessionId, user, end_msg_id, start_msg_id, page, pagesize, isoffset, function (err, res) {
 | 
	
		
			
				|  |  |                     if (err) {
 | 
	
		
			
				|  |  |                         if(handler){
 | 
	
		
			
				|  |  |                             handler(err,null);
 | 
	
		
			
				|  |  |                             return;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         logger.error("getMessagesByPage error" + err);
 | 
	
		
			
				|  |  |                         ModelUtil.emitError(self.eventEmitter, err, err);
 | 
	
		
			
				|  |  |                     } else {
 | 
	
		
			
				|  |  |                         if(handler){
 | 
	
		
			
				|  |  |                             handler(null,res);
 | 
	
		
			
				|  |  |                             return;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         ModelUtil.emitOK(self.eventEmitter, res);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 })
 | 
	
	
		
			
				|  | @ -426,9 +452,17 @@ class Sessions extends RedisModel {
 | 
	
		
			
				|  |  |                 end_msg_id = res[0];
 | 
	
		
			
				|  |  |                 self.getMessagesByPage(sessionId, user, start_msg_id, end_msg_id, page, pagesize, isoffset, function (err, res) {
 | 
	
		
			
				|  |  |                     if (err) {
 | 
	
		
			
				|  |  |                         if(handler){
 | 
	
		
			
				|  |  |                             handler(err,null);
 | 
	
		
			
				|  |  |                             return;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         logger.error("getMessagesByPage error" + err);
 | 
	
		
			
				|  |  |                         ModelUtil.emitError(self.eventEmitter, err, err);
 | 
	
		
			
				|  |  |                     } else {
 | 
	
		
			
				|  |  |                         if(handler){
 | 
	
		
			
				|  |  |                             handler(null,res);
 | 
	
		
			
				|  |  |                             return;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         ModelUtil.emitOK(self.eventEmitter, res);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 })
 | 
	
	
		
			
				|  | @ -436,9 +470,17 @@ class Sessions extends RedisModel {
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             self.getMessagesByPage(sessionId, user, end_msg_id, start_msg_id, page, pagesize, isoffset, function (err, res) {
 | 
	
		
			
				|  |  |                 if (err) {
 | 
	
		
			
				|  |  |                     if(handler){
 | 
	
		
			
				|  |  |                         handler(err,null);
 | 
	
		
			
				|  |  |                         return;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     logger.error("getMessagesByPage error" + err);
 | 
	
		
			
				|  |  |                     ModelUtil.emitError(self.eventEmitter, err, err);
 | 
	
		
			
				|  |  |                 } else {
 | 
	
		
			
				|  |  |                     if(handler){
 | 
	
		
			
				|  |  |                         handler(null,res);
 | 
	
		
			
				|  |  |                         return;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     ModelUtil.emitOK(self.eventEmitter, res);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             })
 | 
	
	
		
			
				|  | @ -685,10 +727,20 @@ 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);
 | 
	
		
			
				|  |  |         })
 | 
	
		
			
				|  |  |         TopicRepo.findAllByTopicId(topicId,function(err,res){
 | 
	
		
			
				|  |  |             if(err||res.length==0){
 | 
	
		
			
				|  |  |                 ModelUtil.emitOK(self.eventEmitter, {status:-1,"message": "议题获取失败"});
 | 
	
		
			
				|  |  |                 return;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             self.saveMessageByTopic(message,res[0].session_id,function(err,messageId){
 | 
	
		
			
				|  |  |                 if(err){
 | 
	
		
			
				|  |  |                     ModelUtil.emitOK(self.eventEmitter, {status:-1,"message":err});
 | 
	
		
			
				|  |  |                 }else{
 | 
	
		
			
				|  |  |                     message.id = messageId;
 | 
	
		
			
				|  |  |                     ModelUtil.emitOK(self.eventEmitter, {status:200,"message":"发送成功",data:message});
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             });
 | 
	
		
			
				|  |  |         });
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 |