| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | /** * 搜索功能。 */"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);                }            }        });    }    static stickSession(sessionId,user,score){        let sql ="insert into "+IMTABLE.STICKY_SESSION+" (user_id,session_id,score) VALUES (?,?,?) ";        ImDb.execQuery({            "sql": sql,            "args": [user,sessionId,score],            "handler": function (err, res) {                if(err) {                    log.error("sql:"+sql+"data:sessionId:"+sessionId+",user:"+user+",score:"+score);                }else{                    log.info("save stickSession to mysql is success by session :"+sessionId);                }            }        });    }    static unstickSession(sessionId,user){        let sql ="delete from "+IMTABLE.STICKY_SESSION+" where user_id=? and session_id=? ";        ImDb.execQuery({            "sql": sql,            "args": [user,sessionId],            "handler": function (err, res) {                if(err) {                    log.error("sql:"+sql+"data:sessionId:"+sessionId+",user:"+user);                }else{                    log.info("delete unstickSession to mysql is success by session :"+sessionId);                }            }        });    }}module.exports = SessionRepo;
 |