/** * 消息模型。 */ "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;