| 
					
				 | 
			
			
				@ -0,0 +1,80 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * 搜索功能。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				"use strict"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				let ImDb = require('../mysql/db/im.db'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				let log = require('../../util/log.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				const IMTABLE = require('../../include/commons').IM_DB; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				class SessionRepo { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    constructor() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取某个用户的全部session列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param userId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param handler 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    static getUserSessionsFromMysql(userId,handler){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        let sql ="select select session_id from participants w where w.participaint_id = ? group by w.session_id"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        let sessionsql = "select id,name,type,create_date from session s where s.id in("+sql+")"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        imDb.execQuery({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            "sql": sessionsql, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            "args": [userId], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            "handler": function (err, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    log.error("sql:"+sessionsql+"data:userId:"+userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    log.info("getMysqlUserSessions success by userId :"+userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                handler(err,res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取session单个对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param sessionId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param handler 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    static getSessions(sessionId,handler){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        let sessionsql = "select id,name,type,create_date from session s where s.id=?"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        imDb.execQuery({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            "sql": sessionsql, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            "args": [sessionId], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            "handler": function (err, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    log.error("sql:"+sessionsql+"data:sessionId:"+sessionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    log.info("getSessions success by sessionId :"+sessionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                handler(err,res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 保存session到sql数据库 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param sessionId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param createDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    static saveSessionToMysql(sessionId,name,type,createDate){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        let sql ="insert into "+IMTABLE.SESSIONS+" (id,name,type,create_date) VALUES (?,?,?,?) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        imDb.execQuery({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            "sql": sql, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            "args": [sessionId,name,type,createDate], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            "handler": function (err, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    log.error("sql:"+sql+"data:sessionId:"+sessionId+",name:"+name+",type:"+type+",createDate:"+createDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    log.info("save session to mysql is success by session :"+sessionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				module.exports = SessionRepo; 
			 |