|
@ -66,7 +66,9 @@ class WechatClient extends RedisModel {
|
|
message.content_type == CONTENT_TYPES.ReservationDoorCardInfo ||
|
|
message.content_type == CONTENT_TYPES.ReservationDoorCardInfo ||
|
|
message.content_type == CONTENT_TYPES.ChangeDoorCardInfo ||
|
|
message.content_type == CONTENT_TYPES.ChangeDoorCardInfo ||
|
|
message.content_type == CONTENT_TYPES.ChangeDoorDoctor ||
|
|
message.content_type == CONTENT_TYPES.ChangeDoorDoctor ||
|
|
message.content_type == CONTENT_TYPES.ChangeDoorPackageItems)) {
|
|
|
|
|
|
message.content_type == CONTENT_TYPES.ChangeDoorPackageItems ||
|
|
|
|
message.content_type == CONTENT_TYPES.VideoAnswerStatus
|
|
|
|
)) {
|
|
let patientClient = clientCache.findById(targetUserId);
|
|
let patientClient = clientCache.findById(targetUserId);
|
|
let pc_patientClient = clientCache.findById("pcpatient_"+targetUserId);
|
|
let pc_patientClient = clientCache.findById("pcpatient_"+targetUserId);
|
|
let doctorClient = clientCache.findByIdAndType(message.sender_id,SOCKET_TYPES.DOCTOR);
|
|
let doctorClient = clientCache.findByIdAndType(message.sender_id,SOCKET_TYPES.DOCTOR);
|
|
@ -382,6 +384,64 @@ class WechatClient extends RedisModel {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static sendSocketMessageToPatient(patientId, message) {
|
|
|
|
let patientClient = clientCache.findByIdAndType(patientId,SOCKET_TYPES.PATIENT);
|
|
|
|
let pc_patientClient = clientCache.findByIdAndType("pcpatient_"+patientId,SOCKET_TYPES.PC_PATIENT);
|
|
|
|
if(!patientClient&&!pc_patientClient){
|
|
|
|
log.warn("target patient is not online!");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
// let sendClient = clientCache.findByIdAndType(message.sender_id,SOCKET_TYPES.DOCTOR);//app医生发送的消息
|
|
|
|
// if(!sendClient){//pc医生发送的消息
|
|
|
|
// sendClient = clientCache.findByIdAndType("pc_"+message.sender_id,SOCKET_TYPES.PC_DOCTOR);
|
|
|
|
// }
|
|
|
|
// if(!sendClient){//居民发送的消息
|
|
|
|
// sendClient = clientCache.findByIdAndType(message.sender_id,SOCKET_TYPES.PATIENT);
|
|
|
|
// }
|
|
|
|
|
|
|
|
var count = 0;
|
|
|
|
if(patientClient&&message.session_id==patientClient.sessionId){
|
|
|
|
WechatClient.updateParticipantLastFetchTime(patientClient.sessionId, patientId, ObjectUtil.timestampToLong(message.timestamp));
|
|
|
|
patientClient.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++;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//发送pc端
|
|
|
|
if(pc_patientClient&&message.session_id==pc_patientClient.sessionId){
|
|
|
|
WechatClient.updateParticipantLastFetchTime(pc_patientClient.sessionId, patientId, ObjectUtil.timestampToLong(message.timestamp));
|
|
|
|
pc_patientClient.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++;
|
|
|
|
}
|
|
|
|
|
|
|
|
if(count==2){
|
|
|
|
log.warn("patient is not in the same session or is not online");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
* 发送微信模板消息给居民
|
|
* 发送微信模板消息给居民
|