Sfoglia il codice sorgente

businessType错误赋值问题处理

8 anni fa
parent
commit
90e8e3b0dd

+ 11 - 3
src/server/models/sessions/sessions.js

@ -395,7 +395,7 @@ class Sessions extends RedisModel {
     * @param sessionId
     * @param userId
     */
    getSessionUnreadMessageCount(sessionId, userId) {
    getSessionUnreadMessageCount(sessionId, userId,handler) {
        let self = this;
        let messagesByTimestampKey = RedisModel.makeRedisKey(REDIS_KEYS.MessagesByTimestamp, sessionId);
        let participantsKey = RedisModel.makeRedisKey(REDIS_KEYS.SessionParticipants, sessionId);
@ -414,12 +414,20 @@ class Sessions extends RedisModel {
                let now = new Date().getTime();
                redis.zcountAsync(messagesByTimestampKey, lastFetchTime, now)
                    .then(function (count) {
                        ModelUtil.emitOK(self.eventEmitter, {count: count});
                        if(handler){
                            handler(null,count);
                        }else{
                          ModelUtil.emitOK(self.eventEmitter, {count: count});
                        }
                    })
            }
        ], function (err, res) {
            if (err) {
                ModelUtil.emitError(self.eventEmitter, "Get session unread message count failed.")
                if(handler){
                    handler(err,0);
                }else{
                    ModelUtil.emitError(self.eventEmitter, "Get session unread message count failed.")
                }
            }
        });
    }

+ 19 - 3
src/server/models/sessions/topics.js

@ -28,6 +28,7 @@ class Topics extends RedisModel {
    getTopics(user,status,sessionType){
        let self = this;
        let session = new Sessions();
        if(!sessionType) sessionType = SESSION_TYPES.MUC;
        SessionRepo.findAllByType(user,sessionType,function(err,res){
            if(err){
@ -48,12 +49,24 @@ class Topics extends RedisModel {
                    ModelUtil.emitOK(self.eventEmitter, []);
                }else{
                    for(var j = 0;j<res.length;j++){
                        callGetImg(j,res,res[j]);
                        callAmount(j,res,res[j]);
                    }
                }
                function callAmount(i,res,r){
                    session.getSessionUnreadMessageCount(res[i].session_id,user,function(err,msgcount){
                        if(err){
                            log.error("getSessionUnreadMessageCount is error:"+err);
                            ModelUtil.emitError(self.eventEmitter, "获取未读消息失败!"+err);
                        }else{
                            callGetImg(i,res,r,msgcount);
                        }
                    })
                }
                var result =[];
                function callGetImg(j,res,r){
                    ParticipantRepo.findAll(res[j].session_id,function(err,p){
                function callGetImg(i,res,r,msgcount){
                    ParticipantRepo.findAll(res[i].session_id,function(err,p){
                        if(err){
                              log.error("获取头像失败:"+err);
                        }else{
@ -63,6 +76,9 @@ class Topics extends RedisModel {
                                    r.avatar = p[j].avatar;
                                    r.patient = p[j].id;
                                    r.patient_name = p[j].name;
                                    if(r.status!=TOPIC_STATUS.ENDED){
                                        r.msg_count = msgcount;
                                    }
                                }
                            }
                            result.push(r);