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