Browse Source

会话相关修改

8 years ago
parent
commit
b5748e7b4d
1 changed files with 80 additions and 0 deletions
  1. 80 0
      src/server/repository/mysql/session.repo.js

+ 80 - 0
src/server/repository/mysql/session.repo.js

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