UnsubscribeAction.java 4.7 KB
package com.espeed.action;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.espeed.reading.util.DBUtil;
import com.opensymphony.xwork2.ActionSupport;
/**
 * 程序名称:    	EspeedMail_时速邮箱
 * 程序版本:    	V1.0
 * 作    者:    	深圳市科飞时速网络技术有限公司(0755-88843776)
 * 版权所有:    	深圳市科飞时速网络技术有限公司
 * 技术支持:    	Tech@21gmail.com
 * 单元名称:     退订(营销邮)
 * 开始时间:    	2013.10.22
 * 程 序 员:    	谢勇
 * 最后修改:    
 * 备    注:		如需修改请通知程序员    
 */
public class UnsubscribeAction extends ActionSupport{

	private static final long serialVersionUID = 1L;
	private  PreparedStatement ps=null;
	private  Connection con=null;
	private ResultSet rs;
	/**客户退订*/
	public String userUnsubscribe(){
		try {
			HttpServletRequest request = ServletActionContext.getRequest();
			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.length() == 0) {
				clientIP = "unknown";
			}
			SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			String nowdate=df.format(new Date());
			con=DBUtil.getConnection();
			//判断是否退订过
			String findsql="select * from yxy_unsubscribe_info where yxy_unsubscribe_loginid=? and yxy_unsubscribe_domain=? and yxy_unsubscribe_email=?";
			ps=con.prepareStatement(findsql);
			ps.setString(1, unsubscribeUserID);
			ps.setString(2, unsubscribeUserDomain);
			ps.setString(3, unsubscribeaddress);
			rs=ps.executeQuery();
			int isHave=0;
			while(rs.next()){
				isHave++;
				break;
			}
			if(isHave>=1){
				result="已退订过,无需在次退订!/has been canceled!";
				return SUCCESS;
			}
			//插入退订信息
			  String insertSql="insert into yxy_unsubscribe_info (yxy_unsubscribe_loginid,yxy_unsubscribe_domain,yxy_unsubscribe_mail_uid,yxy_unsubscribe_date,yxy_unsubscribe_body,yxy_unsubscribe_email,yxy_unsubscribe_ip,yxy_unsubscribe_agent) values(?,?,?,?,?,?,?,?)"; 
				 try {
					ps=con.prepareStatement(insertSql);
					ps.setString(1, unsubscribeUserID);
					ps.setString(2, unsubscribeUserDomain);
					ps.setString(3, unsubscribeMailUID);
					ps.setString(4, nowdate);
					ps.setString(5, unsubscribeBody);
					ps.setString(6, unsubscribeaddress);
					ps.setString(7, clientIP);
					ps.setString(8, request.getHeader("User-Agent"));
					ps.executeUpdate();
					
					con.commit();
					
					result="已退订!/has been canceled!";
				} catch (Exception e) {
					result="退订失败,请重试!/To unsubscribe from failed please try again!";
					e.printStackTrace();
				}
		} catch (Exception e) {
			result="退订失败,请重试!/To unsubscribe from failed please try again!";
			e.printStackTrace();
		}finally{
			try {
				ps.close();
				con.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return SUCCESS;
	}
	
	private String unsubscribeaddress;//退订地址
	private String unsubscribeUserID;//退订用户账号
	private String unsubscribeUserDomain;//退订所属域名
	private String unsubscribeMailUID;//退订邮件ID
	private String unsubscribeBody;//退订内容
	private String result;//返回信息
	public String getUnsubscribeaddress() {
		return unsubscribeaddress;
	}
	public void setUnsubscribeaddress(String unsubscribeaddress) {
		this.unsubscribeaddress = unsubscribeaddress;
	}
	public String getUnsubscribeUserID() {
		return unsubscribeUserID;
	}
	public void setUnsubscribeUserID(String unsubscribeUserID) {
		this.unsubscribeUserID = unsubscribeUserID;
	}
	public String getUnsubscribeMailUID() {
		return unsubscribeMailUID;
	}
	public void setUnsubscribeMailUID(String unsubscribeMailUID) {
		this.unsubscribeMailUID = unsubscribeMailUID;
	}
	public String getUnsubscribeBody() {
		return unsubscribeBody;
	}
	public void setUnsubscribeBody(String unsubscribeBody) {
		this.unsubscribeBody = unsubscribeBody;
	}
	public String getResult() {
		return result;
	}
	public void setResult(String result) {
		this.result = result;
	}
	public String getUnsubscribeUserDomain() {
		return unsubscribeUserDomain;
	}
	public void setUnsubscribeUserDomain(String unsubscribeUserDomain) {
		this.unsubscribeUserDomain = unsubscribeUserDomain;
	}
}