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

📄 msgmanager.java

📁 淘客在线客服管理系统(TaokeOCS V3.2)
💻 JAVA
📖 第 1 页 / 共 3 页
字号:

package msg;
import msg.*;
import java.io.*;
import java.util.*;
import java.lang.*;
import java.sql.*;
public class MsgManager{
	String sql="";
	ResultSet rs=null;
    DbConn db=null;
	public MsgManager(){
		try{
			db=new msg.DbConn();
		}catch(Exception e){}
	}
	/**
	  *以XML方式将message内容打包成字符串
	  *调用者:msgManager.jsp (客户端和访问者读取短信息 a=1 a=10 a=11)
	  *@param messages 短信息组
	  *@return String 短信息字符串
	  */	 
	public String readMsgInXml(Message[] messages){	
		//Message[] messages=readMsg(toId);
		String msgToBeSent="<xml id=\"messages\"><?xml version=\"1.0\" encoding=\"utf-8\" ?>";
		 
		for(int i=0;messages!=null && i<messages.length;i++){		
			if(messages[i].getType().equals("ONPAGEINIT") || messages[i].getType().equals("ONPAGE")||
			   messages[i].getType().equals("SETNOTE"))
				msgToBeSent +="<M id=\""+messages[i].getId()+"\" tp=\""+messages[i].getType()+"\" f=\""+messages[i].getFromId()+
				          	"\" t=\""+messages[i].getToId()+"\" m=\"\" tm=\""+messages[i].getSendTime()+
						  	"\" rm=\""+messages[i].getReadTime()+"\" s=\""+messages[i].isRead()+"\"/> "+messages[i].getContent();	 
			else
				msgToBeSent +="<M id=\""+messages[i].getId()+"\" tp=\""+messages[i].getType()+"\" f=\""+messages[i].getFromId()+
				          "\" t=\""+messages[i].getToId()+"\" m=\""+messages[i].getContent()+"\" tm=\""+messages[i].getSendTime()+
						  "\" rm=\""+messages[i].getReadTime()+"\" s=\""+messages[i].isRead()+"\"/>"; 
		}		 
		msgToBeSent +="</xml>";
		return msgToBeSent;	
	}
	/**
	  *以XML方式读取短信 message内容被放在变量m中发送
	  *调用者:
	  *@param messages 短信息组
	  *@return String 短信息字符串
	  */	 
	public String readMsgInXml0(Message[] messages){	
		//Message[] messages=readMsg(toId);
		String msgToBeSent="<xml id=\"messages\"><?xml version=\"1.0\" encoding=\"utf-8\" ?>";
		 
		for(int i=0;messages!=null && i<messages.length;i++){				 
			msgToBeSent +="<M id=\""+messages[i].getId()+"\" tp=\""+messages[i].getType()+"\" f=\""+messages[i].getFromId()+
				          "\" t=\""+messages[i].getToId()+"\" m=\""+messages[i].getContent()+"\" tm=\""+messages[i].getSendTime()+
						  "\" rm=\""+messages[i].getReadTime()+"\" s=\""+messages[i].isRead()+"\"/>"; 
		}		 
		msgToBeSent +="</xml>";
		return msgToBeSent;	
	}
	
	/**
	  *以XML方式读取短信 message内容被放在变量m中发送,整个xml被放在一个变量xyz中,然后调用ProcessMsg(xyz)	 
	  *调用者:msgManager.jsp (该方法被浏览者浮动窗读取短信时调用 a=3)
	  *@param messages 短信息组
	  *@return String 短信息字符串
	  */	 
	public String readMsgInXml1(Message[] messages){	
		//Message[] messages=readMsg(toId);
		String msgToBeSent="xyz=\"<xml id=\\\'messages\\\'><?xml version=\\\'1.0\\\' encoding=\\\'utf-8\\\' ?>";
		 
		for(int i=0;messages!=null && i<messages.length;i++){				 
			msgToBeSent +="<M id=\\\'"+messages[i].getId()+"\\\' tp=\\\'"+messages[i].getType()+"\\\' f=\\\'"+
						  messages[i].getFromId()+"\\\' t=\\\'"+messages[i].getToId()+"\\\' m=\\\'"+
						  messages[i].getContent()+"\\\' tm=\\\'"+messages[i].getSendTime()+
						  "\\\' rm=\\\'"+messages[i].getReadTime()+"\\\' s=\\\'"+messages[i].isRead()+"\\\'/>"; 
		}		 
		msgToBeSent +="</xml>\";ProcessMsg(xyz);";
		return msgToBeSent;	
	}	
	/**
	  *从数据库读取还没有读过的短信息,生成短信息组
	  *调用者:msgManager.jsp(a=1客户端读取短信  a=10时为客户端读取短信 a=3时为浏览者浮动窗口读取短信)
	  *@param toId 访问者或客户端id
	  *@return 返回短信息组
	  */	 
	public Message[] readMsg(String toId){
		Message[] messages=null;
		try{
			sql="select * from message where toId=\""+toId+"\"  and isRead=\"0\" order by id";
			if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);
			rs=db.getResult();
			if(rs!=null && rs.last()){
				messages=new Message[rs.getRow()];
				rs.beforeFirst();
			}				
			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));	
				
			for(int i=0;messages!=null &&i<messages.length && rs!=null && rs.next();i++){  
			//Message(String id,String fromId,String toId,String content,String sendTime,String readTime,String type,boolean read)
				 messages[i]=new Message(rs.getString("id"),rs.getString("fromId"),rs.getString("toId"),rs.getString("content"),
								 rs.getString("sendTime"),nowStr,rs.getString("type"),rs.getString("isRead"));			 		
			}		
 			//markMessageAsRead(messages); //
			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();	
			for(int i=0;messages!=null && i<messages.length;i++){
				if(messages[i].getType().equals("ONPAGEINIT") || messages[i].getType().equals("ONPAGE")||
			   		messages[i].getType().equals("SETNOTE")){ 
					if(i==0) 
						return new Message[]{messages[0]};
					else{
						Message[] theMessages=new Message[i];
						for(int j=0;j<i;j++)
							theMessages[j]=messages[j];
						messages=null;
						return theMessages;
					}
				}			 
			}
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:MsgManager method:readMsg() error:"+e.getMessage()+" sql:"+sql);
			return null;
		}			
		return messages; 
	}
	/**
	  *从数据库读取还没有读过的短信息(留言),生成短信息组
	  *调用者:client.jsp
	  *@param toId 客户端id
	  *@return 返回短信息组
	  */	 
	public Message[] readLeftMsg(String toId){
		Message[] messages=null;
		try{
			sql="select * from message where toId=\""+toId+"\"  and isRead=\"2\" order by id";
			if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);
			rs=db.getResult();
			if(rs!=null && rs.last()){
				messages=new Message[rs.getRow()];
				rs.beforeFirst();
			}				
			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));	
				
			for(int i=0;messages!=null &&i<messages.length && rs!=null && rs.next();i++){  
			//Message(String id,String fromId,String toId,String content,String sendTime,String readTime,String type,boolean read)
				 messages[i]=new Message(rs.getString("id"),rs.getString("fromId"),rs.getString("toId"),rs.getString("content"),
								 rs.getString("sendTime"),nowStr,rs.getString("type"),rs.getString("isRead"));			 		
			}				
			//markMessageAsRead(messages); //
			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();	
			//for(int i=0;messages!=null && i<messages.length;i++){
			//if(messages[i].getType().equals("ONPAGEINIT") || messages[i].getType().equals("ONPAGE")||
			//   messages[i].getType().equals("SETNOTE"))  
			//	return new Message[]{messages[i]};			 
			//}
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:MsgManager method:readLeftMsg() error:"+e.getMessage()+" sql:"+sql);
			return null;
		}	
		
		return messages; 
	}	
	/**
	  *读取短信	 
	  *调用者:msgManager.jsp (a=11浏览者对话窗口读取短信)
	  *@param toId 访问者id
	  *@param fromId 客户端或访问者id
	  *@return 返回短信息组
	  */		 
	public Message[] readMsg0(String toId,String fromId){
		Message[] messages=null;
		try{
			sql="select * from message where toId=\""+toId+"\" and (fromId=\""+fromId+"\" or type=\"SYSNOTIFY\") and isRead=\"0\" order by id";
			if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);
			rs=db.getResult();
			if(rs!=null && rs.last()){
				messages=new Message[rs.getRow()];
				rs.beforeFirst();
			}				
			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));	
				
			for(int i=0;messages!=null &&i<messages.length && rs!=null && rs.next();i++){  
			//Message(String id,String fromId,String toId,String content,String sendTime,String readTime,String type,boolean read)
				 messages[i]=new Message(rs.getString("id"),rs.getString("fromId"),rs.getString("toId"),rs.getString("content"),
								 rs.getString("sendTime"),nowStr,rs.getString("type"),rs.getString("isRead"));			 		
			}				
			//markMessageAsRead(messages); //
			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();	
			for(int i=0;messages!=null && i<messages.length;i++){
				if(messages[i].getType().equals("ONPAGEINIT") || messages[i].getType().equals("ONPAGE")||
			   		messages[i].getType().equals("SETNOTE")){ 
					if(i==0) 
						return new Message[]{messages[0]};
					else{
						Message[] theMessages=new Message[i];
						for(int j=0;j<i;j++)
							theMessages[j]=messages[j];
						messages=null;
						return theMessages;
					}
				}			 		 
			}
		}catch(Exception e){
			closeDbConnection();
			Log.log("Class:MsgManager method:readMsg0() error:"+e.getMessage()+" sql:"+sql);
			return null;
		}	
		
		return messages; 
	}	
	/**
	  *访问者读取所有本网站所有用户的状态信息	  
	  *调用者:msgManager.jsp (被浏览者浮动窗口调用 a=3)
	  *@param vid 访问者id	 
	  *@return 返回短信息组
	  */	 
	public Message[] readMsg1(String vid){
		Message[] messages=null;
		String domainId=new UserManager().getVisitorDomainId(vid);	
			Calendar now= Calendar.getInstance();
			now.setTimeInMillis(now.getTimeInMillis()-240000); 
			//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="select distinct id from user,site "+
		    "where site.domainIds=user.domainId and site.domainId=\""+domainId+
		    "\" and  lastTime>=\""+nowStr+"\""; 
 		try{		
			if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);
			rs=db.getResult();
			if(rs!=null && rs.last()){
				messages=new Message[rs.getRow()+1];
				rs.beforeFirst();
			}	
 			for(int i=0;messages!=null &&i<messages.length-1 && rs!=null && rs.next();i++){  
  				 messages[i]=new Message(rs.getString("id"),vid,rs.getString("state"),"STATECHANGE");			
 			}
			sql="select count(distinct id) as total from visitor,site "+
			    "where visitor.domainId=site.domainId and site.domainId=\""+domainId+
			    "\" and state<>\"OFFLINE\" and  lastTime>=\""+nowStr+"\""; 	
			if(db.getConnection()==null || db.isClosed())			 
				db.setConnection();  
			db.setSqlQuery(sql);
			rs=db.getResult();
			if(messages==null || messages.length==0)
				messages=new Message[1];
			if(rs!=null && rs.next())
				 messages[messages.length-1]=new Message("0",vid,rs.getString("total"),"NUMBEROFGUOKES");			
			else
				messages[messages.length-1]=new Message("0",vid,"1","NUMBEROFGUOKES");	
			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();		 
		}catch(Exception e){
			closeDbConnection();			 
			Log.log("Class:MsgManager method:readMsg1() error:"+e.getMessage()+" sql:"+sql);
			return null;
		}	
 		return messages; 
	}
	  
	/**
	  *标记短信为已读短信
	  *调用者: 
	  *@param messages 短信息组
	  */	
	public void markMessageAsRead(Message[] messages){
		if(messages==null)
			return;
		try{
			if(db.getConnection()==null || db.isClosed())			 
				db.setConnection(); 
			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));	
			for(int i=0;i<messages.length;i++){  
				if(messages[i]==null)
					continue;
				sql="update message set isRead=\"1\", readTime=\""+ nowStr+"\" where toId=\""+messages[i].getToId()+
					"\" and sendTime=\""+	messages[i].getSendTime()+"\""; 		
				db.setSqlQuery(sql);	
				db.executeUpdate();	
			}		
			if(db.getConnection()!=null && !db.isClosed())
				db.closeConnection();	
		}catch(Exception e){
			closeDbConnection();			 
			Log.log("Class:MsgManager method:markMessageAsRead(Message[]) error:"+e.getMessage()+" sql:"+sql);
		}
	}
	/**
	  *标记短信为已读短信
	  *调用者:msgManager.jsp(a=1客户端读取短信 a=11浏览者对话窗口读取短信 
	  *                       a=10时为客户端读取短信 a=3时为浏览者浮动窗口读取短信) 
	  *@param ids 多个短信息id
	  */	
	public void markMessageAsRead(String[] ids){
		if(ids==null)
			return;
		try{

⌨️ 快捷键说明

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