123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- /**
- * 消息模型。
- */
- "use strict";
- let RedisClient = require('../../repository/redis/redis.client.js');
- let redisClient = RedisClient.redisClient();
- let redis = redisClient.connection;
- let RedisModel = require('./../redis.model.js');
- let modelUtil = require('../../util/model.util');
- var imDb = require('../../repository/mysql/db/im.db');
- let log = require('../../util/log.js');
- let Sessions = require('../sessions/sessions');
- let MessageRepo = require('../../repository/mysql/message.repo');
- let configFile = require('../../include/commons').CONFIG_FILE;
- let config = require('../../resources/config/' + configFile);
- const RedisKey = require('../../include/commons').REDIS_KEYS;
- const IMTABLE = require('../../include/commons').IM_DB;
- class Messages extends RedisModel {
- constructor() {
- super();
- }
- /**
- * 根据topicId获取对应的议题的信息列表
- * @param topicId
- */
- getMessagesByTopicId(topicId){
-
- }
- /**
- * 分页
- * 根据topicId获取对应的议题的成员信息
- * @param topicId
- */
- getMessagesByTopicIdForPage(topicId,page,pagesize){
- }
- /**
- * 根据sessionId获取对应的会话的信息列表mysql
- * @param sessionId
- */
- getMessagesBySession(sessionId,handler){
- MessageRepo.getMessagesBySession(sessionId,handler);
- }
- /**
- * 分页获取消息MySQL
- * @param sessionId
- * @param page
- * @param pagesize
- */
- getMessageByPage(sessionId,page,pagesize,handler){
- MessageRepo.getMessageByPage(sessionId,page,pagesize,handler);
- }
- /**
- * 根据消息ID获取单条消息
- * @param messageId
- */
- getMessagesByid(messageId){
- }
- saveMessageForRedis(message_id,sessionId,message){
- let message_key = super.makeRedisKey(RedisKey.Messages,sessionId);
- let message_timestamp_key = super.makeRedisKey(RedisKey.MessagesByTimestamp,sessionId);
- redis.hsetAsync(message_key, message_id, JSON.stringify(message)).then(function (res) {
- log.info("success save redis message by session :"+sessionId);
- //保存message_timestamp_key redis
- return redis.zaddAsync(message_timestamp_key, message.timestamp.getTime(), message_id);
- });
- }
- /**
- * 保存Message 到mysql
- * @param messages 消息对象
- * @type type 会话类型,1表示MUC会话,2表示P2P,3表示群会话,4表示临时讨论组
- */
- saveMessageForMysql(messages,type,messageid,sessionId){
- MessageRepo.saveMessageForMysql(messages,type,messageid,sessionId);
- }
- }
- // Expose class
- module.exports = Messages;
|