|  | @ -92,6 +92,61 @@ class AppClient extends RedisModel {
 | 
	
		
			
				|  |  |             });
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     static sendNotice(targetId, message, sessionType,badge,userStatus){
 | 
	
		
			
				|  |  |         //调用接口推送医生助手微信模板
 | 
	
		
			
				|  |  |         let param = {
 | 
	
		
			
				|  |  |             sessionId:message.session_id||'',
 | 
	
		
			
				|  |  |             sessionType:sessionType,
 | 
	
		
			
				|  |  |             from:message.sender_id|| '',
 | 
	
		
			
				|  |  |             content:message.content,
 | 
	
		
			
				|  |  |             contentType:message.content_type,
 | 
	
		
			
				|  |  |             businessType:message.businessType || 1,
 | 
	
		
			
				|  |  |             doctorCode:targetId
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         // let params = 'sessionId='+(message.session_id||'')+'&sessionType='+sessionType+"&from="+(message.sender_id|| '')+'&content='+message.content+'&businessType='+(message.business_type || 1)+'&doctorCode='+targetId;
 | 
	
		
			
				|  |  |         WlyyAssistantSDK.request('admin', '0a5c5258-8863-4b07-a3f9-88c768528ab4', '', 'admin_imei', '/doctor/feldsher/sendDoctorTemplate', param, function (err, res) {
 | 
	
		
			
				|  |  |             // 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?");
 | 
	
		
			
				|  |  |             return;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         let tipMessage = CONTENT_TYPES.typeToDescription(parseInt(message.content_type), "您有一条新消息") || message.content;
 | 
	
		
			
				|  |  |         let customData = {
 | 
	
		
			
				|  |  |             session_id: message.session_id||'',
 | 
	
		
			
				|  |  |             session_type: sessionType,
 | 
	
		
			
				|  |  |             from: message.sender_id|| '',
 | 
	
		
			
				|  |  |             data: message.content,
 | 
	
		
			
				|  |  |             business_type: message.business_type || 1
 | 
	
		
			
				|  |  |         };
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (userStatus.platform == PLATFORMS.iOS) {
 | 
	
		
			
				|  |  |             pusher.pushToSingleViaAPN(tipMessage, customData, message.content_type, userStatus.device_token,badge, function (err, res) {
 | 
	
		
			
				|  |  |                 if (err) {
 | 
	
		
			
				|  |  |                     ModelUtil.logError("Send notification via APN failed:"+userStatus.device_token, err);
 | 
	
		
			
				|  |  |                 } else {
 | 
	
		
			
				|  |  |                     log.info("Send notification via APN succeed: ", JSON.stringify(res));
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             });
 | 
	
		
			
				|  |  |         } else if (userStatus.platform == PLATFORMS.Android) {
 | 
	
		
			
				|  |  |             let title = '新消息';
 | 
	
		
			
				|  |  |             pusher.pushToSingleViaAndroid(title, tipMessage, customData, userStatus.client_id, userStatus.app_in_bg, function (err, res) {
 | 
	
		
			
				|  |  |                 if (err) {
 | 
	
		
			
				|  |  |                     ModelUtil.logError("Send notification via Android failed", err);
 | 
	
		
			
				|  |  |                 } else {
 | 
	
		
			
				|  |  |                     log.info("Send notification via Android succeed: ", JSON.stringify(res));
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             });
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 向App端推送消息。指令性消息不推。
 | 
	
		
			
				|  |  |      *
 | 
	
	
		
			
				|  | @ -112,13 +167,14 @@ class AppClient extends RedisModel {
 | 
	
		
			
				|  |  |                     ModelUtil.logError("Get user app status failed", err);
 | 
	
		
			
				|  |  |                     return;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 if(sessionType==SESSION_TYPES.SYSTEM||
 | 
	
		
			
				|  |  |                     sessionType==SESSION_TYPES.MUC||
 | 
	
		
			
				|  |  |                     sessionType==SESSION_TYPES.P2P||
 | 
	
		
			
				|  |  |                     sessionType==SESSION_TYPES.GROUP||
 | 
	
		
			
				|  |  |                     sessionType==SESSION_TYPES.DISCUSSION||
 | 
	
		
			
				|  |  |                     sessionType==SESSION_TYPES.PRESCRIPTION){
 | 
	
		
			
				|  |  |                 var isSend = true;
 | 
	
		
			
				|  |  |                 var session_type = isNaN(Number(sessionType))?sessionType:Number(sessionType);
 | 
	
		
			
				|  |  |                 if(session_type==SESSION_TYPES.SYSTEM||
 | 
	
		
			
				|  |  |                     session_type==SESSION_TYPES.MUC||
 | 
	
		
			
				|  |  |                     session_type==SESSION_TYPES.P2P||
 | 
	
		
			
				|  |  |                     session_type==SESSION_TYPES.GROUP||
 | 
	
		
			
				|  |  |                     session_type==SESSION_TYPES.DISCUSSION||
 | 
	
		
			
				|  |  |                     session_type==SESSION_TYPES.PRESCRIPTION){
 | 
	
		
			
				|  |  |                     //是否发送消息
 | 
	
		
			
				|  |  |                     MessageNoticeSettingRepo.findOne(targetId,'1',function (err,res) {
 | 
	
		
			
				|  |  |                         if(res&&res.length>0){
 | 
	
	
		
			
				|  | @ -127,17 +183,21 @@ class AppClient extends RedisModel {
 | 
	
		
			
				|  |  |                             let family_topic_switch = res[0].family_topic_switch;
 | 
	
		
			
				|  |  |                             if(master_switch==0||im_switch==0){
 | 
	
		
			
				|  |  |                                 ModelUtil.logError(targetId+"-关闭im消息,消息id", message.id);
 | 
	
		
			
				|  |  |                                 return;
 | 
	
		
			
				|  |  |                             }else if(sessionType==SESSION_TYPES.MUC&&family_topic_switch==0){
 | 
	
		
			
				|  |  |                             }else if(session_type==SESSION_TYPES.MUC&&family_topic_switch==1){
 | 
	
		
			
				|  |  |                                 SignFamilyRepo.isHealthDoctor(message.session_id,targetId,function (err,res) {
 | 
	
		
			
				|  |  |                                     if(res&&res.length==0){
 | 
	
		
			
				|  |  |                                         ModelUtil.logError("全科医生:"+targetId+"-关闭im消息,消息id", message.id);
 | 
	
		
			
				|  |  |                                         return;
 | 
	
		
			
				|  |  |                                     }else{
 | 
	
		
			
				|  |  |                                         AppClient.sendNotice(targetId, message, sessionType,badge,userStatus)
 | 
	
		
			
				|  |  |                                     }
 | 
	
		
			
				|  |  |                                 })
 | 
	
		
			
				|  |  |                             }else{
 | 
	
		
			
				|  |  |                                 AppClient.sendNotice(targetId, message, sessionType,badge,userStatus)
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     });
 | 
	
		
			
				|  |  |                 }else{
 | 
	
		
			
				|  |  |                     AppClient.sendNotice(targetId, message, sessionType,badge,userStatus)
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 // let pc_doctorClient = clientCache.findByIdAndType("pc_"+targetId,SOCKET_TYPES.PC_DOCTOR);
 | 
	
	
		
			
				|  | @ -145,61 +205,12 @@ class AppClient extends RedisModel {
 | 
	
		
			
				|  |  |                 //     log.warn("User's pc is online, user id: " + targetId + ", we cannot send getui.");
 | 
	
		
			
				|  |  |                 //     return;
 | 
	
		
			
				|  |  |                 // }
 | 
	
		
			
				|  |  |                 //调用接口推送医生助手微信模板
 | 
	
		
			
				|  |  |                 let param = {
 | 
	
		
			
				|  |  |                     sessionId:message.session_id||'',
 | 
	
		
			
				|  |  |                     sessionType:sessionType,
 | 
	
		
			
				|  |  |                     from:message.sender_id|| '',
 | 
	
		
			
				|  |  |                     content:message.content,
 | 
	
		
			
				|  |  |                     contentType:message.content_type,
 | 
	
		
			
				|  |  |                     businessType:message.businessType || 1,
 | 
	
		
			
				|  |  |                     doctorCode:targetId
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 // let params = 'sessionId='+(message.session_id||'')+'&sessionType='+sessionType+"&from="+(message.sender_id|| '')+'&content='+message.content+'&businessType='+(message.business_type || 1)+'&doctorCode='+targetId;
 | 
	
		
			
				|  |  |                 WlyyAssistantSDK.request('admin', '0a5c5258-8863-4b07-a3f9-88c768528ab4', '', 'admin_imei', '/doctor/feldsher/sendDoctorTemplate', param, function (err, res) {
 | 
	
		
			
				|  |  |                 // 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?");
 | 
	
		
			
				|  |  |                     return;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 let tipMessage = CONTENT_TYPES.typeToDescription(parseInt(message.content_type), "您有一条新消息") || message.content;
 | 
	
		
			
				|  |  |                 let customData = {
 | 
	
		
			
				|  |  |                     session_id: message.session_id||'',
 | 
	
		
			
				|  |  |                     session_type: sessionType,
 | 
	
		
			
				|  |  |                     from: message.sender_id|| '',
 | 
	
		
			
				|  |  |                     data: message.content,
 | 
	
		
			
				|  |  |                     business_type: message.business_type || 1
 | 
	
		
			
				|  |  |                 };
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 if (userStatus.platform == PLATFORMS.iOS) {
 | 
	
		
			
				|  |  |                     pusher.pushToSingleViaAPN(tipMessage, customData, message.content_type, userStatus.device_token,badge, function (err, res) {
 | 
	
		
			
				|  |  |                         if (err) {
 | 
	
		
			
				|  |  |                             ModelUtil.logError("Send notification via APN failed:"+userStatus.device_token, err);
 | 
	
		
			
				|  |  |                         } else {
 | 
	
		
			
				|  |  |                             log.info("Send notification via APN succeed: ", JSON.stringify(res));
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     });
 | 
	
		
			
				|  |  |                 } else if (userStatus.platform == PLATFORMS.Android) {
 | 
	
		
			
				|  |  |                     let title = '新消息';
 | 
	
		
			
				|  |  |                     pusher.pushToSingleViaAndroid(title, tipMessage, customData, userStatus.client_id, userStatus.app_in_bg, function (err, res) {
 | 
	
		
			
				|  |  |                         if (err) {
 | 
	
		
			
				|  |  |                             ModelUtil.logError("Send notification via Android failed", err);
 | 
	
		
			
				|  |  |                         } else {
 | 
	
		
			
				|  |  |                             log.info("Send notification via Android succeed: ", JSON.stringify(res));
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     });
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             });
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | // Expose class
 |