瀏覽代碼

错误代码修正

8 年之前
父節點
當前提交
6342c55562
共有 2 個文件被更改,包括 10 次插入10 次删除
  1. 2 1
      src/server/endpoints/v2/session.endpoint.js
  2. 8 9
      src/server/models/sessions/sessions.js

+ 2 - 1
src/server/endpoints/v2/session.endpoint.js

@ -235,6 +235,7 @@ router.get(APIv2.Sessions.Messages, function (req, res) {
    let user = req.query.user;
    let sessionId = req.query.session_id;
    let content_type = req.query.content_type;
    let isoffset = req.query.isoffset;
    if (!user) {
        throw {httpStatus: 406, message: 'Missing user.'};
    }
@ -255,7 +256,7 @@ router.get(APIv2.Sessions.Messages, function (req, res) {
        let sessions = new Sessions();
        ControllerUtil.regModelEventHandler(sessions, res);
        sessions.getMessages(sessionId, user, startMsgId,endMsgId,page,pagesize);
        sessions.getMessages(sessionId, user, startMsgId,endMsgId,page,pagesize,isoffset);
    }
});

+ 8 - 9
src/server/models/sessions/sessions.js

@ -245,7 +245,7 @@ class Sessions extends RedisModel {
     * @param start_msg_id 消息会话最新的一条消息的ID
     * @param end_msg_id 消息会话刚开始的消息ID
     */
    getMessages(sessionId, user, start_msg_id, end_msg_id, page, pagesize) {
    getMessages(sessionId, user, start_msg_id, end_msg_id, page, pagesize,isoffset) {
        let self = this;
        let message_timestamp_key = RedisModel.makeRedisKey(REDIS_KEYS.MessagesByTimestamp, sessionId);
        if (!start_msg_id && !end_msg_id) {
@ -261,7 +261,7 @@ class Sessions extends RedisModel {
                        return;
                    }
                    end_msg_id = res[0];
                    self.getMessagesByPage(sessionId, user, end_msg_id, start_msg_id, page, pagesize, function (err, res) {
                    self.getMessagesByPage(sessionId, user, end_msg_id, start_msg_id, page, pagesize,isoffset, function (err, res) {
                        if (err) {
                            logger.error("getMessagesByPage error" + err);
                            ModelUtil.emitError(self.eventEmitter, err, err);
@ -278,7 +278,7 @@ class Sessions extends RedisModel {
                    return;
                }
                start_msg_id = res[0];
                self.getMessagesByPage(sessionId, user, end_msg_id, start_msg_id, page, pagesize, function (err, res) {
                self.getMessagesByPage(sessionId, user, end_msg_id, start_msg_id, page, pagesize,isoffset, function (err, res) {
                    if (err) {
                        logger.error("getMessagesByPage error" + err);
                        ModelUtil.emitError(self.eventEmitter, err, err);
@ -294,7 +294,7 @@ class Sessions extends RedisModel {
                    return;
                }
                end_msg_id = res[0];
                self.getMessagesByPage(sessionId, user, start_msg_id, end_msg_id, page, pagesize, function (err, res) {
                self.getMessagesByPage(sessionId, user, start_msg_id, end_msg_id, page, pagesize,isoffset, function (err, res) {
                    if (err) {
                        logger.error("getMessagesByPage error" + err);
                        ModelUtil.emitError(self.eventEmitter, err, err);
@ -304,7 +304,7 @@ class Sessions extends RedisModel {
                })
            })
        } else {
            self.getMessagesByPage(sessionId, user, end_msg_id, start_msg_id, page, pagesize, function (err, res) {
            self.getMessagesByPage(sessionId, user, end_msg_id, start_msg_id, page, pagesize,isoffset, function (err, res) {
                if (err) {
                    logger.error("getMessagesByPage error" + err);
                    ModelUtil.emitError(self.eventEmitter, err, err);
@ -326,17 +326,16 @@ class Sessions extends RedisModel {
     * @param size          必选。页面大小
     * @param handler       必选。回调
     */
    getMessagesByPage(sessionId, userId, startMsgId, endMsgId, page, size, handler) {
    getMessagesByPage(sessionId, userId, startMsgId, endMsgId, page, size,isoffset, handler) {
        let messagesTimestampKey = RedisModel.makeRedisKey(REDIS_KEYS.MessagesByTimestamp, sessionId);
        let messagesKey = RedisModel.makeRedisKey(REDIS_KEYS.Messages, sessionId);
        let participants = new Participants();
        let offset = (page - 1 < 0 ? 0 : page - 1) * size;
        let count = size;
        if (page > 1 || startMsgId) {//翻页由于闭区间,需跳过本身数据
        if (page > 1 ||isoffset==1) {//翻页由于闭区间,需跳过本身数据
            offset += 1;
        }
        participants.existsParticipant(sessionId, userId, function (err, res) {
            if (!res) {
                handler(Error("User not found in session " + sessionId), null);
@ -453,7 +452,7 @@ class Sessions extends RedisModel {
                let startMsgId = messageIds[0];
                let endMsgId = messageIds[messageIds.length - 1];
                self.getMessagesByPage(sessionId, userId, startMsgId, endMsgId, 0, messageIds.length, function (err, res) {
                self.getMessagesByPage(sessionId, userId, startMsgId, endMsgId, 0, messageIds.length,0,function (err, res) {
                    if (err) {
                        ModelUtil.emitError(self.eventEmitter, err.message);
                        return;