📄 usermanager.java
字号:
Log.log("Class:UserManager method: getVisit() error:"+e.getMessage()+" sql:"+sql);
return "";
}
return visit;
}
/**
*获取客户端的名称name
*调用者: UserManager.java的findMyTalkers()
*@param id 客户端的id
*@return String 客户端的名称
*/
public String getName(String id){
String name=null;
try{
sql="select name from user 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()){
name=rs.getString("name");
}
if(db.getConnection()!=null && !db.isClosed())
db.closeConnection();
}catch(Exception e){
closeDbConnection();
Log.log("Class:UserManager method: getName() error:"+e.getMessage()+" sql:"+sql);
return "";
}
return name;
}
/**
*根据客户端id获取站点名称name
*调用者:
*@param id 客户端id
*@return String 站点名称
*/
public String getSiteName(String id){
String name=null;
try{
String domainId=getUserDomainId(id);
int index=domainId.indexOf(",");
if(index>0)
domainId=domainId.substring(0,index);
sql="select companyName from site where domainId=\""+domainId+"\"";
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()){
name=rs.getString("companyName");
}
if(db.getConnection()!=null && !db.isClosed())
db.closeConnection();
}catch(Exception e){
closeDbConnection();
Log.log("Class:UserManager method: getSiteName() error:"+e.getMessage()+" sql:"+sql);
return "";
}
return name;
}
/**
*更新访问者的的访问次数标记visit
*调用者:webTalk.jsp
*@param vid 访问者id
*@param visit 访问次数标记
*/
public void setVisit(String vid,String visit){
try{
sql="update visitor set visit=\""+visit+"\" 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: setVisit() error:"+e.getMessage()+" sql:"+sql);
}
}
/**
*以XML方式读取某网站的所有快捷回复语
*调用者:client.jsp
*@param url 站点地址
*@return String 返回快捷回复语
*/
public String getShortcut(String url){
String msgToBeSent="<xml><?xml version=\"1.0\" encoding=\"utf-8\"?><ShortCutDefine>";
try{
String theDomain="";
StringTokenizer st = new StringTokenizer(url,",");
while(st.hasMoreTokens())
theDomain +=",\""+st.nextToken()+"\"";
theDomain=theDomain.substring(1);
sql="select catalog,content from shortcut,site where shortcut.domainId=site.domainId and domain in("+
theDomain+") group by catalog,content";
if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())
db.setConnection();
db.setSqlQuery(sql);
rs=db.getResult();
String type=null;
while(rs!=null && rs.next()){
if(type==null ){
type=rs.getString("catalog");
msgToBeSent +="<Group name=\""+rs.getString("catalog")+"\">";
}
if(type!=null && !type.equals(rs.getString("catalog")) ){
type=rs.getString("catalog");
msgToBeSent +="</Group><Group name=\""+rs.getString("catalog")+"\">";
}
msgToBeSent +="<Shortcut text=\""+ rs.getString("content")+"\"/>";
}
if(db.getConnection()!=null && !db.isClosed())
db.closeConnection();
}catch(Exception e){
closeDbConnection();
Log.log("Class:UserManager method: getShortcut() error:"+e.getMessage()+" sql:"+sql);
return "";
}
msgToBeSent +="</Group></ShortCutDefine></xml>";
return msgToBeSent;
}
/**
*更新访问者的信息
*调用者:msgManager.jsp(标记访问者时调用)
*@param vid 访问者id
*@param name 访问者名称
*@param sex 访问者性别
*@param workphone 访问者工作电话
*@param mobilephone 访问者移动电话
*@param sht 访问者小令通号码
*@param email 访问者email
*@param qq 访问者qq
*@param msn 访问者msn
*@param address 访问者地址
*@return boolean 返回修改是否成功
*/
public boolean updateVisitorInfo(String vid,String name,String sex,String workphone,String mobilephone,String sht,
String email,String qq,String msn,String address){
try{
if(name==null) name="";if(sex==null) sex="";if(workphone==null) workphone="";if(mobilephone==null) mobilephone="";
if(sht==null) sht="";if(email==null) email="";if(qq==null) qq="";if(msn==null) msn="";if(address==null) address="";
sql="update visitor set name=\""+name+"\",sex=\""+sex+"\",workphone=\""+workphone+"\",mobilephone=\""+
mobilephone+"\",sht=\""+sht+"\",email=\""+email+"\",qq=\""+qq+"\",msn=\""+msn+"\",address=\""+
address+"\" 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: updateUserInfo() error:"+e.getMessage()+" sql:"+sql);
return false;
}
return true;
}
/**
*客户端重新启动后找回中断的交谈者id
*调用者:client.jsp
*@param vid 客户端id
*@return String[] 返回客户端交谈者的id
*/
public String[] findMyTalkers(String vid){
String[] ids=null;
try{
sql="select id from visitor where talker=\""+getName(vid)+"\" and state=\"TALKING\"";
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.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();
}catch(Exception e){
closeDbConnection();
Log.log("Class:UserManager method: findMyTalkers() error:"+e.getMessage()+" sql:"+sql);
return null;
}
return ids;
}
/**
*客户端将本站点内的所有超时更新的访问者置为离线(客户端登陆前清理访问者状态)
*@param domain 站点域名
*@param vid 客户端id
*/
public void putLostVisitorToOffline(String domain,String vid){
//////把本站内所有最后更新时间早于当前时间60秒的浏览者置于离线状态
try{
Calendar now= Calendar.getInstance();
now.setTimeInMillis(now.getTimeInMillis()-60000);
//now.roll(Calendar.SECOND,-15);
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 domainIds=getUserDomainId(vid);
sql="update visitor set state=\"OFFLINE\" "+
"where domainId in("+domainIds+") and "+
"state<>\"OFFLINE\" and lastTime<\""+nowStr+"\"";
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: putLostVisitorToOffline() error:"+e.getMessage()+" sql:"+sql);
}
//////
}
/**
*将所有在更新最后访问时间超时的访问者和客户端置为离线
*调用者:msgManager.jsp(浏览者浮动窗每15秒读取信息时调用 a=3)
*/
public void putLostVisitorAndUserToOffline(){
//////把所有最后更新时间早于当前时间60秒的浏览者和客户端置于离线状态
try{
Calendar now= Calendar.getInstance();
now.setTimeInMillis(now.getTimeInMillis()-600000);
//now.roll(Calendar.SECOND,-15);
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 user set state=\"OFFLINE\" where state<>\"OFFLINE\" and lastTime<\""+nowStr+"\"";
if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())
db.setConnection();
db.setSqlQuery(sql);
db.executeUpdate();
sql="update visitor set state=\"OFFLINE\" where state<>\"OFFLINE\" and lastTime<\""+nowStr+"\"";
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: putLostVisitorAndUserToOffline() error:"+e.getMessage()+" sql:"+sql);
}
//////
}
/**
*客户端标记未读短信息为已读
*调用者:client.jsp
*@param vid 客户端id
*/
public void markUnreadCommandMessageAsRead(String vid){
try{
//把非message的短信全部置为已读
sql="update message set isRead=\"1\" where type<>\"TALKMSG\" and toId=\""+vid+"\" and isRead=\"0\"";
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: markUnreadCommandMessageAsRead() error:"+e.getMessage()+" sql:"+sql);
}
////////////////////////////////////////////
}
/**
*客户端登陆时判断是否有该用户
*调用者:loginValidation.jsp
*@param id 客户端id
*@param password 客户端密码
*@return boolean 返回是否有该用户
*/
public boolean hasUser(String id,String password){
try{
sql="select id from user where id=\""+id+"\" and password=\""+password+
"\" and password<>\"null\" and password<>\"\"";
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.last() && rs.getRow()>0){
if(db.getConnection()!=null && !db.isClosed())
db.closeConnection();
return true;
}
if(db.getConnection()!=null && !db.isClosed())
db.closeConnection();
}catch(Exception e){
closeDbConnection();
Log.log("Class:UserManager method: hasUser() error:"+e.getMessage()+" sql:"+sql);
return true;
}
return false;
}
/**
*客户端登陆时判断是否有该超级用户
*调用者:loginValidation.jsp
*@param username 客户端id
*@param password 客户端密码
*@return boolean 返回是否有该超级用户
*/
public boolean isAdmin(String username,String password){
try{
sql="select username from admin where username=\""+username+"\" and password=\""+password+"\"";
if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())
db.setConnection();
db.setSqlQuery(sql);
rs=db.getResult();
String userType=null;
if(rs!=null && rs.last() && rs.getRow()>0){
if(db.getConnection()!=null && !db.isClosed())
db.closeConnection();
return true;
}
if(db.getConnection()!=null && !db.isClosed())
db.closeConnection();
}catch(Exception e){
closeDbConnection();
Log.log("Class:UserManager method: isAdmin() error:"+e.getMessage()+" sql:"+sql);
return false;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -