⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msgmanager.java

📁 淘客在线客服管理系统(TaokeOCS V3.2)
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
	  *通知我所在群的所有在线服务人员我(客户端)离线的信息
	  *调用者:msgManager.jsp
	  *@param vid 客户端id	  
	  */	
	public void tellGroupsImOfflineMsg(String vid){
		 try{			 
 			sql="select groupId from mygroup where userId=\""+vid+"\"";	
 			if(db.getConnection()==null || db.isClosed())			 
				db.setConnection(); 		
			db.setSqlQuery(sql);
			rs=db.getResult();
			String groupIds="";	
			if(rs!=null && rs.last()) 
				 groupIds +=","+rs.getString("groupId");
			if(groupIds.startsWith(","))
				groupIds=groupIds.substring(1);
			sql="select userId,name,groupId from mygroup,user where mygroup.userId=user.id and groupId in("+
			    	    groupIds+") and user.state<>\"OFFLINE\"";	
			if(db.getConnection()==null || db.isClosed())			 
				db.setConnection(); 		
			db.setSqlQuery(sql);
			rs=db.getResult();
			while( rs!=null && rs.next() ){		
				if( (rs.getString("userId")).equals(vid) )
					continue;	 			
			 	sendMsg(new msg.Message(vid,rs.getString("userId"),"OFFLINE","STATECHANGE"));	
			}	
			if(db.getConnection()!=null && !db.isClosed()) //////////////////////////////
				db.closeConnection();	
			closeDbConnection();	 	 
			///////////////////////////////////////						
		}catch(Exception e){ 
			closeDbConnection();			 
			Log.log("Class:MsgManager method:tellGroupsImOfflineMsg(String vid) error:"+e.getMessage()+" sql:"+sql);
		}	
	}
	/**
	  *通知我所在群的所有在线服务人员我(客户端)上线的信息
	  *调用者:client.jsp
	  *@param vid 客户端id	  
	  */	
	public void tellFriendsImOnlineMsg(String vid){
		 try{	
			sql="select name from user where id=\""+vid+"\"";	
			if(db.getConnection()==null || db.isClosed())			 
				db.setConnection(); 		
			db.setSqlQuery(sql);
			rs=db.getResult();
			String myName="";
			if(rs!=null && rs.next()) 
				myName=rs.getString("name");
 			sql="select id2 from friend where id1=\""+vid+"\"";	
 			if(db.getConnection()==null || db.isClosed())			 
				db.setConnection(); 		
			db.setSqlQuery(sql);
			rs=db.getResult();	
			String t="";		
			while(rs!=null && rs.next()){					 			 
				t="<U i=\""+vid+"\" t=\"99\" s=\"ONLINE\" v=\"\""+
				  " dm=\"friend\" n=\""+myName+"\"></U>";
				sendMsg(new msg.Message(vid,rs.getString("id2"),t,"ONPAGEINIT"));	
			}
			 
			if(db.getConnection()!=null && !db.isClosed()) //////////////////////////////
				db.closeConnection();	
			closeDbConnection();	 	 
			///////////////////////////////////////						
		}catch(Exception e){ 
			closeDbConnection();			 
			Log.log("Class:MsgManager method:tellFriendsImOnlineMsg(String vid) error:"+e.getMessage()+" sql:"+sql);
		}	
	}
	/**
	  *通知我所在群的所有在线服务人员我(客户端)离线的信息
	  *调用者:msgManager.jsp
	  *@param vid 客户端id	  
	  */	
	public void tellFriendsImOfflineMsg(String vid){
		 try{			 
 			sql="select id2 from friend where id1=\""+vid+"\"";	
 			if(db.getConnection()==null || db.isClosed())			 
				db.setConnection(); 		
			db.setSqlQuery(sql);
			rs=db.getResult();			
			while(rs!=null && rs.next()) 	 
				sendMsg(new msg.Message(vid,rs.getString("id2"),"OFFLINE","STATECHANGE"));	
			 		
			if(db.getConnection()!=null && !db.isClosed()) //////////////////////////////
				db.closeConnection();	
			closeDbConnection();	 	 
			///////////////////////////////////////						
		}catch(Exception e){ 
			closeDbConnection();			 
			Log.log("Class:MsgManager method:tellFriendsImOfflineMsg(String vid) error:"+e.getMessage()+" sql:"+sql);
		}	
	}
	/**
	  *客户端向某个群发送信息
	  *调用者:msgManager.jsp
	  *@param vid 客户端id	  
	  *@param groupId 群组id
	  *@param msg 消息内容
	  *@return int 返回发送信息的条数
	  */	
	public int sendGroupsMsg(String vid,String groupId,String msg){
		int numberOfmessages=0;
		 try{ 			 
			sql="select userId,state from mygroup,user where user.id=mygroup.userId and "+
			    "groupId=\""+groupId+"\"";	
			if(db.getConnection()==null || db.isClosed())			 
				db.setConnection(); 		
			db.setSqlQuery(sql);
			rs=db.getResult();
			while( rs!=null && rs.next() ){		
				if( (rs.getString("userId")).equals(vid) )
					continue;
				if( (rs.getString("state")).equals("OFFLINE"))
					sendMsg(new msg.Message(vid,rs.getString("userId"),msg,"TALKMSG","2") ); //发送留言
				else	 			
			 		sendMsg( new msg.Message(vid,rs.getString("userId"),msg,"TALKMSG") );	
				numberOfmessages++;
			}	
			if(db.getConnection()!=null && !db.isClosed()) //////////////////////////////
				db.closeConnection();	
			closeDbConnection();	 	 
			///////////////////////////////////////						
		}catch(Exception e){ 
			closeDbConnection();			 
			Log.log("Class:MsgManager method:sendGroupsMsg() error:"+e.getMessage()+" sql:"+sql);
		}
		return numberOfmessages;	
	}
	/**
	  *获取所有在线访问者的contact信息
	  *调用者:msgManager.jsp
	  *@param vid 访问者id
	  */	
	public void sendContactMsgToMe(String vid){
		 
		try{
			String[] ids=null;
			//String domainIds="";
			String domainIds=new UserManager().getUserDomainId(vid);
 			//StringTokenizer st = new StringTokenizer(domainId,",");	
			//while(st.hasMoreTokens())
			//	domainIds +=",\""+st.nextToken()+"\"";
			//domainIds=domainIds.substring(1);
 			sql="select id from visitor where domainId in ("+domainIds+") and state<>\"OFFLINE\"";
 			if(db.getConnection()==null || db.isClosed())			 
				db.setConnection(); 		
			db.setSqlQuery(sql);
			rs=db.getResult();	
			if(rs!=null && rs.last()){
				ids=new String[rs.getRow()];
				rs.beforeFirst();
			} 
			for(int i=0;ids!=null && i<ids.length&&rs!=null && rs.next();i++)
				ids[i]=rs.getString("id");
			if(db.getConnection()!=null && !db.isClosed()) //////////////////////////////
				db.closeConnection();	
			closeDbConnection();
			for(int i=0;ids!=null && i<ids.length;i++) 				
			 	sendMsg(new msg.Message(ids[i],vid,getContact(ids[i]),"SETNOTE"));		 	 
			///////////////////////////////////////						
		}catch(Exception e){ 
			closeDbConnection();			 
			Log.log("Class:MsgManager method:sendContactMsgToMe() error:"+e.getMessage()+" sql:"+sql);
		}	
  	}
	/**
	  *获取访问者的contact(标注信息)信息
	  *调用者:msgManager.jsp
	  *@param vid 访问者id
	  *@return String 返回访问者的标注信息
	  */		
	public String getContact(String vid){
		String contactMsg=null;
		try{
			sql="select name,sex,workphone,mobilephone,sht,email,qq,msn,address from visitor where id=\""+vid+"\"";
			if(db.getConnection()==null || db.isClosed())			 
				db.setConnection(); 		
			db.setSqlQuery(sql);
			rs=db.getResult();
			if(rs!=null && rs.next()){
				if(rs.getString("name")==null || rs.getString("name").equals("null")|| rs.getString("name").equals(""))
					return null;
		 		contactMsg="<contact name=\""+rs.getString("name")+"\" sex=\""+rs.getString("sex")+"\" workphone=\""+
						   rs.getString("workphone")+"\" mobilephone=\""+rs.getString("mobilephone")+"\" sht=\""+
						   rs.getString("sht")+"\" email=\""+rs.getString("email")+"\" qq=\""+rs.getString("qq")+
						   "\" msn=\""+rs.getString("msn")+"\" address=\""+rs.getString("address")+"\" type=\"\"/>"; 
		 	}
			///////////////////////////////////////
			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();				
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:MsgManager method:getContact() error:"+e.getMessage()+" sql:"+sql);
			return null;
		}	
		return contactMsg;
	}
	/**
	  *通知网站所有在线服务人员我离线的信息
	  *当url为null时为user即客户端调用,当url为某域名时为访问者调用。
	  */
/**
    public void sendKeyInfoMsg(String vid,String url){
		try{
			 
		 
			///////////////////////////////////////
			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();				
		}catch(Exception e){}	
	}
**/	
	/**
	  *更新网站服务人员的状态
 	  */	
/**
	public void changeUserStateTo(String vid,String state){

		try{
			sql="update user set state=\""+state+"\" where id=\""+vid+"\"";
			if(db.getConnection()==null || db.isClosed())			 
				db.setConnection(); 
			db.setSqlQuery(sql);
			db.executeUpdate();			 
 			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();	
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:MsgManager method:changeUserStateTo() error:"+e.getMessage()+" sql:"+sql);
		}			
	}
**/
	/**

	  *更新访问者的状态
 	  */	
/**
	public void changeViewerStateTo(String vid,String state){
		try{
			sql="update visitor set state=\""+state+"\" where id=\""+vid+"\"";
			if(db.getConnection()==null || db.isClosed())			 
				db.setConnection(); 
			db.setSqlQuery(sql);
			db.executeUpdate();			 
 			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();	
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:MsgManager method:changeViewerStateTo() error:"+e.getMessage()+" sql:"+sql);
		}			
	}
**/
	/**
	  *访问者发短信息告诉站点所有的在线服务人员我进入新的页面
	  *@param vid 访问者id
	  *@param domain 访问者所在网站域名
	  *@param frmurl 访问者来自网站域名
	  *@param curURL 访问者当前网站域名
 	  */	
	public void sendSayMeGetInPageMsg(String vid,String domain,String frmurl,String curURL){
		
		String msg="";		 
		Calendar now= Calendar.getInstance();
			String nowStr=String.valueOf(now.get(Calendar.YEAR))+"-"+String.valueOf(now.get(Calendar.MONTH)+1)+"-"+
						  String.valueOf(now.get(Calendar.DAY_OF_MONTH))+" "+String.valueOf(now.get(Calendar.HOUR_OF_DAY))+":"+
						  String.valueOf(now.get(Calendar.MINUTE))+":"+String.valueOf(now.get(Calendar.SECOND));
		try{
			//获取页面定义的中文名称
		    if(curURL.indexOf("?")>0)
			sql="select `name` from `pageName`,`site` where `pageName`.domainId=`site`.domainId and `site`.domain=\'"+
			    Keyword.getCleanURL(curURL)+"\' and ( `pageName`.pageUrl=\'"+
			    Keyword.getPage(curURL)+"\' or `pageName`.pageUrl=\'"+
			    Keyword.getPageAndPara(curURL)+"\' )";
		    else			
 			sql="select name from pageName,site where pageName.domainId=site.domainId and site.domain=\""+
			    Keyword.getCleanURL(curURL)+"\" and pageName.pageUrl=\""+
			    Keyword.getPage(curURL)+"\"";
			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  //local
			db.setSqlQuery(sql);
			rs=db.getResult();
			if(rs!=null && rs.next()){
				msg="<T f=\""+Keyword.getPage(frmurl)+"\" u=\""+
					rs.getString("name")+"\" t=\""+nowStr+"\"/>";
			}
			else
				msg="<T f=\""+Keyword.getPage(frmurl)+"\" u=\""+
					Keyword.getPage(curURL)+"\" t=\""+nowStr+"\"/>";
			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();	
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:MsgManager method:sendSayMeGetInPageMsg() error:"+e.getMessage()+" sql:"+sql);
		}	
		sendMsgToStuff(vid,"visitor",domain,msg,"ONPAGE");
	}
	/**
	  *过客向网站所有在线人员发消息
	  *调用者:msgManager.jsp
	  *@param vid 访问者id
	  *@param domain 访问者所在网站域名
	  *@param msg 要发送的短消息内容
	  */
    public void sendGuokeMsgToAll(String vid,String domain,String msg){		 
	sendMsgToVisitors(vid,"visitor",domain,msg,"GKMSG");
	sendMsgToStuff(vid,"visitor",domain,msg,"GKMSG");		 	
    }
	private void closeDbConnection(){
		try{
			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();			
		}catch(Exception e){}
	
	}		
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -