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

📄 usermanager.java

📁 淘客在线客服管理系统(TaokeOCS V3.2)
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		return false;
	
	}
	/**
	  *判断客户端是否为代理商
	 *调用者:loginValidation.jsp
	 *@param agentId 客户端的id
	  *@param password 客户端密码
	 *@return boolean 返回客户端是否为代理商
	  */
	public boolean isAgent(String agentId){
	try{
			sql="select agentId from agent where agentId=\""+agentId+"\"";
			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: isAgent() error:"+e.getMessage()+" sql:"+sql);
			return false;
		}	
		return false;
	
	}
	/**
	  *检查访问者的上次更新时间,确定是否离线,如果离线,发信息通知客户端离线
	  *调用者:msgManager.jap 由客户端每60秒读取信息时调用 a=10
	  *@param vid 客户端id
	  *@param maxSeconds 超时时间
	  */
	public void checkVisitorOnlineAndSendMsg(String vid,int maxSeconds){
		try{	
			String domainIds=getUserDomainId(vid);		
			Calendar now= Calendar.getInstance();
			now.setTimeInMillis(now.getTimeInMillis()-maxSeconds*1000);
			 
			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 id from visitor where domainId in("+domainIds+") and lastTime<\""+nowStr+
				"\" and state<>\"OFFLINE\"";
			//Log.log(sql);
			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();				  
			db.setSqlQuery(sql);			
			rs=db.getResult();
			String[] ids=null;
			if(rs!=null && rs.last()){
				ids=new String[rs.getRow()];
				rs.beforeFirst();
			}
			for(int i=0;ids!=null &&rs.next() && i<ids.length;i++)
				ids[i]=rs.getString("id");
			//Log.log(sql);
  			sql="update visitor set state=\"OFFLINE\" where domainId in("+domainIds+") and lastTime<\""+nowStr+
				"\" and state<>\"OFFLINE\"";	
			//Log.log(sql);		
 			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();
			MsgManager msgManager=new MsgManager();
			for(int i=0;ids!=null && i<ids.length;i++)
				msgManager.sendSayMeLogoffMsg(ids[i],"visitor");	  				
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:UserManager method: checkVisitorOnlineAndSendMsg() error:"+e.getMessage()+" sql:"+sql);
		}		
	}
	/**
	  *删除信息表中非对话信息以及信息为空的信息
	 *调用者:
	  */
	public void deleteMessage(){
		try{				 
			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			 
			sql="delete from message where type<>\"TALKMSG\" and (isRead=\"1\" or content=\"null\")";	
			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: deleteMessage() error:"+e.getMessage()+" sql:"+sql);
		}	
		////////////////////////////////////////////
	}
	/**
	  *扣除域名下的短信息信用点
	 *调用者:msgManager.jsp
	 *@param domainId 域名id
	  *@param minusCredit 要扣除的信用点数
	  */
	public void dealCredit(String domainId,int minusCredit){
		try{		 
			sql="update site set credit=credit-"+minusCredit+" where domainId ="+domainId;	
			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);	
			db.executeUpdate();				 
			Calendar now= Calendar.getInstance();			 
			String month=String.valueOf(now.get(Calendar.YEAR))+"-"+String.valueOf(now.get(Calendar.MONTH)+1);
			sql="update msgstat set creditSpent=creditSpent+"+minusCredit+",msgCount=msgCount+1 where domainId="+domainId+" and month=\""+month+"\"";			 			
			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection(); 
			db.setSqlQuery(sql);			 
			if(db.executeUpdate()==0){
				sql="insert into msgstat values(\""+domainId+"\",\""+month+"\",\""+minusCredit+"\",1)";
				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: dealCredit() error:"+e.getMessage()+" sql:"+sql);
		}	
		////////////////////////////////////////////
	}
	/**
	  *判断域名下是否还有短信息信用点
	 *@param domainId 域名id
	 *@return boolean 返回是否还有短信息信用点
	  */
	public boolean hasMoreCredit(String domainId){
		try{		 
			sql="select credit from site where domainId ="+domainId+" and credit>0";	
			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: hasMoreCredit() error:"+e.getMessage()+" sql:"+sql);
			return false;
		}	
		////////////////////////////////////////////
		return false;
	}
	/**
	  *判断域名下是否还有短信息信用点
	 *@param domainId 域名id
	 *@return boolean 返回是否还有短信息信用点
	  */
	public boolean hasMoreCredit(String domainId,int n){
		try{		 
			sql="select credit from site where domainId ="+domainId+" and credit>"+String.valueOf(n);	
			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: hasMoreCredit() error:"+e.getMessage()+" sql:"+sql);
			return false;
		}	
		////////////////////////////////////////////
		return false;
	}
	/**
	  *动态调用javascript 文件
	 *调用者:webTalk.jsp webTalkWindow.jap client.jsp
	  *@param name javascript 文件所对应的名称
	 *@return String 返回文件内容
	  */
	public String getJS(String name){
	String value=null;
	try{
			sql="select value from jsdata where name=\""+name+"\"";
			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())
				value=rs.getString("value");			 
 			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();	
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:UserManager method: getJS() error:"+e.getMessage()+" sql:"+sql);
			return "";
		}	
		return value;	
	}
/**
	public String getFloatType(String url){
		String floatType="blue";
		try{
			sql="select floattype from site where domain=\""+url+"\"";
			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())
				floatType=rs.getString("floattype");			 
 			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();				
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:UserManager method: getFloatType() error:"+e.getMessage()+" sql:"+sql);
			return "";
		}	
		return floatType;	 
	}
	public String getGuokeType(String url){
		String guokeType="1";
		try{
			sql="select guoke from site where domain=\""+url+"\"";
			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())
				guokeType=rs.getString("guoke");			 
 			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();				
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:UserManager method: getGuokeType() error:"+e.getMessage()+" sql:"+sql);
			return "";
		}	
		return guokeType;	 
	}
	public String getGuokeAdvert(String url){
		String adGuoke=null;
		try{
			sql="select adGuoke from site where domain=\""+url+"\"";
			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())
				adGuoke=rs.getString("adGuoke");			 
 			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();				
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:UserManager method: getGuokeAdvert() error:"+e.getMessage()+" sql:"+sql);
			return null;
		}	
		return adGuoke;	 
	}
	 
	public String getTalkAdvert(String url){
		String adTalk=null;
		try{
			sql="select adTalk from site where domain=\""+url+"\"";
			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())
				adTalk=rs.getString("adTalk");			 
 			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();				
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:UserManager method: getTalkAdvert() error:"+e.getMessage()+" sql:"+sql);
			return null;
		}	
		return adTalk;	 
	}
**/
	/**
	  *访问者进入对话窗前获取最空闲的客服人员id	
	  *调用者:webTalkWindow.jsp
	  *@param url 网站域名
	 *@return String 返回最空闲的客服人员id
	  */
	public String getFreeKefuId(String url){
		String id=null;
		try{
			/**
			String domainId="";
			sql="select domainid from site where domain=\""+url+"\"";
			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");
			**/		
			sql="select distinct id,state from user,site "+
			    "where site.domainIds=user.domainId and domain=\""+url+"\"";
			if(db==null) db=new msg.DbConn();if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);
			rs=db.getResult();		
			String adminId=null;		
			while(rs!=null && rs.next()){
				if(rs.getString("id").indexOf("admin@")==0)
					adminId=rs.getString("id");
				if(rs.getString("state").equals("ONLINE")){
					id=rs.getString("id");	
					break;
				}				
			}	
			if(id==null)
				id=adminId;	 
 			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();				
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:UserManager method: getFreeKefuId() error:"+e.getMessage()+" sql:"+sql)

⌨️ 快捷键说明

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