|
@ -9,12 +9,16 @@ let SessionRepo = require('../../repository/mysql/session.repo');
|
|
|
let RedisClient = require('../../repository/redis/redis.client.js');
|
|
|
let ModelUtil = require('../../util/model.util');
|
|
|
var ObjectUtil = require("../../util/object.util.js");
|
|
|
let WechatClient = require("../client/wechat.client.js");
|
|
|
let AppClient = require("../client/app.client.js");
|
|
|
let mongoose = require('mongoose');
|
|
|
|
|
|
let redis = RedisClient.redisClient().connection;
|
|
|
let log = require('../../util/log.js');
|
|
|
let configFile = require('../../include/commons').CONFIG_FILE;
|
|
|
let config = require('../../resources/config/' + configFile);
|
|
|
let logger = require('../../util/log');
|
|
|
let pubSub = require("../redis/pubSub.js");
|
|
|
|
|
|
const REDIS_KEYS = require('../../include/commons').REDIS_KEYS;
|
|
|
|
|
@ -152,6 +156,43 @@ class Messages extends RedisModel {
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 内外网通信。
|
|
|
* 消息内容 存系统表
|
|
|
* @param message
|
|
|
*/
|
|
|
sendMessage(message) {
|
|
|
let self = this;
|
|
|
let messages = new Messages();
|
|
|
let messageId = mongoose.Types.ObjectId().toString();
|
|
|
let sessionType =0;
|
|
|
message.id = messageId;
|
|
|
message.session_id = "system";
|
|
|
|
|
|
messages.saveMessageToMysql("system", sessionType, messageId, message, function (err, res) {
|
|
|
if (err) {
|
|
|
ModelUtil.emitError(self.eventEmitter, {message: "Failed to save message to mysql: " + err});
|
|
|
} else {
|
|
|
message.timestamp = message.timestamp.getTime();
|
|
|
let targetUserId = message.sender_name;
|
|
|
//告知医生新消息
|
|
|
WechatClient.sendSocketMessageToDoctor(targetUserId,message);
|
|
|
if(config.environment!='local'){//pc版不推送个推,通过redis的publish
|
|
|
AppClient.sendNotification(targetUserId, message,sessionType,1);
|
|
|
}
|
|
|
//外网pcim通过socket推送
|
|
|
WechatClient.sendPcImSocket(targetUserId,message,sessionType);
|
|
|
|
|
|
//redis发布消息
|
|
|
if(config.pubSubSwitch) {//接收订阅消息处理开关,本地运行和测试库单独运行时防止用户接收消息2次
|
|
|
pubSub.publish(config.pubChannel,JSON.stringify(message));
|
|
|
}
|
|
|
ModelUtil.emitOK(self.eventEmitter, {status: 200});
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 保存Message 到mysql
|
|
|
* @param message 消息对象
|