YxyUnsubscribeInfoAction.java 10.7 KB
package com.espeed.action;

import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import com.espeed.centre.pojo.YxyUserInfo;
import com.espeed.log.LogClass;
import com.espeed.pojo.YxyUnsubscribeInfo;
import com.espeed.service.YxyUnsubscribeInfoService;
import com.espeed.vo.PageBean;
import com.opensymphony.xwork2.ActionContext;
/**
 * 程序名称:    	EspeedMail_时速邮箱
 * 程序版本:    	V1.0
 * 作    者:    	深圳市科飞时速网络技术有限公司(0755-88843776)
 * 版权所有:    	深圳市科飞时速网络技术有限公司
 * 技术支持:    	Tech@21gmail.com
 * 单元名称:     退订action(营销游)
 * 开始时间:    	2013.12.09
 * 程 序 员:    	谢勇
 * 最后修改:    
 * 备    注:		退订地址管理(营销)    
 */
public class YxyUnsubscribeInfoAction extends BaseAction{
	private static final long serialVersionUID = 1L;

	/**条件查询用户退订地址(分页)*/
	public String findUnCondition(){
		try {
			//获取用户session
			ActionContext ac = ActionContext.getContext();
			Map<String,Object> sess = ac.getSession();			
			YxyUserInfo user=(YxyUserInfo) sess.get("yxyuser");
			loginid=user.getLogin_id();//用户账号
			domain=user.getDomain();//用户所属域名
			pagebean.setCurrentPage(currpage);
			pagebean.setPageSize(pagesize);//每页条数
			unlist=yxyunsubscribeinfoservice.findUnCondition(loginid, domain,pagebean,condition,conditionvalue);
		} catch (Exception e) {
			StringWriter sw = new StringWriter();
			e.printStackTrace(new PrintWriter(sw, true));
	        String str = sw.toString();
	        LogClass.errolog(str,loginid+"@"+domain);
		}
		return "list";
	}
	
	/**删除退订地址*/
	public String delUnsubscribe(){
		try {
			//获取用户session
			ActionContext ac = ActionContext.getContext();
			Map<String,Object> sess = ac.getSession();			
			YxyUserInfo user=(YxyUserInfo) sess.get("yxyuser");
			loginid=user.getLogin_id();//用户账号
			domain=user.getDomain();//用户所属域名
			yxyunsubscribeinfoservice.delUnsubscribe(unidstr);
			result=1;
		} catch (Exception e) {
			result=0;
			StringWriter sw = new StringWriter();
			e.printStackTrace(new PrintWriter(sw, true));
	        String str = sw.toString();
	        LogClass.errolog(str,loginid+"@"+domain);
		}
		return SUCCESS;
	}
	
	/**添加退订地址*/
	public String addUnsubscribe(){
		try {
			//获取用户session
			ActionContext ac = ActionContext.getContext();
			Map<String,Object> sess = ac.getSession();			
			YxyUserInfo user=(YxyUserInfo) sess.get("yxyuser");
			loginid=user.getLogin_id();//用户账号
			domain=user.getDomain();//用户所属域名
			//时间定义
			SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			String nowdate=df.format(new Date());
			int isexits = yxyunsubscribeinfoservice.findisexits(loginid, domain, unemail);
			if(isexits != 0 ){
				YxyUnsubscribeInfo o=new YxyUnsubscribeInfo();
				o.setUnsubscribe_loginid(loginid);
				o.setUnsubscribe_domain(domain);
				o.setUnsubscribe_email(unemail);
				o.setUnsubscribe_body(unbody);
				o.setUnsubscribe_date(nowdate);
				o.setUnsubscribe_mail_uid("0");
				//o.setUnsubscribe_issys(1);
				yxyunsubscribeinfoservice.addUnsubscribe(o);
				result=1;
			}else{
				result = -1;
			}
		} catch (Exception e) {
			result=0;
			StringWriter sw = new StringWriter();
			e.printStackTrace(new PrintWriter(sw, true));
	        String str = sw.toString();
	        LogClass.errolog(str,loginid+"@"+domain);
		}
		return SUCCESS;
	}
	
	/**编辑退订地址*/
	public String updateUnsubscribe(){
		try {
			//获取用户session
			ActionContext ac = ActionContext.getContext();
			Map<String,Object> sess = ac.getSession();			
			YxyUserInfo user=(YxyUserInfo) sess.get("yxyuser");
			loginid=user.getLogin_id();//用户账号
			domain=user.getDomain();//用户所属域名
			YxyUnsubscribeInfo o=new YxyUnsubscribeInfo();
			o.setUnsubscribe_id(unid);
			o.setUnsubscribe_loginid(loginid);
			o.setUnsubscribe_domain(domain);
			o.setUnsubscribe_email(unemail);
			o.setUnsubscribe_body(unbody);
			yxyunsubscribeinfoservice.updateUnsubscribe(o);
			result=1;
		} catch (Exception e) {
			result=0;
			StringWriter sw = new StringWriter();
			e.printStackTrace(new PrintWriter(sw, true));
	        String str = sw.toString();
	        LogClass.errolog(str,loginid+"@"+domain);
		}
		return SUCCESS;
	}
	
	/**根据邮件UID查询退订地址*/
	public String findUnByUID(){
		try {
			//获取用户session
			ActionContext ac = ActionContext.getContext();
			Map<String,Object> sess = ac.getSession();			
			YxyUserInfo user=(YxyUserInfo) sess.get("yxyuser");
			loginid=user.getLogin_id();//用户账号
			domain=user.getDomain();//用户所属域名
			unlist=yxyunsubscribeinfoservice.findUnByUID(loginid, domain, mailuid);
		} catch (Exception e) {
			StringWriter sw = new StringWriter();
			e.printStackTrace(new PrintWriter(sw, true));
	        String str = sw.toString();
	        LogClass.errolog(str,loginid+"@"+domain);
		}
		return "list";
	}
	
	/**导出退订地址*/
	public String exportAddress(){
		try{
			//获取用户session
			ActionContext ac = ActionContext.getContext();
			Map<String,Object> sess = ac.getSession();	
			YxyUserInfo user=(YxyUserInfo) sess.get("yxyuser");
			loginid=user.getLogin_id();//用户账号
			domain=user.getDomain();//用户所属域名
			//用户所有退订地址信息
			unlist = yxyunsubscribeinfoservice.findAllUnInfo(loginid, domain);
			
			if(unlist.size() > 0){
				
				//获取项目路径
				String pathew = this.getClass().getClassLoader().getResource("/").getPath();
				pathew = pathew.substring(1, pathew.length());
				pathew = pathew.replace("/WEB-INF/classes/","");
				String dir=pathew+"\\tempUserFile\\"+domain+"\\"+loginid;
				
				//生成文件
				File file=new File(dir);
				file.mkdirs();
				HSSFWorkbook workbook = new HSSFWorkbook();
				HSSFSheet sheet = workbook.createSheet("ExportEmail");//在Excel工作簿中建一工作表
				HSSFCell cell = null;//创建列
				HSSFRow row = null;//创建行
				row = sheet.createRow((short) 0);
				//加入文件头
				String [] str={"退订地址","退订时间","退订理由"};
				
				for(int begin = 0; begin < str.length; begin++){
					cell = row.createCell((short) begin);
					cell.setEncoding(HSSFCell.ENCODING_UTF_16);//如果内容有中文件,则要设置这里
					cell.setCellType(HSSFCell.CELL_TYPE_STRING);// 定义单元格为字符串类型
					cell.setCellValue(str[begin]);
				}
				
				//加入详细信息
				for(int i=0 ; i < unlist.size(); i++){
					row = sheet.createRow((short) i+1);
					
					for(int j = 0; j < 3; j++) 
					{
					  cell = row.createCell((short) j);//创建列
					  
					  cell.setEncoding(HSSFCell.ENCODING_UTF_16);//如果内容有中文件,则要设置这里
					  
					  cell.setCellType(HSSFCell.CELL_TYPE_STRING);// 定义单元格为字符串类型
					  
					  //在单元格中输入一些内容
					  if(j==0)
					  {
					      cell.setCellValue(unlist.get(i).getUnsubscribe_email());
					  }
					  else if(j==1)
					  {
						  cell.setCellValue(unlist.get(i).getUnsubscribe_date());
					  }
					  else if(j==2)
					  {
						  cell.setCellValue(unlist.get(i).getUnsubscribe_body());
					  }
					}  
				}
				
				// 新建一输出文件流
				FileOutputStream fOut = new FileOutputStream(dir+"\\unsubscribe.xls");
				workbook.write(fOut);
				fOut.flush();
				fOut.close();
				result=1; //导出成功
			}else{
				result =0; //无退订地址
			}
		}catch(Exception e){
			result =-1; //出现异常
			StringWriter sw = new StringWriter();
			e.printStackTrace(new PrintWriter(sw, true));
	        String str = sw.toString();
	        LogClass.errolog(str,loginid+"@"+domain);
		}
		return SUCCESS;
	}
	
	private YxyUnsubscribeInfoService yxyunsubscribeinfoservice;//退订service
	private List<YxyUnsubscribeInfo> unlist;//退订集合
	private YxyUnsubscribeInfo uninfo;
	private PageBean pagebean;
	private String unemail;//退订地址
	private int currpage;//当前页
	private int result;
	private int unid;//退订地址ID
	private String unidstr;//退订地址ID多个
	private int pagesize;
	private String unbody;//退订理由
	private String mailuid;//邮件唯一码
	private String loginid="erro";//用户
	private String domain="erro";//域名
	private int condition;//条件
	private String conditionvalue;//条件值
	public YxyUnsubscribeInfoService getYxyunsubscribeinfoservice() {
		return yxyunsubscribeinfoservice;
	}
	public void setYxyunsubscribeinfoservice(
			YxyUnsubscribeInfoService yxyunsubscribeinfoservice) {
		this.yxyunsubscribeinfoservice = yxyunsubscribeinfoservice;
	}
	public List<YxyUnsubscribeInfo> getUnlist() {
		return unlist;
	}
	public void setUnlist(List<YxyUnsubscribeInfo> unlist) {
		this.unlist = unlist;
	}
	public int getUnid() {
		return unid;
	}
	public void setUnid(int unid) {
		this.unid = unid;
	}
	public String getLoginid() {
		return loginid;
	}
	public void setLoginid(String loginid) {
		this.loginid = loginid;
	}
	public String getDomain() {
		return domain;
	}
	public void setDomain(String domain) {
		this.domain = domain;
	}
	public int getPagesize() {
		return pagesize;
	}
	public void setPagesize(int pagesize) {
		this.pagesize = pagesize;
	}
	public int getCurrpage() {
		return currpage;
	}
	public void setCurrpage(int currpage) {
		this.currpage = currpage;
	}
	public int getCondition() {
		return condition;
	}
	public void setCondition(int condition) {
		this.condition = condition;
	}
	public String getConditionvalue() {
		return conditionvalue;
	}
	public void setConditionvalue(String conditionvalue) {
		this.conditionvalue = conditionvalue;
	}
	public PageBean getPagebean() {
		return pagebean;
	}
	public void setPagebean(PageBean pagebean) {
		this.pagebean = pagebean;
	}
	public YxyUnsubscribeInfo getUninfo() {
		return uninfo;
	}
	public void setUninfo(YxyUnsubscribeInfo uninfo) {
		this.uninfo = uninfo;
	}
	public int getResult() {
		return result;
	}
	public void setResult(int result) {
		this.result = result;
	}
	public String getUnidstr() {
		return unidstr;
	}
	public void setUnidstr(String unidstr) {
		this.unidstr = unidstr;
	}
	public String getUnemail() {
		return unemail;
	}
	public void setUnemail(String unemail) {
		this.unemail = unemail;
	}
	public String getUnbody() {
		return unbody;
	}
	public void setUnbody(String unbody) {
		this.unbody = unbody;
	}
	public String getMailuid() {
		return mailuid;
	}
	public void setMailuid(String mailuid) {
		this.mailuid = mailuid;
	}
}