瀏覽代碼

IM接口BUG修改

huangwenjie 6 年之前
父節點
當前提交
cb95931fa1

+ 1 - 1
src/server/models/client/app.client.js

@ -75,7 +75,7 @@ class AppClient extends RedisModel {
                        if (err) throw err;
                        let userStatus = null;
                        if (res.length > 0) {
                        if (res && res.length > 0) {
                            userStatus = {
                                platform: res[0].platform,
                                device_token: res[0].device_token,

+ 1 - 1
src/server/models/migration/migration.redis.js

@ -270,7 +270,7 @@ class MigrateRedis extends RedisModel{
                let repoProto = isPatientId ? PatientRepo : DoctorRepo;
                repoProto.findOne(userId, function (err, res) {
                    let user = isPatientId ? new Patient() : new Doctor();
                    if (res.length > 0) {
                    if (res && res.length > 0) {
                        user.name = res[0].name;
                        user.sex = res[0].sex;
                        user.birthdate = res[0].birthdate;

+ 1 - 1
src/server/models/sessions/participants.js

@ -261,7 +261,7 @@ class Participants extends RedisModel {
                ModelUtil.emitOK(self.eventEmitter, {status:-1,message: "会话查询失败!"});
                return;
            }
            if(res.length!=1){
            if(res && res.length!=1){
                ModelUtil.emitOK(self.eventEmitter, {status:200,message: "用户未创建咨询!"});
                return;
            }else{

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

@ -223,7 +223,7 @@ class Sessions extends RedisModel {
        function callCreateSession(businessType) {
            //查找该sessionId是否存在存在则直接返回实例
            SessionRepo.findOne(sessionId, function (err, res) {
                if (res.length > 0) {//已经存在
                if (res && res.length > 0) {//已经存在
                    //已存在的会话不修改名称
                    name = res[0].name;
                    //更新成员
@ -415,7 +415,7 @@ class Sessions extends RedisModel {
            // },
            function (callback) {
                SessionRepo.findAllByType(userId,businessType,page,size,function(err,res){
                    if (res.length == 0) {
                    if (res && res.length == 0) {
                        ModelUtil.emitOK(self.eventEmitter, []);
                        return;
                    }
@ -625,11 +625,11 @@ class Sessions extends RedisModel {
                                                sessionName = res[0].name;
                                            }
                                            var bir = new Date().getTime();
                                            if (res.length != 0 && res[0].birthdate) {
                                            if (res && res.length != 0 && res[0].birthdate) {
                                                bir = res[0].birthdate.getTime();
                                            }
                                            var sex = 1;
                                            if (res.length != 0 && res[0].sex) {
                                            if (res && res.length != 0 && res[0].sex) {
                                                sex = res[0].sex;
                                            }
                                            //end
@ -700,13 +700,16 @@ class Sessions extends RedisModel {
     * @param status 0:进行中的会话1:结束的会话
     */
    getUserSessionsByType(userId,type,page, size,status) {
        logger.info("根据用户类型获取用户的session列表1: ");
        let userSessionKey = RedisModel.makeRedisKey(REDIS_KEYS.UserSessions, userId);
        let self = this;
        logger.info("根据用户类型获取用户的session列表2: ");
        async.waterfall([
            // 获取会话ID列表
            function (callback) {
                SessionRepo.findListByType(userId,type,page,size,status,function(err,res){
                    if (res.length == 0) {
                    logger.info("根据用户类型获取用户的session列表: res :"+res);
                    if (res == null || res.length == 0) {
                        ModelUtil.emitOK(self.eventEmitter, []);
                        return;
                    }
@ -717,6 +720,8 @@ class Sessions extends RedisModel {
            function (sessionIds) {
                let sessionList = [];
                let functionList = [];
                for (let j = 0; j < sessionIds.length; j++) {
                    let fun = function (index, callback) {
                        if (!callback) {
@ -756,7 +761,6 @@ class Sessions extends RedisModel {
                                }
                                if (!lastFetchTime) lastFetchTime = new Date().getTime();
                                // 计算未读消息数
                                let messagesByTimestampKey = RedisModel.makeRedisKey(REDIS_KEYS.MessagesByTimestamp, sessionId);
                                redis.zcountAsync(messagesByTimestampKey, parseInt(lastFetchTime)+1, new Date().getTime())
@ -769,11 +773,11 @@ class Sessions extends RedisModel {
                                                sessionName = res[0].name;
                                            }
                                            var bir = new Date().getTime();
                                            if (res.length != 0 && res[0].birthdate) {
                                            if (res && res.length != 0 && res[0].birthdate) {
                                                bir = res[0].birthdate.getTime();
                                            }
                                            var sex = 1;
                                            if (res.length != 0 && res[0].sex) {
                                            if (res && res.length != 0 && res[0].sex) {
                                                sex = res[0].sex;
                                            }
@ -831,7 +835,7 @@ class Sessions extends RedisModel {
            // 获取会话ID列表
            function (callback) {
                SessionRepo.findAllByTypeAndStatus(userId,businessType,status,page,size,function(err,res){
                    if (res.length == 0) {
                    if (res && res.length == 0) {
                        ModelUtil.emitOK(self.eventEmitter, []);
                        return;
                    }
@ -911,7 +915,7 @@ class Sessions extends RedisModel {
                                                sessionName = res[0].name;
                                            }
                                            var bir = new Date().getTime();
                                            if (res.length != 0 && res[0].birthdate) {
                                            if (res && res.length != 0 && res[0].birthdate) {
                                                bir = res[0].birthdate.getTime();
                                            }
                                            var sex = 1;
@ -981,8 +985,8 @@ class Sessions extends RedisModel {
        if (!start_msg_id && !end_msg_id) {
            redis.zrevrangeAsync(message_timestamp_key, 0, 0).then(function (res) {
                logger.info("redis return res-----"+res);
                log.info("session.js--830---getMessages  res.length: " + res.length);
                if (res.length == 0) {
                // log.info("session.js--830---getMessages  res.length: " + res.length);
                if (res && res.length == 0) {
                    //修复应redis没有缓冲聊天记录导致会话列表加载不出来
                    // cache messages
                    let messagesKey = RedisModel.makeRedisKey(REDIS_KEYS.Messages, sessionId);
@ -1026,7 +1030,7 @@ class Sessions extends RedisModel {
                }
                start_msg_id = res[0];
                redis.zrangeAsync(message_timestamp_key, 0, 0).then(function (res) {
                    if (res.length == 0) {
                    if (res && res.length == 0) {
                        if (handler) {
                            handler(null, res);
                            return;
@ -1055,7 +1059,7 @@ class Sessions extends RedisModel {
            })
        } else if (!start_msg_id) {
            redis.zrevrangeAsync(message_timestamp_key, 0, 0).then(function (res) {
                if (res.length == 0) {
                if (res && res.length == 0) {
                    if (handler) {
                        handler(null, res);
                        return;
@ -1083,7 +1087,7 @@ class Sessions extends RedisModel {
            })
        } else if (!end_msg_id) {
            redis.zrangeAsync(message_timestamp_key, 0, 0).then(function (res) {
                if (res.length == 0) {
                if (res && res.length == 0) {
                    ModelUtil.emitOK(self.eventEmitter, res);
                    return;
                }
@ -1176,7 +1180,7 @@ class Sessions extends RedisModel {
                        if(endMsgScore>startMsgScore){
                            redis.zrangebyscoreAsync(messagesTimestampKey, startMsgScore, endMsgScore, "limit", offset, count)
                                .then(function (res) {
                                    if (res.length == 0) {
                                    if (res && res.length == 0) {
                                        handler(null, []);
                                        return;
                                    }
@ -1208,7 +1212,7 @@ class Sessions extends RedisModel {
                            // 从消息时间表中过滤出要获取的消息ID列表,倒序取出消息
                            redis.zrevrangebyscoreAsync(messagesTimestampKey, startMsgScore, endMsgScore, "limit", offset, count)
                                .then(function (res) {
                                    if (res.length == 0) {
                                    if (res && res.length == 0) {
                                        handler(null, []);
                                        return;
                                    }
@ -1263,7 +1267,7 @@ class Sessions extends RedisModel {
                return;
            }
            if (res.length == 0) {
            if (res && res.length == 0) {
                if(handler)
                {
                    handler(err,count);

+ 3 - 3
src/server/models/user/users.js

@ -55,7 +55,7 @@ class Users extends RedisModel {
                let repoProto = isPatientId ? PatientRepo : DoctorRepo;
                repoProto.findOne(userId, function (err, res) {
                    let user = isPatientId ? new Patient() : new Doctor();
                    if (res.length > 0) {
                    if (res && res.length > 0) {
                        user.name = res[0].name;
                        user.sex = res[0].sex;
                        user.birthdate = res[0].birthdate;
@ -322,7 +322,7 @@ class Users extends RedisModel {
                        .del(userStatusKey)
                        .execAsync()
                        .then(function (res) {
                            if (res.length > 0 && res[0] === 0) {
                            if (res && res.length > 0 && res[0] === 0) {
                                ModelUtil.emitDataNotFound(self.eventEmitter, {message: "User not found."});
                            } else {
                                ModelUtil.emitOK(self.eventEmitter, {});
@ -366,7 +366,7 @@ class Users extends RedisModel {
                    });
                },
                function (res, callback) {
                    if (res.length === 0) return false;
                    if (res && res.length === 0) return false;
                    callback(null, res[0].is_patient);
                }

+ 1 - 1
src/server/repository/mysql/message.repo.js

@ -30,7 +30,7 @@ class MessageRepo {
        SessionRepo.findOne(sessionId, function (err, res) {
            if (!err) {
                if (res.length == 0) {
                if (res && res.length == 0) {
                    handler(null, null);
                    return;
                }

+ 2 - 2
src/server/repository/mysql/topics.repo.js

@ -37,7 +37,7 @@ class TopicRepo {
            sql: sql,
            args: [sessionId],
            handler: function (err, res) {
                if (res.length == 0) {
                if (res && res.length == 0) {
                    handler(null, null);
                } else {
                    TopicRepo.findTopicStatus(res[0].id, handler);
@ -281,7 +281,7 @@ class TopicRepo {
            sql: sql,
            args: [sessionId],
            handler: function (err, res) {
                if (res.length == 0) {
                if (res && res.length == 0) {
                    handler(null, null);
                } else {
                    TopicRepo.findTopicStatusAndType(res[0].id, handler);

+ 1 - 1
src/server/resources/config/config.test.js

@ -4,7 +4,7 @@ let imDbConfig = {
    host: '172.26.0.104',
    user: 'ssgg',
    password: 'ssgg@jkzl2019',
    database: 'im_internt_hospital',
    database: 'im_internet_hospital',
    connectionLimit: '50',
    charset: 'utf8mb4'
};