|  | @ -11,6 +11,7 @@ let modelUtil = require('../../util/model.util');
 | 
	
		
			
				|  |  | var imDb = require('../../repository/mysql/db/im.db');
 | 
	
		
			
				|  |  | let log = require('../../util/log.js');
 | 
	
		
			
				|  |  | let Sessions = require('../sessions/sessions');
 | 
	
		
			
				|  |  | let MessageRepo = require('../../repository/mysql/message.repo');
 | 
	
		
			
				|  |  | let configFile = require('../../include/commons').CONFIG_FILE;
 | 
	
		
			
				|  |  | let config = require('../../resources/config/' + configFile);
 | 
	
		
			
				|  |  | const RedisKey = require('../../include/commons').REDIS_KEYS;
 | 
	
	
		
			
				|  | @ -46,40 +47,7 @@ class Messages extends RedisModel {
 | 
	
		
			
				|  |  |      * @param sessionId
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     getMessagesBySession(sessionId,handler){
 | 
	
		
			
				|  |  |        let session = new  Sessions();
 | 
	
		
			
				|  |  |        session.getSessions(sessionId,function(err,res){
 | 
	
		
			
				|  |  |             if(err){
 | 
	
		
			
				|  |  |                 return;
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 if(res.length==0){
 | 
	
		
			
				|  |  |                     log.warn("session is not found!");
 | 
	
		
			
				|  |  |                     return;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 let type = res[0].type;
 | 
	
		
			
				|  |  |                 let db ="";
 | 
	
		
			
				|  |  |                 if(type==1){
 | 
	
		
			
				|  |  |                     db = IMTABLE.MUCMSG;
 | 
	
		
			
				|  |  |                 }else if(type==2){
 | 
	
		
			
				|  |  |                     db = IMTABLE.P2PMSG;
 | 
	
		
			
				|  |  |                 }else{
 | 
	
		
			
				|  |  |                     db = IMTABLE.GROUPMSG;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 let sql = "select * from "+db+" w where w.session_id = ? limit 0,"+config.sessionConfig.maxMessageCount;
 | 
	
		
			
				|  |  |                 imDb.execQuery({
 | 
	
		
			
				|  |  |                     "sql": sessionsql,
 | 
	
		
			
				|  |  |                     "args": [sessionId],
 | 
	
		
			
				|  |  |                     "handler": function (err, res) {
 | 
	
		
			
				|  |  |                         if(err) {
 | 
	
		
			
				|  |  |                             log.error("sql:"+sql+"data:sessionId:"+sessionId);
 | 
	
		
			
				|  |  |                         }else{
 | 
	
		
			
				|  |  |                             log.info("getMessagesBySession success by sessionId :"+sessionId);
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         handler(err,res);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 })
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |        })
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         MessageRepo.getMessagesBySession(sessionId,handler);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -89,42 +57,7 @@ class Messages extends RedisModel {
 | 
	
		
			
				|  |  |      * @param pagesize
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     getMessageByPage(sessionId,page,pagesize,handler){
 | 
	
		
			
				|  |  |         if(page>0){
 | 
	
		
			
				|  |  |             page =page*pagesize;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         let session = new  Sessions();
 | 
	
		
			
				|  |  |         session.getSessions(sessionId,function(err,res){
 | 
	
		
			
				|  |  |             if(err){
 | 
	
		
			
				|  |  |                 return;
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 if(res.length==0){
 | 
	
		
			
				|  |  |                     log.warn("session is not found!");
 | 
	
		
			
				|  |  |                     return;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 let type = res[0].type;
 | 
	
		
			
				|  |  |                 let db ="";
 | 
	
		
			
				|  |  |                 if(type==1){
 | 
	
		
			
				|  |  |                     db = IMTABLE.MUCMSG;
 | 
	
		
			
				|  |  |                 }else if(type==2){
 | 
	
		
			
				|  |  |                     db = IMTABLE.P2PMSG;
 | 
	
		
			
				|  |  |                 }else{
 | 
	
		
			
				|  |  |                     db = IMTABLE.GROUPMSG;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 let sql = "select * from "+db+" w where w.session_id = ? limit ?,?";
 | 
	
		
			
				|  |  |                 imDb.execQuery({
 | 
	
		
			
				|  |  |                     "sql": sessionsql,
 | 
	
		
			
				|  |  |                     "args": [sessionId,page,pagesize],
 | 
	
		
			
				|  |  |                     "handler": function (err, res) {
 | 
	
		
			
				|  |  |                         if(err) {
 | 
	
		
			
				|  |  |                             log.error("sql:"+sql+"data:sessionId:"+sessionId);
 | 
	
		
			
				|  |  |                         }else{
 | 
	
		
			
				|  |  |                             log.info("getMessagesBySession success by sessionId :"+sessionId);
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         handler(err,res);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 })
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         })
 | 
	
		
			
				|  |  |         MessageRepo.getMessageByPage(sessionId,page,pagesize,handler);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -154,19 +87,7 @@ class Messages extends RedisModel {
 | 
	
		
			
				|  |  |      * @type type 会话类型,1表示MUC会话,2表示P2P,3表示群会话,4表示临时讨论组
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     saveMessageForMysql(messages,type,messageid,sessionId){
 | 
	
		
			
				|  |  |         var sql = "INSERT INTO "+(type==1?IMTABLE.MUCMSG:type==2?IMTABLE.P2PMSG:IMTABLE.GROUPMSG)+" (id, session_id, sender_id, sender_name,content_type, content, timestamp) VALUES (?,?,?,?,?,?,?) ";
 | 
	
		
			
				|  |  |         imDb.execQuery({
 | 
	
		
			
				|  |  |             "sql": sql,
 | 
	
		
			
				|  |  |             "args": [messageid,sessionId,messages.senderId,messages.senderName,messages.contentType,messages.content,messages.timestamp],
 | 
	
		
			
				|  |  |             "handler": function (err, res) {
 | 
	
		
			
				|  |  |                 if(err) {
 | 
	
		
			
				|  |  |                     log.error("sql:"+sql+",error:"+err+",data:"+JSON.stringify(messages)+",messageid:"+messageid+",sessionId:"+sessionId);
 | 
	
		
			
				|  |  |                 }else{
 | 
	
		
			
				|  |  |                     log.info("save message to mysql is success by session :"+sessionId);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         });
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         MessageRepo.saveMessageForMysql(messages,type,messageid,sessionId);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |