067115f998cc144e0e1b2d2ce78262995d401e0f.svn-base 6.1 KB
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page import="com.espeed.reading.util.*"%>
<%@ page import="java.util.Date"%>
<%@ page import="java.util.List"%>
<%@ page import="java.text.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>判断收件人是否读过某信</title>
</head>
<%
    String clientIP = request.getHeader("x-forwarded-for"); 
    if(clientIP == null || clientIP.length() == 0) { 
        clientIP = request.getHeader("Proxy-Client-IP"); 
    } 
    if(clientIP == null || clientIP.length() == 0) { 
        clientIP = request.getHeader("WL-Proxy-Client-IP"); 
    } 
    if(clientIP == null || clientIP.length() == 0) { 
        clientIP = request.getRemoteAddr(); 
    } 
	if(clientIP == null || clientIP.equals("")){
		clientIP="unknown";
	}
	//当前时间
	SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	String lastDate=sdf.format(new Date());
%>
<body>
<%
System.out.println("远程点读服务启动.......");
 String to=request.getParameter("to");//点读地址
 String mailuid=request.getParameter("mailuid");//邮件唯一码
 String loginid=request.getParameter("loginid");//用户账号
 String domain=request.getParameter("domain");//用户域名
 String useragent=request.getHeader("User-Agent");
	boolean isReadNum=false;//是否是新的点读人
 	//链接数据库
  	Connection con=null;
  	PreparedStatement ps=null;
  	Statement stmt=null;
  	ResultSet rs=null;
  	try{
  		if(to!=null&&!"".equals(to)&&
  			mailuid!=null&&!"".equals(mailuid)&&
  			loginid!=null&&!"".equals(loginid)&&
  			domain!=null&&!"".equals(domain)){
  			System.out.println(to+","+mailuid+","+loginid+","+domain+","+useragent);
	  		con=DBUtil.getConnection();
	  		String insertSql="insert into yxy_singreadinfo (mail_uid,mail_loginid,mail_domain,mail_readIP,mail_readDate,mail_read_email,mail_readnum,mail_isupdate,mail_useragent) values(?,?,?,?,?,?,?,?,?)"; 	 	
			ps=con.prepareStatement(insertSql);
			ps.setString(1, mailuid);
			ps.setString(2, loginid);
			ps.setString(3, domain);
			ps.setString(4, clientIP);
			ps.setString(5, lastDate);
			ps.setString(6, to);
			ps.setInt(7, 1);
			ps.setInt(8, 0);
			ps.setString(9, useragent);
			ps.executeUpdate();
			
			con.commit();
  		}
  		/**
  		//查询同一个mailUID与同地址只插入一条累加某地址的点读量
 		String findsql="select mail_read_email,mail_readnum from yxy_singreadinfo where mail_uid='"+mailuid+"' and mail_read_email='"+to+"'";
  		stmt=con.createStatement();
		rs=stmt.executeQuery(findsql);
		int readNum=0;
		while(rs.next()){
			isReadNum=true;
			readNum=rs.getInt("mail_readnum")+1;
			break;
		}
		//判断如果点读数大于10次则不做任务处理
		if(readNum<=10){
			//判断是否有此记录,是新记录就插入一条
			if(!isReadNum){
				//1.插入点读记录
	  			String insertSql="insert into yxy_singreadinfo (mail_uid,mail_loginid,mail_domain,mail_readIP,mail_readDate,mail_read_email,mail_readnum,mail_isupdate,mail_useragent) values(?,?,?,?,?,?,?,?,?)"; 	 	
				ps=con.prepareStatement(insertSql);
				ps.setString(1, mailuid);
				ps.setString(2, loginid);
				ps.setString(3, domain);
				ps.setString(4, clientIP);
				ps.setString(5, lastDate);
				ps.setString(6, to);
				ps.setInt(7, 1);
				ps.setInt(8, 0);
				ps.setString(9, useragent);
				ps.executeUpdate();		
			}else{
				String updatesql="update yxy_singreadinfo set mail_readnum=?, mail_readDate=? , mail_readIP=? ,mail_isupdate=0,mail_useragent=? where mail_uid=? and mail_read_email=?";
				ps=con.prepareStatement(updatesql);
				ps.setInt(1,readNum);
				ps.setString(2,lastDate);
				ps.setString(3,clientIP);
				ps.setString(4,useragent);
				ps.setString(5,mailuid);
				ps.setString(6,to);
				ps.executeUpdate();		
			}
		}
		*/
  	}catch(Exception e){
  		e.printStackTrace();
  	}finally{
  		DBUtil.close(rs,ps,con);
  	}
  	
  	try{
  		request.setAttribute("ywxType", 0);
  	
  		TrackUtil.recordOriginalMailInfo(request, response);
  	} catch(Exception e) {
  		e.printStackTrace();
  		LogUtil.saveInfoLog("clickesemail.jsp",
					e);
  	}
  	
  	
  	WebmailDBUtil.updateAutoTaskMailClick(mailuid, to);
  //2.统计总数
  	/**try{
  	con=DBUtil.getInstance().getConnection();
	//2.1查询是否存在此mailuid的邮件统计数
	String findSql="select * from yxy_reading_count where reading_count_mailuid='"+mailuid+"'";  
	stmt=con.createStatement();
	rs=stmt.executeQuery(findSql);
	
	int isexites=0;//是否存在
	String exitsmailuid="";//存在的UID
	int exitstol=0;//存在的总点读数
	int exitsperson=0;//存在的总点读人数
	
	while(rs.next()){
		isexites++;
		exitsmailuid=rs.getString("reading_count_mailuid");
		exitstol=rs.getInt("reading_count_tol");
		exitsperson=rs.getInt("reading_count_person");
		break;
	}
	
	if(isexites==0){//没有此记录
		//插入该记录
		String insertSql001="insert into yxy_reading_count (reading_count_mailuid,reading_count_loginid,reading_count_domain,reading_count_tol,reading_count_person,reading_count_date) values(?,?,?,?,?,?)"; 		 
		ps=con.prepareStatement(insertSql001);
		ps.setString(1, mailuid);
		ps.setString(2, loginid);
		ps.setString(3, domain);
		ps.setInt(4, 1);
		ps.setInt(5, 1);
		ps.setString(6, lastDate);
		ps.executeUpdate();		
		ps.close();
		con.close();
		
	}else{//存在此记录	
		if(isReadNum==0){
			exitsperson=exitsperson+1;
		}
		//修改此记录
		String updatesql="update yxy_reading_count set reading_count_tol=?,reading_count_person=?,reading_count_date=? where reading_count_mailuid=?";
		ps=con.prepareStatement(updatesql);
		ps.setInt(1, exitstol+1);
		ps.setInt(2, exitsperson);
		ps.setString(3, exitsmailuid);
		ps.setString(4, lastDate);
		ps.executeUpdate();		
		ps.close();
		con.close();
	}
  	
  	}catch(Exception e){
  		e.printStackTrace();
  	}finally{
  		DBUtil.getInstance().close(rs,ps,con);
  	}*/
  	System.out.println("远程点读服务结束.......");
%>
</body>
</html>