Explorar o código

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

yeshijie %!s(int64=7) %!d(string=hai) anos
pai
achega
5f8ffc4147

+ 4 - 4
src/server/handlers/socket.handler.js

@ -35,10 +35,10 @@ class SocketHandler {
                        data.userId = "pc_"+data.userId;
                    }
                    clientCache.removeByUserId(data.userId);
                    // if(clientCache.removeByUserId(data.userId)){
                    //     log.info("User " + data.userId + " already login");
                    //     return;
                    // }
                    if(clientCache.removeByUserId(data.userId)){
                        log.info("User " + data.userId + " already login");
                        return;
                    }
                    log.error('User ' + data.userId + ' login');
                    if(!data.clientType||data.clientType=="patient"){

+ 2 - 2
src/server/include/commons.js

@ -13,8 +13,8 @@ let configFile = "config.";
if (process.env.IM_PROFILE === "prod") {
    configFile += "prod";
} else if (process.env.IM_PROFILE === "prodPC") {
    configFile += "prodPC";
} else if (process.env.IM_PROFILE === "local") {
    configFile += "local";
} else if (process.env.IM_PROFILE === "test") {
    configFile += "test";
} else {

+ 10 - 0
src/server/models/client/app.client.js

@ -8,6 +8,7 @@ let RedisModel = require('./../redis.model');
let AppStatusRepo = require('../../repository/mysql/app.status.repo');
let ModelUtil = require('../../util/model.util');
let clientCache = require('../socket.io/client.cache').clientCache();
let WlyySDK = require("../../util/wlyy.sdk");
let log = require("../../util/log.js");
let pusher = require('../push/pusher');
@ -114,6 +115,15 @@ class AppClient extends RedisModel {
                //     log.warn("User's pc is online, user id: " + targetId + ", we cannot send getui.");
                //     return;
                // }
                //调用接口推送医生助手微信模板
                let params = 'sessionId='+(message.session_id||'')+'&sessionType='+sessionType+"&from="+(message.sender_id|| '')+'&content='+message.content+'&businessType='+(message.business_type || 1)+'&doctorCode='+targetId;
                WlyySDK.request('admin', '0a5c5258-8863-4b07-a3f9-88c768528ab4', '', 'admin_imei', '/doctor/feldsher/sendDoctorTemplate?' + params, 'GET', function (err, res) {
                    if(err){
                        log.error(err);
                    }else {
                        log.info(res);
                    }
                });
                if (!userStatus) {
                    log.warn("User's app status is not found, user id: " + targetId + ", maybe user never login yet or logout?");

+ 2 - 2
src/server/models/redis/pubSub.js

@ -35,7 +35,7 @@ class PubSub{
                    message = JSON.parse(message);
                    //Sessions.getRedisPushNotification(message);这里不知为什么无法调用这个方法,提示getRedisPushNotification不是方法
                    if (message.targetType=='patient') {
                        if(config.environment!='prodPC'){//pc版接收要发给居民的消息不做处理
                        if(config.environment!='local'){//pc版接收要发给居民的消息不做处理
                            WechatClient.sendMessage(message.targetUserId, message.targetUserName, message);
                        }
                    } else {
@ -44,7 +44,7 @@ class PubSub{
                        }
                        //告知医生新消息
                        WechatClient.sendSocketMessageToDoctor(message.targetUserId,message);
                        if(config.environment!='prodPC'){//pc版不推送个推
                        if(config.environment!='local'){//pc版不推送个推
                            WlyySDK.request(message.targetUserId, '', '', '', '/im/common/message/messages', 'POST', function (err, res) {
                                let count = 0;
                                res =  JSON.parse(res)

+ 4 - 4
src/server/models/sessions/sessions.js

@ -1410,7 +1410,7 @@ class Sessions extends RedisModel {
        let self = this;
        Users.isPatientId(targetUserId, function (err, isPatient) {
            if (isPatient) {
                if(config.environment!='prodPC'){//pc版不直接发送给居民,通过redis的publish
                if(config.environment!='local'){//pc版不直接发送给居民,通过redis的publish
                    WechatClient.sendMessage(targetUserId, targetUserName, message);
                }
                message.targetUserId = targetUserId;
@ -1423,7 +1423,7 @@ class Sessions extends RedisModel {
                }
                //告知医生新消息
                WechatClient.sendSocketMessageToDoctor(targetUserId,message);
                if(config.environment!='prodPC'){//pc版不推送个推,通过redis的publish
                if(config.environment!='local'){//pc版不推送个推,通过redis的publish
                    WlyySDK.request(targetUserId, '', '', '', '/im/common/message/messages', 'POST', function (err, res) {
                        let count = 0;
                        res =  JSON.parse(res)
@ -1455,7 +1455,7 @@ class Sessions extends RedisModel {
     */
    static getRedisPushNotification(message) {
        if (message.targetType=='patient') {
            if(config.environment!='prodPC'){//pc版接收要发给居民的消息不做处理
            if(config.environment!='local'){//pc版接收要发给居民的消息不做处理
                WechatClient.sendMessage(message.targetUserId, message.targetUserName, message);
            }
        } else {
@ -1464,7 +1464,7 @@ class Sessions extends RedisModel {
            }
            //告知医生新消息
            WechatClient.sendSocketMessageToDoctor(message.targetUserId,message);
            if(config.environment!='prodPC'){//pc版不推送个推
            if(config.environment!='local'){//pc版不推送个推
                WlyySDK.request(message.targetUserId, '', '', '', '/im/common/message/messages', 'POST', function (err, res) {
                    let count = 0;
                    res =  JSON.parse(res)

+ 1 - 1
src/server/resources/config/config.prodPC.js

@ -59,7 +59,7 @@ let topicConfig = {
    TERMINATING_CRON: "* 59 * * * *"        // 议题自动关闭的任务执行时间间隔
};
exports.environment = 'prodPC';
exports.environment = 'local';
exports.pubChannel = 'pc_to_phone';
exports.subChannel = 'phone_to_pc';
exports.pubSubSwitch = true;