فهرست منبع

Merge branch 'feature-refactor' of yeshijie/im.doctor into feature-refactor

yeshijie 7 سال پیش
والد
کامیت
a58241bfb9
2فایلهای تغییر یافته به همراه59 افزوده شده و 8 حذف شده
  1. 55 4
      src/server/models/client/wechat.client.js
  2. 4 4
      src/server/resources/config/config.test.js

+ 55 - 4
src/server/models/client/wechat.client.js

@ -61,7 +61,6 @@ class WechatClient extends RedisModel {
        if (message&&(message.content_type == CONTENT_TYPES.PlainText ||
        if (message&&(message.content_type == CONTENT_TYPES.PlainText ||
            message.content_type == CONTENT_TYPES.Image ||
            message.content_type == CONTENT_TYPES.Image ||
            message.content_type == CONTENT_TYPES.Audio||
            message.content_type == CONTENT_TYPES.Audio||
            message.content_type == CONTENT_TYPES.PrescriptionCheck ||
            message.content_type == CONTENT_TYPES.PrescriptionBloodStatus ||
            message.content_type == CONTENT_TYPES.PrescriptionBloodStatus ||
            message.content_type == CONTENT_TYPES.PrescriptionFollowupContent)) {
            message.content_type == CONTENT_TYPES.PrescriptionFollowupContent)) {
            let patientClient = clientCache.findById(targetUserId);
            let patientClient = clientCache.findById(targetUserId);
@ -83,7 +82,20 @@ class WechatClient extends RedisModel {
                }
                }
            } else {
            } else {
                log.info("User's wechat endpoint is not online, sending via wechat template message. User id: ", targetUserId);
                log.info("User's wechat endpoint is not online, sending via wechat template message. User id: ", targetUserId);
                WechatClient.sendViaMessageTemplate(targetUserId, targetUserName, message);
                var isSendWXTem = true;//是否发送微信模板
                if(message.content_type == CONTENT_TYPES.PrescriptionBloodStatus||message.content_type == CONTENT_TYPES.PrescriptionFollowupContent){
                    var content = JSON.parse(message.content);
                    if(content.isSendWxTemplate){
                        message.content = content.text;
                    }else {
                        isSendWXTem = false;
                    }
                }
                if(isSendWXTem){
                    WechatClient.sendViaMessageTemplate(targetUserId, targetUserName, message);
                }
            }
            }
        } else if(message.content_type == CONTENT_TYPES.TopicEnd){
        } else if(message.content_type == CONTENT_TYPES.TopicEnd){
            let patientClient = clientCache.findById(targetUserId);
            let patientClient = clientCache.findById(targetUserId);
@ -226,7 +238,26 @@ class WechatClient extends RedisModel {
        }
        }
        var count = 0;
        var count = 0;
        if(doctorClient&&sendClient&&sendClient.sessionId==doctorClient.sessionId){
        if(message.content_type == CONTENT_TYPES.PrescriptionBloodStatus ||message.content_type == CONTENT_TYPES.PrescriptionFollowupContent){
            //续方消息特殊处理
            if(doctorClient&&message.session_id==doctorClient.sessionId){
                WechatClient.updateParticipantLastFetchTime(doctorClient.sessionId, doctorId, ObjectUtil.timestampToLong(message.timestamp));
                doctorClient.socket.emit('message', {
                    id: message.id,
                    session_id: message.session_id,
                    sender_id: message.sender_id,
                    sender_name: message.sender_name,
                    content_type: message.content_type,
                    content: message.content,
                    timestamp: ObjectUtil.timestampToLong(message.timestamp),
                    type: message.content_type,          // legacy support
                    name: message.sender_name,
                });
            }else{
                count++;
            }
        }else if(doctorClient&&sendClient&&sendClient.sessionId==doctorClient.sessionId){
            WechatClient.updateParticipantLastFetchTime(doctorClient.sessionId, doctorId, ObjectUtil.timestampToLong(message.timestamp));
            WechatClient.updateParticipantLastFetchTime(doctorClient.sessionId, doctorId, ObjectUtil.timestampToLong(message.timestamp));
            doctorClient.socket.emit('message', {
            doctorClient.socket.emit('message', {
                id: message.id,
                id: message.id,
@ -243,8 +274,28 @@ class WechatClient extends RedisModel {
            count++;
            count++;
        }
        }
        //发送pc端
        //发送pc端
        if(pc_doctorClient&&sendClient&&sendClient.sessionId==pc_doctorClient.sessionId){
        if(message.content_type == CONTENT_TYPES.PrescriptionBloodStatus ||message.content_type == CONTENT_TYPES.PrescriptionFollowupContent){
            //续方消息特殊处理
            if(pc_doctorClient&&message.session_id==pc_doctorClient.sessionId){
                WechatClient.updateParticipantLastFetchTime(pc_doctorClient.sessionId, doctorId, ObjectUtil.timestampToLong(message.timestamp));
                pc_doctorClient.socket.emit('message', {
                    id: message.id,
                    session_id: message.session_id,
                    sender_id: message.sender_id,
                    sender_name: message.sender_name,
                    content_type: message.content_type,
                    content: message.content,
                    timestamp: ObjectUtil.timestampToLong(message.timestamp),
                    type: message.content_type,          // legacy support
                    name: message.sender_name,
                });
            }else{
                count++;
            }
        }else if(pc_doctorClient&&sendClient&&sendClient.sessionId==pc_doctorClient.sessionId){
            WechatClient.updateParticipantLastFetchTime(pc_doctorClient.sessionId, doctorId, ObjectUtil.timestampToLong(message.timestamp));
            WechatClient.updateParticipantLastFetchTime(pc_doctorClient.sessionId, doctorId, ObjectUtil.timestampToLong(message.timestamp));
            pc_doctorClient.socket.emit('message', {
            pc_doctorClient.socket.emit('message', {
                id: message.id,
                id: message.id,

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

@ -1,11 +1,11 @@
"use strict";
"use strict";
let imDbConfig = {
let imDbConfig = {
    host: '172.19.103.85',
    user: 'linzhou',
    password: 'linzhou',
    host: '172.17.110.160',
    user: 'ssgg',
    password: 'ssgg',
    database: 'im_new',
    database: 'im_new',
    connectionLimit: '50',
    connectionLimit: '100',
    charset: 'utf8mb4'
    charset: 'utf8mb4'
};
};