| 
					
				 | 
			
			
				@ -21,11 +21,12 @@ let redis = RedisClient.redisClient().connection; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				let logger = require('../../util/log.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				let mongoose = require('mongoose'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				let async = require("async"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				var log = require("../../util/log.js"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				let log = require("../../util/log.js"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				const REDIS_KEYS = require('../../include/commons').REDIS_KEYS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				const SESSION_TYPES = require('../../include/commons').SESSION_TYPES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				const STICKY_SESSION_BASE_SCORE = require('../../include/commons').STICKY_SESSION_BASE_SCORE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				const PARTICIPANT_ROLES = require('../../include/commons').PARTICIPANT_ROLES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    constructor() { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -132,7 +133,7 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                timestamp: createDate, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                id: messageId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(type == SESSION_TYPES.MUC){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (type == SESSION_TYPES.MUC) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessType = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            let session = { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -202,7 +203,7 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //查找该sessionId是否存在存在则直接返回实例 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SessionRepo.findOne(sessionId, function (err, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (res.length > 0) {//已经存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //更新成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //更新成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Participants.saveParticipantsToMysql(sessionId, participantArray, function (err, update) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        handler(null, res[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        return; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -236,7 +237,7 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    handler(err, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    handler(null, session); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -385,12 +386,12 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                sessionName = res[0].name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            var bir = new Date().getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            if(res.length!=0&&res[0].birthdate){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            if (res.length != 0 && res[0].birthdate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                bir = res[0].birthdate.getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            var sex = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            if(res.length!=0&&res[0].sex){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                sex =   res[0].sex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            if (res.length != 0 && res[0].sex) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                sex = res[0].sex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            sessionList.push({ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -405,8 +406,8 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                unread_count: count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                business_type: session.business_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                my_role: role, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                sender_sex:sex, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                sender_birthday:bir, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                sender_sex: sex, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                sender_birthday: bir, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            index = (parseInt(index) + 1); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -591,7 +592,7 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        let startMsgScore = res[1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        let endMsgScore = res[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (startMsgScore == null || endMsgScore == null || (startMsgScore == endMsgScore&&isoffset==1)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (startMsgScore == null || endMsgScore == null || (startMsgScore == endMsgScore && isoffset == 1)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            handler(null, []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -657,13 +658,13 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                count = count + con; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(session.type ==2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    patientCount = patientCount+con; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    doctorCount = doctorCount+con; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (session.type == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    patientCount = patientCount + con; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    doctorCount = doctorCount + con; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (j == res.length - 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    ModelUtil.emitOK(self.eventEmitter, {count: count,patient:patientCount,doctor:doctorCount}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    ModelUtil.emitOK(self.eventEmitter, {count: count, patient: patientCount, doctor: doctorCount}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -819,11 +820,9 @@ class Sessions extends RedisModel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            message.session_id = sessionId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            log.info("Candidate to push: " + participants); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            res.forEach(function (participant) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                if (participant.id !== message.sender_id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    log.warn('Push message to ' + participant.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                if (participant.id !== message.sender_id && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    participant.participant_role == PARTICIPANT_ROLES.HOST) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    Sessions.pushNotification(participant.id, message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            }); 
			 |