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

📄 usermanager.java

📁 淘客在线客服管理系统(TaokeOCS V3.2)
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
	  */	
	public void changeVisitorLastTime(String vid){
		try{
			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));
 			sql="update visitor set lastTime=\""+nowStr+"\" where id=\""+vid+"\"";
 			if(db==null) db=new msg.DbConn();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:UserManager method: changeVisitorLastTime() error:"+e.getMessage()+" sql:"+sql);
		}			
	}	
	/**
	  *根据访问者最新访问时间和给定的最大必须更新时间,获取访问者是否还在线
	  *调用者:msgManager.jsp(访问者关闭对话窗口时调用a=6)
	  *@param vid 访问者id
	  *@param maxSeconds 访问者先关闭页面,后关闭对话窗口,从关闭页面到关闭对话窗口所经历的秒数,若超时,视为离线
	  *@return boolean 返回是否超时
	  */	
	public boolean isOnline(String vid,int maxSeconds){
		boolean online=true;
		try{			
			Calendar now= Calendar.getInstance();
			now.setTimeInMillis(now.getTimeInMillis()-maxSeconds*1000);
			//now.roll(Calendar.SECOND,-maxSeconds);
			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));
  			sql="select lastTime from visitor where id=\""+vid+"\" and lastTime<\""+nowStr+"\"";
 			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();			  
			db.setSqlQuery(sql);	
			rs=db.getResult();
			if(rs!=null && rs.next())
				online=false;
  			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();	
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:UserManager method: isOnline() error:"+e.getMessage()+" sql:"+sql);
			return false;
		}	
		return online;		
	}		
	/**
	  *更新访问者当前domain
	  */	
/**
	public void updateCurrentUrl(String vid,String url){
		try{
 			sql="update user set domain=\""+url+"\" where id=\""+vid+"\"";
			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);	
			db.executeUpdate();				 
 			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();	
		}catch(Exception e){}		
	
	
	}
*/
	/**
	  *获取客户端信息,用xml表示 
	  *调用者:client.jsp
	  *@param vid 客户端id
	  */	
	public String getHostInfoInXml(String vid){
		String hostInfo="";
		hostInfo="<xml id=\"messages\"><?xml version=\"1.0\" encoding=\"utf-8\" ?><FilterInfo></FilterInfo>";
		try{			
			sql="select voiphide,mbhide,voipenabled,mbenabled,state,name from user where id=\""+vid+"\"";
			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);
			rs=db.getResult();
			if(rs!=null && rs.next()){		
				hostInfo +="<Host voiphide=\""+rs.getString("voiphide")+
						   "\" mbhide=\""+rs.getString("mbhide")+"\" voipenabled=\""+rs.getString("voipenabled")+
						   "\" mbenabled=\""+rs.getString("mbenabled")+"\" state=\""+rs.getString("state")+
						   "\" name=\""+rs.getString("name")+"\" id=\""+vid+"\"/>";
			}
			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();				
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:UserManager method: getHostInfoInXml() error:"+e.getMessage()+" sql:"+sql);
			return "";
		}	
		hostInfo +="</xml>";
		return hostInfo;
	}
	/**
	  *获取访问者的浏览器、系统、语言等信息,用xml表示
	  *访问者:webTalk.jsp(获取的信息用来通知客户端访问者上线) msgManager.jsp(获取的信息用来通知新来的客户端访问者上线)
	  *@param vid 访问者id
	  *@param curURL 访问者所在网站地址
	  *@param frmurl 访问者来自网站地址
	  *@param remotIp 访问者ip
	  *@param p 访问者浏览器分辨率
	  *@param userAgent 访问者浏览器类型
	  *@param language 访问者浏览器设置语言
	  *@return String 返回获取到的用户信息
	  */	
	public String getUserInfoInXml(String vid,String curURL,String frmurl,String remoteIP,String p,String userAgent,String language){
		String userInfo="";
		try{
			userInfo="<U i=\""+vid+"\" ";
			sql="select tag,visit,state from visitor where id=\""+vid+"\"";
			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);
			rs=db.getResult();
			if(rs!=null && rs.next()){				
				userInfo +="t=\""+rs.getString("tag")+"\" s=\""+rs.getString("state")+"\" v=\""+
						   rs.getString("visit")+"\" dm=\""+msg.Escape.escape(Keyword.getCleanURL(curURL))+"\">";
			}	
			//将isit加1////////
			/**
			sql="update user set visit=visit+1 where id=\""+vid+"\"";
			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);	
			db.executeUpdate();	
			**/
			//////////////////		
			userInfo +="<I i=\""+remoteIP+"\" ";
			StringTokenizer st = new StringTokenizer(remoteIP,"."); 
			long ipInt=Long.parseLong(st.nextToken())*256*256*256+Long.parseLong(st.nextToken())*256*256+
					  Long.parseLong(st.nextToken())* 256+Long.parseLong(st.nextToken());
			sql="select country,city from address where ip1<="+ipInt+" and ip2>="+ipInt;
			//Log.log(remoteIP+" "+sql);
			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()){				
				userInfo +="a=\""+rs.getString("country");
				if(rs.getString("city")==null)
					userInfo +="\" ";
				else
					userInfo +=rs.getString("city")+"\" ";
			}
			else
				userInfo +="a=\"未知地域\" ";
			if(db.getConnection()!=null && !db.isClosed())///////////////////////
				db.closeConnection();	
			userInfo +=Keyword.getResult(frmurl); 			
			st = new StringTokenizer(userAgent,"();"); 
			//User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; TencentTraveler )
			String temp=st.nextToken(); temp=st.nextToken(); //跳过前面两个token			 
			userInfo +=" bo=\""+st.nextToken()+"\" o=\""+st.nextToken()+"\" l=\""+language+"\" p=\""+p+"\" u=\""+
						msg.Escape.escape(Keyword.getCleanURL(frmurl))+"\" ";
			if(frmurl==null || frmurl.indexOf(curURL)>=0)
				userInfo +="ad=\"0\" ";
			else
				userInfo +="ad=\""+msg.Escape.escape(Keyword.getCleanURL(curURL))+"\"";
			userInfo +="/>";
			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));
			String ot="";
			if(frmurl==null || frmurl.equals("")|| frmurl.equals("null"))
				ot="true";
			else
				ot="false";
			userInfo +="<VS><T f=\""+msg.Escape.escape(frmurl)+"\" ot=\""+ot+"\" u=\""+
				Keyword.getPage(curURL)+ "\" t=\""+nowStr+"\"/></VS></U>";			
			
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:UserManager method: getUserInfoInXml() error:"+e.getMessage()+" sql:"+sql);
			return "";
		}	
		return userInfo;
 	}
	/**
	  *根据客户端id获取客户端的域名(可能有多个域名)
	  *调用者:client.jsp
	  *@param vid 客户端id
	  *@return String 返回客户端的所有域名,以逗号分隔
	  */
	public String getUserDomain(String vid){
		String domain="";
		String type=getType(vid);
		try{			
			sql="select domain from user,site where user.domainId=site.domainIds and id=\""+vid+"\"";
			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);
			rs=db.getResult();
			while(rs!=null && rs.next()) 				
				domain +=","+rs.getString("domain");
			 domain=domain.substring(1);				 	
 			if(db.getConnection()!=null && !db.isClosed())
					db.closeConnection();	
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:UserManager method: getUserDomain() error:"+e.getMessage()+" sql:"+sql);
			return "";
		}	
		return domain;
	}
	/**
	  *根据访问者id获取访问者所在站点域名
	  *调用者:
	  *@param vid 访问者id
	  *@param String 返回访问者所在站点域名
	  */
	public String getVisitorDomain(String vid){
		String domain="";
		String type=getType(vid);
		try{		
			sql="select domain from visitor,site where visitor.domainId=site.domainId and id=\""+vid+"\"";
			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);
			rs=db.getResult();
			while(rs!=null && rs.next()) 				
				domain +=","+rs.getString("domain");
			 domain=domain.substring(1);				 	
 			if(db.getConnection()!=null && !db.isClosed())
					db.closeConnection();	
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:UserManager method: getVisitorDomain() error:"+e.getMessage()+" sql:"+sql);
			return "";
		}	
		return domain;
	}
	/**
	  *根据客户端id获取客户端类型(如:业务 销售)
	  *调用者: 
	  *@param vid 客户端id
	  *@return String 返回客户端类型(如:业务 销售)
	  */
	public String getType(String vid){
		String type=null;
		try{
			sql="select type from user where id=\""+vid+"\"";
			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);
			rs=db.getResult();
			if(rs!=null && rs.next()){				
				type=rs.getString("type");
			}				 	
 			if(db.getConnection()!=null && !db.isClosed())
					db.closeConnection();	
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:UserManager method: getType() error:"+e.getMessage()+" sql:"+sql);
			return "";
		}	
		return type;
	}	
	/**
	  *根据访问者id获取站点domainId
	  *调用者:msgManager.jsp
	  *@param vid 访问者id
	  *@return String 返回访问者所在网站id
	  */
	public String getVisitorDomainId(String vid){
		String domainId=null;
		try{
			sql="select domainId from visitor where id=\""+vid+"\"";
			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);
			rs=db.getResult();
			if(rs!=null && rs.next()){				
				domainId=rs.getString("domainId");
			}				 	
 			if(db.getConnection()!=null && !db.isClosed())
					db.closeConnection();	
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:UserManager method:getVisitorDomainId() error:"+e.getMessage()+" sql:"+sql);
			return "";
		}	
		return domainId;
	}	
	/**
	  *根据客户端id获取站点domainId
	  *调用者:msgManager.jsp
	  *@param vid 访问者id
	  *@return String 返回访问者所在网站id
	  */
	public String getUserDomainId(String vid){
		String domainId=null;
		try{
			sql="select domainId from user where id=\""+vid+"\"";
			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);
			rs=db.getResult();
			if(rs!=null && rs.next()){				
				domainId=rs.getString("domainId");
			}				 	
 			if(db.getConnection()!=null && !db.isClosed())
					db.closeConnection();	
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:UserManager method:getUserDomainId() error:"+e.getMessage()+" sql:"+sql);
			return "";
		}	
		return domainId;
	}			
	/**
	  *获取访问者访问次数(visit:用来标记是否对过话)
	  *调用者:webTalk.jsp
	  *@param id 访问者id
	  *@returnn String 返回访问者的访问次数
	  */	 
	public String getVisit(String id){
		String visit=null;
		try{
			sql="select visit from visitor where id=\""+id+"\"";
			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);
			rs=db.getResult();
			if(rs!=null && rs.next()){				
				visit=rs.getString("visit");
			}				 	
 			if(db.getConnection()!=null && !db.isClosed())
					db.closeConnection();	
		}catch(Exception e){
			closeDbConnection();

⌨️ 快捷键说明

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