session.repo.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /**
  2. * 搜索功能。
  3. */
  4. "use strict";
  5. let ImDb = require('../mysql/db/im.db');
  6. let log = require('../../util/log.js');
  7. const IMTABLE = require('../../include/commons').IM_DB;
  8. class SessionRepo {
  9. constructor() {
  10. }
  11. /**
  12. * 获取某个用户的全部session列表
  13. * @param userId
  14. * @param handler
  15. */
  16. static getUserSessionsFromMysql(userId,handler){
  17. let sql ="select select session_id from participants w where w.participaint_id = ? group by w.session_id";
  18. let sessionsql = "select id,name,type,create_date from session s where s.id in("+sql+")";
  19. imDb.execQuery({
  20. "sql": sessionsql,
  21. "args": [userId],
  22. "handler": function (err, res) {
  23. if(err) {
  24. log.error("sql:"+sessionsql+"data:userId:"+userId);
  25. }else{
  26. log.info("getMysqlUserSessions success by userId :"+userId);
  27. }
  28. handler(err,res);
  29. }
  30. });
  31. }
  32. /**
  33. * 获取session单个对象
  34. * @param sessionId
  35. * @param handler
  36. */
  37. static getSessions(sessionId,handler){
  38. let sessionsql = "select id,name,type,create_date from session s where s.id=?";
  39. imDb.execQuery({
  40. "sql": sessionsql,
  41. "args": [sessionId],
  42. "handler": function (err, res) {
  43. if(err) {
  44. log.error("sql:"+sessionsql+"data:sessionId:"+sessionId);
  45. }else{
  46. log.info("getSessions success by sessionId :"+sessionId);
  47. }
  48. handler(err,res);
  49. }
  50. });
  51. }
  52. /**
  53. * 保存session到sql数据库
  54. * @param sessionId
  55. * @param name
  56. * @param type
  57. * @param createDate
  58. */
  59. static saveSessionToMysql(sessionId,name,type,createDate){
  60. let sql ="insert into "+IMTABLE.SESSIONS+" (id,name,type,create_date) VALUES (?,?,?,?) ";
  61. imDb.execQuery({
  62. "sql": sql,
  63. "args": [sessionId,name,type,createDate],
  64. "handler": function (err, res) {
  65. if(err) {
  66. log.error("sql:"+sql+"data:sessionId:"+sessionId+",name:"+name+",type:"+type+",createDate:"+createDate);
  67. }else{
  68. log.info("save session to mysql is success by session :"+sessionId);
  69. }
  70. }
  71. });
  72. }
  73. }
  74. module.exports = SessionRepo;