123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- /**
- * 搜索功能。
- */
- "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 session_id from "+IMTABLE.PARTICIPANTS+" w where w.participaint_id = ? group by w.session_id";
- let sessionsql = "select id,name,type,create_date from "+IMTABLE.SESSIONS+" 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);
- }
- });
- }
- /**
- * 获取置顶的消息
- * @param userId
- * @param handler
- */
- static getUserStickSessionsFromMysql(userId,handler){
- let sql ="select session_id from "+IMTABLE.PARTICIPANTS+" w where w.participaint_id = ? group by w.session_id";
- let sessionsql = "select s.id,s.name,s.type,s.create_date from "+IMTABLE.SESSIONS+" s,"+IMTABLE.STICKY_SESSION+" ss where s.id = ss.session_id 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 "+IMTABLE.SESSIONS+" 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;
|