IEmailDaoImpl.java
上传用户:lm2018
上传日期:2015-12-12
资源大小:30449k
文件大小:8k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. package com.oa.module.email.dao;
  2. import java.util.Iterator;
  3. import java.util.List;
  4. import java.util.Set;
  5. import org.apache.commons.beanutils.BeanUtils;
  6. import org.hibernate.Query;
  7. import org.hibernate.Session;
  8. import org.hibernate.SessionFactory;
  9. import org.hibernate.Transaction;
  10. import com.oa.module.email.bean.ReceiveLetterBean;
  11. import com.oa.module.email.form.EmailForm;
  12. import com.oa.module.email.fujian.mapping.Tfujian;
  13. import com.oa.module.email.mapping.Tmailinfo;
  14. import com.oa.util.XPage;
  15. /**
  16.  * 邮件dao接口实现类
  17.  * @author admin
  18.  *
  19.  */
  20. public class IEmailDaoImpl implements IEmailDao {
  21. private SessionFactory sf;
  22. public SessionFactory getSf() {
  23. return sf;
  24. }
  25. public void setSf(SessionFactory sf) {
  26. this.sf = sf;
  27. }
  28. /**
  29.  * 获取邮件列表
  30.  * @param currentPage
  31.  * @param bean
  32.  */
  33. public XPage getEmailList(int currentPage, int count, ReceiveLetterBean bean) {
  34. XPage page = null;
  35. Session session = null;
  36. Query query = null;
  37. String hql = " select a from Tmailinfo a where 1=1";
  38. List list = null;
  39. String path = "email.do?method=receiveBox&";
  40. if(bean.getEmailtype()!=null && bean.getEmailtype().trim().equals("0")){//收件箱
  41. hql += " and a.receiveid =:receiveid and a.emailtype =:emailtype order by sendtime desc ";
  42. path += "receiveid="+bean.getReceiveid()+"&emailtype="+bean.getEmailtype()+"&";
  43. }else if(bean.getEmailtype()!= null && bean.getEmailtype().trim().equals("1")){ //草稿箱
  44. hql += " and a.emailtype =:emailtype and a.sendid =:sendid order by sendtime desc ";
  45. path += "sendid="+bean.getSendid()+"&emailtype="+bean.getEmailtype()+"&";
  46. }else if(bean.getEmailtype()!=null && bean.getEmailtype().trim().equals("2")){ //发件箱
  47. hql += " and a.sendid =:sendid and a.emailtype =:emailtype ";
  48. path += "sendid="+bean.getSendid()+"&emailtype="+bean.getEmailtype()+"&";
  49. }else if(bean.getEmailtype()!=null && bean.getEmailtype().trim().equals("3")){ //垃圾箱
  50. hql += " and a.receiveid =:receiveid and a.emailtype =:emailtype order by sendtime desc ";
  51. path += "receiveid="+bean.getReceiveid()+"&emailtype="+bean.getEmailtype()+"&";
  52. }
  53. try {
  54. page = new XPage();
  55. session = sf.openSession();
  56. query = session.createQuery(hql);
  57. if(bean.getEmailtype()!=null && bean.getEmailtype().trim().equals("0")){//收件箱
  58. query.setParameter("receiveid",bean.getReceiveid());
  59. query.setParameter("emailtype",bean.getEmailtype());
  60. }else if(bean.getEmailtype()!= null && bean.getEmailtype().trim().equals("1")){ //草稿箱
  61. query.setParameter("emailtype", bean.getEmailtype());
  62. query.setParameter("sendid", bean.getSendid());
  63. }else if(bean.getEmailtype()!=null && bean.getEmailtype().trim().equals("2")){ //发件箱
  64. query.setParameter("sendid", bean.getSendid());
  65. query.setParameter("emailtype", bean.getEmailtype());
  66. }else if(bean.getEmailtype()!=null && bean.getEmailtype().trim().equals("3")){ //发件箱
  67. query.setParameter("receiveid",bean.getReceiveid());
  68. query.setParameter("emailtype",bean.getEmailtype());
  69. }
  70. page.setAllCount(query.list().size());
  71. page.setCount(count);
  72. page.setCurrentPage(currentPage);
  73. page.setPath(path);
  74. query.setFirstResult((currentPage-1)*count);//从第几条开始=(currentPage-1)*count
  75. query.setMaxResults(count);//每页显示条数=count
  76. list = query.list();
  77. page.setList(list);
  78. session.flush();
  79. } catch (Exception e) {
  80. e.printStackTrace();
  81. } finally{
  82. session.close();
  83. sf.close();
  84. }
  85. return page;
  86. }
  87. /**
  88.  * 根据邮件id获取邮件
  89.  * @param emailid
  90.  */
  91. public Tmailinfo getEmailByEmailid(String emailid) {
  92. Session session = null;
  93. Tmailinfo mail = null;
  94. try {
  95. session = sf.openSession();
  96.  mail = (Tmailinfo)session.get(Tmailinfo.class, emailid);
  97.  Set set = mail.getFujian();
  98.  for (Iterator iter = set.iterator(); iter.hasNext();) {
  99. Tfujian a = (Tfujian) iter.next();
  100. a.getFujianid();
  101. }
  102. session.flush();
  103. } catch (Exception e) {
  104. e.printStackTrace();
  105. }finally{
  106. session.close();
  107. sf.close();
  108. }
  109. return mail;
  110. }
  111. /**
  112.  * 修改email状态
  113.  */
  114. public boolean UpdateEmail(EmailForm emailForm, int i) {
  115. Session session = null;
  116. Transaction tx = null;
  117. Tmailinfo mail = null;
  118. try {
  119. session = sf.openSession();
  120. tx = session.beginTransaction();
  121. mail = (Tmailinfo)session.load(Tmailinfo.class, emailForm.getEmailid());
  122. if(i==0){
  123. mail.setIsread("1");
  124. }else if(i!=0){
  125. mail.setEmailtype(emailForm.getEmailtype());
  126. }
  127. tx.commit();
  128. session.flush();
  129. return true;
  130. } catch (Exception e) {
  131. e.printStackTrace();
  132. tx.rollback();
  133. } finally{
  134. session.close();
  135. sf.close();
  136. }
  137. return false;
  138. }
  139. /**
  140.  * 添加邮件
  141.  */
  142. public boolean addEamil(Tmailinfo mail) {
  143. Session session = null;
  144. Transaction tx = null;
  145. try {
  146. session = sf.openSession();
  147. tx = session.beginTransaction();
  148. session.save(mail);
  149. tx.commit();
  150. session.flush();
  151. return true;
  152. } catch (Exception e) {
  153. e.printStackTrace();
  154. tx.rollback();
  155. }finally{
  156. session.close();
  157. sf.close();
  158. }
  159. return false;
  160. }
  161. //删除邮件
  162. public boolean delemail(String emailid){
  163. Session session  = null;
  164. Transaction tx = null;
  165. try {
  166. session = sf.openSession();
  167. tx = session.beginTransaction();
  168. Tmailinfo mail = (Tmailinfo)session.load(Tmailinfo.class, emailid);
  169. session.delete(mail);
  170. tx.commit();
  171. session.flush();
  172. return true;
  173. } catch (Exception e) {
  174. e.printStackTrace();
  175. tx.rollback();
  176. } finally{
  177. session.close();
  178. sf.close();
  179. }
  180. return false;
  181. }
  182. /**
  183.  * 得到邮件类表
  184.  * 是否已读
  185.  */
  186. public XPage getIsReadList(int currentpage, int count, ReceiveLetterBean bean) {
  187. XPage page = new XPage();
  188. Session session = null;
  189. Query query = null;
  190. List list = null;
  191. String hql = "select a from Tmailinfo a where 1=1";
  192. String path = "email.do?method=isRead&emailtype="+bean.getEmailtype()+"&receiveid="+bean.getReceiveid()+"&read="+bean.getIsread()+"&";
  193. if(bean.getEmailtype()!=null && bean.getEmailtype().trim().equals("0")){//收件箱
  194. hql += " and a.receiveid =:receiveid and a.emailtype =:emailtype and a.isread=:isread order by sendtime desc ";
  195. }
  196. try {
  197. session = sf.openSession();
  198. query = session.createQuery(hql);
  199. if(bean.getEmailtype()!=null && bean.getEmailtype().trim().equals("0")){//收件箱
  200. query.setParameter("receiveid", bean.getReceiveid());
  201. query.setParameter("emailtype", bean.getEmailtype());
  202. query.setParameter("isread", bean.getIsread());
  203. }
  204. page.setAllCount(query.list().size());
  205. page.setCount(count);
  206. page.setCurrentPage(currentpage);
  207. page.setPath(path);
  208. query.setFirstResult((currentpage-1)*count);
  209. query.setMaxResults(count);
  210. list = query.list();
  211. page.setList(list);
  212. } catch (Exception e) {
  213. e.printStackTrace();
  214. } finally{
  215. session.close();
  216. sf.close();
  217. }
  218. return page;
  219. }
  220. /**
  221.  * 得到用户黑名单记录
  222.  * @param uno
  223.  */
  224. public List getBlackListById(String uno) {
  225. Session session = null;
  226. Query query = null;
  227. List list = null;
  228. String hql = "select a from Tblacklist a where a.userid=:userid";
  229. try {
  230. session = sf.openSession();
  231. query = session.createQuery(hql);
  232. query.setParameter("userid", uno);
  233. list = query.list();
  234. session.flush();
  235. } catch (Exception e) {
  236. e.printStackTrace();
  237. }finally{
  238. session.close();
  239. sf.close();
  240. }
  241. return list;
  242. }
  243. /**
  244.  * 获取用户
  245.  */
  246. public List getUserList(String id) {
  247. Session session = null; 
  248. Query query = null;
  249. List list = null;
  250. String hql = "select a from Tuser a where a.uno<>"+id;
  251. try {
  252. session  = sf.openSession();
  253. query = session.createQuery(hql);
  254. list =query.list();
  255. } catch (Exception e) {
  256. e.printStackTrace();
  257. }finally{
  258. session.close();
  259. sf.close();
  260. }
  261. return list;
  262. }
  263. }