|
@ -61,7 +61,6 @@ class WechatClient extends RedisModel {
|
|
|
if (message&&(message.content_type == CONTENT_TYPES.PlainText ||
|
|
|
message.content_type == CONTENT_TYPES.Image ||
|
|
|
message.content_type == CONTENT_TYPES.Audio||
|
|
|
message.content_type == CONTENT_TYPES.PrescriptionCheck ||
|
|
|
message.content_type == CONTENT_TYPES.PrescriptionBloodStatus ||
|
|
|
message.content_type == CONTENT_TYPES.PrescriptionFollowupContent)) {
|
|
|
let patientClient = clientCache.findById(targetUserId);
|
|
@ -83,7 +82,20 @@ class WechatClient extends RedisModel {
|
|
|
}
|
|
|
} else {
|
|
|
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){
|
|
|
let patientClient = clientCache.findById(targetUserId);
|
|
@ -226,7 +238,26 @@ class WechatClient extends RedisModel {
|
|
|
}
|
|
|
|
|
|
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));
|
|
|
doctorClient.socket.emit('message', {
|
|
|
id: message.id,
|
|
@ -243,8 +274,28 @@ class WechatClient extends RedisModel {
|
|
|
count++;
|
|
|
}
|
|
|
|
|
|
|
|
|
//发送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));
|
|
|
pc_doctorClient.socket.emit('message', {
|
|
|
id: message.id,
|