| 
					
				 | 
			
			
				@ -9,6 +9,7 @@ let log = require('../../util/log.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				const DB_TABLES = require('../../include/commons').DB_TABLES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				const PARTICIPANT_ROLES = require('../../include/commons').PARTICIPANT_ROLES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				const SESSION_STATUS = require('../../include/commons').SESSION_STATUS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				const SESSION_BUSINESS_TYPE = require('../../include/commons').SESSION_BUSINESS_TYPE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				class SessionRepo { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    constructor() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -121,19 +122,37 @@ class SessionRepo { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        let sessionSQL =""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        let sql =""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(status == SESSION_STATUS.ENDED){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //找出已经结束的咨询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = "select session_id from " + DB_TABLES.Participants + " w where w.participant_id = ?  group by w.session_id"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //找出角色讨论组中为旁听且未结束的咨询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            let sql1 = ("select session_id from " + DB_TABLES.Participants + " w where w.participant_id = ? and participant_role ="+PARTICIPANT_ROLES.REGULAR+" group by w.session_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sessionSQL =  "select * from " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                + DB_TABLES.Sessions + " s where (s.id in(" + sql + ") and s.business_type = ? and s.status = 1) or (s.id in(" + sql1 + ") and s.business_type = ? and s.status = 0) limit "+page+","+pagesize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            ImDb.execQuery({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "sql": sessionSQL, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "args": [userId, businessType,userId,businessType], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "handler": handler || function (err, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(err) log.error(err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(businessType == SESSION_BUSINESS_TYPE.PATIENT){//区分居民,有未读消息的置顶排列 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //找出已经结束的咨询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql = "select session_id from " + DB_TABLES.Participants + " w where w.participant_id = ?  group by w.session_id"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //找出角色讨论组中为旁听且未结束的咨询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                let sql1 = ("select session_id from " + DB_TABLES.Participants + " w where w.participant_id = ? and participant_role ="+PARTICIPANT_ROLES.REGULAR+" group by w.session_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sessionSQL =  "select s.* from " + DB_TABLES.Sessions + " s, " + DB_TABLES.Participants + " p " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " where ((s.id in(" + sql + ") and s.business_type = ? and s.status = 1) or (s.id in(" + sql1 + ") and s.business_type = ? and s.status = 0)) " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " and s.id = p.session_id and p.participant_id = ? ORDER BY (p.last_fetch_time - s.last_message_time+1)>0,s.create_date desc limit "+page+","+pagesize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                ImDb.execQuery({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "sql": sessionSQL, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "args": [userId, businessType,userId,businessType,userId], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "handler": handler || function (err, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(err) log.error(err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //找出已经结束的咨询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql = "select session_id from " + DB_TABLES.Participants + " w where w.participant_id = ?  group by w.session_id"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //找出角色讨论组中为旁听且未结束的咨询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                let sql1 = ("select session_id from " + DB_TABLES.Participants + " w where w.participant_id = ? and participant_role ="+PARTICIPANT_ROLES.REGULAR+" group by w.session_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sessionSQL =  "select * from " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    + DB_TABLES.Sessions + " s where (s.id in(" + sql + ") and s.business_type = ? and s.status = 1) or (s.id in(" + sql1 + ") and s.business_type = ? and s.status = 0) limit "+page+","+pagesize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                ImDb.execQuery({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "sql": sessionSQL, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "args": [userId, businessType,userId,businessType], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "handler": handler || function (err, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(err) log.error(err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = "select session_id from " + DB_TABLES.Participants + " w where w.participant_id = ? and participant_role ="+PARTICIPANT_ROLES.HOST+" group by w.session_id"; 
			 |