📄 usermanager.java
字号:
*/
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 + -