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

📄 emailaction.java

📁 基于J2EE的办公自动化系统。实现流程定义流程办理等。运用了hibernate+struts+spring框架综合运用的系统。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.oa.module.email.action;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.lang.reflect.InvocationTargetException;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.apache.struts.upload.FormFile;

import com.oa.module.email.bean.ReceiveLetterBean;
import com.oa.module.email.blacklist.mapping.Tblacklist;
import com.oa.module.email.company.Tcompany;
import com.oa.module.email.company.TcompanyDao;
import com.oa.module.email.dao.IEmailDao;
import com.oa.module.email.form.EmailForm;
import com.oa.module.email.fujian.mapping.Tfujian;
import com.oa.module.email.mapping.Tmailinfo;
import com.oa.module.office.user.Tuser;
import com.oa.util.PubUtil;
import com.oa.util.XPage;

/**
 * 邮件处理ACtion
 * @author admin
 *
 */
public class EmailAction extends DispatchAction {

	// --------------------------------------------------------- Instance
	// Variables
	private IEmailDao emaildao;
	// --------------------------------------------------------- Methods

	/**
	 * Method execute
	 * 收件箱
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward receiveBox(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		EmailForm emailForm = (EmailForm) form;
		
		String cpage = request.getParameter("currentPage");
		int currentPage = 0;
		try {
			currentPage = Integer.parseInt(cpage);
		} catch (Exception e) {
			currentPage = 1;
		}
		int count = 10;
		ReceiveLetterBean bean = new ReceiveLetterBean();
		try {
			BeanUtils.copyProperties(bean, emailForm);
			HttpSession session = request.getSession();
			Tuser user =  (Tuser)session.getAttribute("user");
			bean.setReceiveid(user.getUno());
			
		} catch (IllegalAccessException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		
		XPage page = emaildao.getEmailList(currentPage, count, bean);
		request.setAttribute("letterpage", page);
		return mapping.findForward("letterList");

	}
	
	/**
	 * 写信
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 */
	public ActionForward writeEmail(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		EmailForm emailForm = (EmailForm) form;
				
		if(emailForm.getSendid()!=null){
			
			String[] check=emailForm.getCheckeduserList();
			check[0] = check[0]+","+ emailForm.getSendid();
			emailForm.setCheckeduserList(check);
			System.out.println(check[0]);
		}
		TcompanyDao dao = new TcompanyDao();
		
		Tcompany company = dao.getCompany();
		request.setAttribute("company",company);
		return mapping.findForward("writeEmail");
	}
	
	
	
	/**
	 * 发信
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 */
	public ActionForward sendEmail(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		EmailForm emailForm = (EmailForm) form;
		emailForm.setIsfujian("0");
		String[] checked = emailForm.getCheckeduserList();
		
		Tmailinfo mail = null;
		boolean flag = false;
		boolean xxxx = false;
		boolean temps = false;
		Set set = new HashSet();
		for (int i = 0; i < checked.length; i++) {
			
		
			
			int temp = checked[i].indexOf(",");			
			String username = checked[i].substring(0,temp);
			String uno = checked[i].substring(temp+1,checked[i].length());
			
			if(username!=null && uno!=null){
				emailForm.setReceiveid(uno);
				emailForm.setReceivename(username);
			}else{
				continue;
			}
			emailForm.setSendtime(PubUtil.getNowDate());
			
			HttpSession session = request.getSession();
			Tuser user = (Tuser)session.getAttribute("user");
			emailForm.setSendid(user.getUno());
			emailForm.setSendname(user.getUname());
			
			emailForm.setEmailtype("0");
			//对方是否把邮件放入黑名单
			List list = emaildao.getBlackListById(uno);			
			for (Iterator iter = list.iterator(); iter.hasNext();) {
				Tblacklist element = (Tblacklist) iter.next();
				/*
				 *这里换成登录用户 
				 */
				if(element.getBlackuserid().equals("1")){
					emailForm.setEmailtype("3");
					break;
				}
				
				
			}
			
			
			mail = new Tmailinfo(); 
			
			try {
				BeanUtils.copyProperties(mail , emailForm);	
				
					//上传文件
				Hashtable fileh = emailForm.getMultipartRequestHandler().getFileElements();
				
				//判断每个文件的大小
					for (Enumeration e = fileh.keys(); e.hasMoreElements();) {
						String key = (String) e.nextElement();					
						FormFile file = (FormFile) fileh.get(key);
						if(file.getFileSize()>5*1024*1024){
							PrintWriter out = response.getWriter();
							out.print("<script>");
							out.print("alert('上传文件不能超过5M');");
							out.print("history.back();");
							out.print("</script>");
							return null;
						}					
					}
					
					//
					for (Enumeration e = fileh.keys(); e.hasMoreElements();) {							
						String key = (String) e.nextElement();					
						FormFile file = (FormFile) fileh.get(key);
						String filename = file.getFileName().trim(); // 文件名
						
						if(filename!= null && !(filename.equals("")) ){
							String extendname = filename.substring(filename.lastIndexOf('.'), filename.length()-1);
							
							String realpath = request.getSession().getServletContext()
							.getRealPath("");
							
							realpath = realpath.replace('\\', '/');
							
							String filepath = "/upload/emailfile";  ;
							
							String newFile = realpath  + filepath+"/"+filename;
															
							Tfujian fuj = new Tfujian();
							fuj.setFilename(filename);
							fuj.setFilepath(filepath);
								
							fuj.setMail(mail);
							mail.getFujian().add(fuj);
							mail.setIsfujian("1");
							if(temps==false)
								set.add(fuj);
							
							emailForm.setIsfujian("1");
							
							xxxx = true;
							
											
							InputStream input = file.getInputStream();
							OutputStream output = new FileOutputStream(newFile);
							byte[] b = new byte[1024];
							int j = 0;
							while ((j = input.read(b, 0, b.length)) != -1) {
								output.write(b, 0, j);
							}
							output.flush();
							output.close();
							input.close();	
						}						
					}
										
					temps = true;
			} catch (IllegalAccessException e) {
				// TODO 自动生成 catch 块
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				// TODO 自动生成 catch 块
				e.printStackTrace();
			} catch (IOException e) {
				// TODO 自动生成 catch 块
				e.printStackTrace();
			}		
			emaildao.addEamil(mail);
			
		}
		
		
		
		//保存发送记录
		String checkedusername="";
		String checkeduserid = "";
		for(int i=0; i<checked.length; i++){
			int temp = checked[i].indexOf(",");
			String username = checked[i].substring(0,temp);
			String uno = checked[i].substring(temp+1,checked[i].length());
			
			checkedusername += username+",";
			checkeduserid += uno+",";
			
			
		}
		
		checkedusername = checkedusername.substring(0, checkedusername.length()-1);
		checkeduserid = checkeduserid.substring(0, checkeduserid.length()-1);
		
		mail = new Tmailinfo();
		
		try {
			BeanUtils.copyProperties(mail, emailForm);
			mail.setReceiveid(checkeduserid);
			mail.setReceivename(checkedusername);
			
			mail.setEmailtype("2");
			if(xxxx==true){
				mail.setIsfujian("1");				
			}
			
		} catch (IllegalAccessException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		
		for (Iterator iter = set.iterator(); iter.hasNext();) {
			Tfujian element = (Tfujian) iter.next();
			Tfujian ss = new Tfujian();
			
			ss.setFilename(element.getFilename());
			ss.setFilepath(element.getFilepath());
			
			mail.getFujian().add(ss);
			ss.setMail(mail);
		}	
		
		
		
		flag = emaildao.addEamil(mail);
		
		if(flag ==true){
			//成功
			request.setAttribute("task","sendsuc");
			return mapping.findForward("suc");
		}else{
			request.setAttribute("task","senderror");
			return mapping.findForward("error");
		}
		
	}
	
	
	/**
	 * 转发给其他用户
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 */
	public ActionForward sendToOther(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		EmailForm emailForm = (EmailForm) form;
		
		
		Tmailinfo info = emaildao.getEmailByEmailid(emailForm.getEmailid());
		String[] sendUser = emailForm.getSenduser();
		String id = "";
		String name="";
		
		boolean flag = false;
		for(int i = 0 ; i < sendUser.length; i++){
			int j = sendUser[i].indexOf(",");
			id = sendUser[i].substring(0, j);
			name = sendUser[i].substring(j+1,sendUser[i].length());
		
			info.setReceiveid(id);
			info.setReceivename(name);
			flag = emaildao.addEamil(info);
		}
		
		if(flag ==true){
			//成功
			request.setAttribute("task","sendtoorhersuc");
			return mapping.findForward("suc");
		}else{
			request.setAttribute("task","sendtoothererror");
			return mapping.findForward("error");
		}
		
	}
	/**
	 * 读取信件
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 */
	public ActionForward readEmail(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		EmailForm emailForm = (EmailForm) form;
		emailForm.setEmailtype("0");
		Tmailinfo mail  = emaildao.getEmailByEmailid(emailForm.getEmailid());		
		
		//如果邮件是未读的,则修改状态
		if(emailForm.getIsread().equals("0")){
			boolean flag = emaildao.UpdateEmail(emailForm, 0);
			if(flag==false)
				System.out.println("修改email状态出错");
		}
		
		try {
			BeanUtils.copyProperties(emailForm, mail);
		} catch (IllegalAccessException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		
		/**
		 * 获取登陆用户
		 */
		HttpSession session = request.getSession();
		Tuser user = (Tuser)session.getAttribute("user");
		String id = user.getUno();
		
		/*String id = "1";*/
		List list = emaildao.getUserList(id);
		request.setAttribute("userList", list);
		
		return mapping.findForward("readEmail");
	}
	
	/**
	 * 读取草稿
	 */
	
	public ActionForward readEmailCaoGao(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		EmailForm emailForm = (EmailForm) form;
		
		Tmailinfo mail  = emaildao.getEmailByEmailid(emailForm.getEmailid());		
		
		try {
			BeanUtils.copyProperties(emailForm, mail);
		} catch (IllegalAccessException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
	
		return mapping.findForward("readEmailcaogao");
	}

	
	
	
	/**
	 * 存草稿
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 */
	public ActionForward saveletter(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		EmailForm emailForm = (EmailForm) form;
		emailForm.setEmailtype("1");
		emailForm.setSendtime(PubUtil.getNowDate());		

⌨️ 快捷键说明

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