| 
					
				 | 
			
			
				@ -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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |