浏览代码

为会话及议题增加消息推送

Sand 8 年之前
父节点
当前提交
463b70a67d
共有 1 个文件被更改,包括 22 次插入22 次删除
  1. 22 22
      src/server/models/sessions/sessions.js

+ 22 - 22
src/server/models/sessions/sessions.js

@ -171,10 +171,10 @@ class Sessions extends RedisModel {
        let userSessionKey = RedisModel.makeRedisKey(REDIS_KEYS.UserSessions, userId);
        let self = this;
        if (page > 0) {
            if(page==1){
            if (page == 1) {
                page = 0;
            }
            page = page+page * size;
            page = page + page * size;
        }
        async.waterfall([
            // 获取会话ID列表
@ -206,26 +206,26 @@ class Sessions extends RedisModel {
                            let session = res[0];
                            let role = res[1];
                            let lastFetchTime = res[2];
                            if(businessType&&businessType!=session.business_type){
                                logger.info("businessType:"+businessType+"<>"+session.business_type);
                            }else{
                            // 计算未读消息数
                            let messagesByTimestampKey = RedisModel.makeRedisKey(REDIS_KEYS.MessagesByTimestamp, sessionId);
                            redis.zcountAsync(messagesByTimestampKey, lastFetchTime, new Date().getTime())
                                .then(function (count) {
                                    sessionList.push({
                                        id: sessionId,
                                        name: session.name,
                                        create_date: session.create_date,
                                        last_content_type: session.last_content_type,
                                        last_content: session.last_content,
                                        sender_id: session.sender_id,
                                        type:session.type,
                                        sender_name: session.sender_name,
                                        unread_count: count,
                                        business_type:session.business_type,
                                        my_role: role
                                    });
                            if (businessType && businessType != session.business_type) {
                                logger.info("businessType:" + businessType + "<>" + session.business_type);
                            } else {
                                // 计算未读消息数
                                let messagesByTimestampKey = RedisModel.makeRedisKey(REDIS_KEYS.MessagesByTimestamp, sessionId);
                                redis.zcountAsync(messagesByTimestampKey, lastFetchTime, new Date().getTime())
                                    .then(function (count) {
                                        sessionList.push({
                                            id: sessionId,
                                            name: session.name,
                                            create_date: session.create_date,
                                            last_content_type: session.last_content_type,
                                            last_content: session.last_content,
                                            sender_id: session.sender_id,
                                            type: session.type,
                                            sender_name: session.sender_name,
                                            unread_count: count,
                                            business_type: session.business_type,
                                            my_role: role
                                        });
                                        if (sessionId === sessionIds[sessionIds.length - 1]) {
                                            ModelUtil.emitOK(self.eventEmitter, sessionList);