Procházet zdrojové kódy

成员变化的时候时间更新为空问题处理

před 8 roky
rodič
revize
d2351f8692

+ 1 - 1
src/server/endpoints/v2/application.endpoint.js

@ -33,7 +33,7 @@ router.get(APIv2.Application.BadgeNo, function (req, response) {
                return;
            }
            WlyySDK.request(userId, '', result[0].token, result[0].imei, '/imcommon/message/messages', 'POST', function (err, res) {
            WlyySDK.request(userId, '', result[0].token, result[0].imei, '/im/common/message/messages', 'POST', function (err, res) {
                let count = 0;
                res =  JSON.parse(res)
                if (res.status == 200) {

+ 32 - 52
src/server/models/sessions/sessions.js

@ -130,35 +130,27 @@ class Sessions extends RedisModel {
        function callCreate(sessionId, businessType) {
            let createDate = new Date();
            let sessionKey = RedisModel.makeRedisKey(REDIS_KEYS.Session, sessionId);
            let message = {
                sender_id: "system",
                sender_name: "系统",
                content_type: 11,
                content: "会话创建成功",
                timestamp: createDate,
                id: messageId
            };
            if (type == SESSION_TYPES.MUC) {
                businessType = 2;
            }
            let session = {
                id: sessionId,
                name: name,
                type: type,
                create_date: createDate.getTime(),
                business_type: businessType,
                last_sender_id: message.sender_id,
                last_sender_name: message.sender_name,
                last_message_time: message.timestamp.getTime(),
                last_content: message.content,
                last_content_type: message.content_type
            };
            redis.hmsetAsync(sessionKey, session).then(function () {
                Participants.saveParticipantsToRedis(sessionId, participantArray, createDate, function (res) {
                    handler(null, session);
                });
            })
            Participants.saveParticipantsToRedis(sessionId, participantArray, createDate, function (res) {
                let sessionKey = RedisModel.makeRedisKey(REDIS_KEYS.Session, sessionId);
                if (type == SESSION_TYPES.MUC) {
                    businessType = 2;
                }
                let session = {
                    id: sessionId,
                    name: name,
                    type: type,
                    create_date: createDate.getTime(),
                    business_type: businessType
                };
                //如果会话已经存在的就不需要发送会话成功的消息不更新最后一条消息
                redis.hexistsAsync(sessionKey, session).then(function(res){
                    if(res==0){
                        redis.hmsetAsync(sessionKey, session).then(function () {
                            handler(null, session);
                        })
                    }
                })
            });
        }
    }
@ -412,11 +404,11 @@ class Sessions extends RedisModel {
                                                id: sessionId,
                                                name: sessionName,
                                                create_date: session.create_date,
                                                last_content_type: session.last_content_type,
                                                last_content: session.last_content,
                                                sender_id: session.last_sender_id,
                                                last_content_type: session.last_content_type||"",
                                                last_content: session.last_content||"",
                                                sender_id: session.last_sender_id||"",
                                                type: session.type,
                                                sender_name: session.last_sender_name,
                                                sender_name: session.last_sender_name||"",
                                                unread_count: count,
                                                business_type: session.business_type,
                                                my_role: role,
@ -1281,27 +1273,15 @@ class Sessions extends RedisModel {
                }
                //告知医生新消息
                WechatClient.sendSocketMessageToDoctor(targetUserId,message);
                ImDb.execQuery({
                    "sql": "SELECT imei, token from user_tokens WHERE user = ?",
                    "args": [targetUserId],
                    "handler": function (err, result) {
                        if (err || result.length == 0) {
                            logger.error("get user tokens is fail !");
                            return;
                        }
                        WlyySDK.request(targetUserId, '', result[0].token, result[0].imei, '/imcommon/message/messages', 'POST', function (err, res) {
                            let count = 0;
                            res =  JSON.parse(res)
                            if (res.status == 200) {
                                let data = res.data;
                                count = JSON.parse(data.imMsgCount).count + data.system.amount + data.healthIndex.amount + data.sign.amount;
                            }
                            AppClient.sendNotification(targetUserId, message,sessionType,count);
                        });
                WlyySDK.request(targetUserId, '', '', '', '/im/common/message/messages', 'POST', function (err, res) {
                    let count = 0;
                    res =  JSON.parse(res)
                    if (res.status == 200) {
                        let data = res.data;
                        count = JSON.parse(data.imMsgCount).count + data.system.amount + data.healthIndex.amount + data.sign.amount;
                    }
                    AppClient.sendNotification(targetUserId, message,sessionType,count);
                });
            }
        });
    }