SearchAction.java
上传用户:liangcc
上传日期:2019-05-24
资源大小:4412k
文件大小:5k
源码类别:

WEB邮件程序

开发平台:

Java

  1. package com.softeem.struts.action;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.ArrayList;
  5. import java.util.Date;
  6. import java.util.Iterator;
  7. import java.util.List;
  8. import java.util.Locale;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11. import org.apache.struts.action.Action;
  12. import org.apache.struts.action.ActionForm;
  13. import org.apache.struts.action.ActionForward;
  14. import org.apache.struts.action.ActionMapping;
  15. import com.softeem.struts.form.SearchForm;
  16. import com.softeem.webmail.dao.mail.Mail;
  17. import com.softeem.webmail.dao.search.QueryMails;
  18. public class SearchAction extends Action {
  19. private String createSql(String stat, String value) {
  20. String sql = "";
  21. if ("1".equals(stat)) {
  22. sql = " like '%" + value + "%'";
  23. } else if ("2".equals(stat)) {
  24. sql = " ='" + value + "'";
  25. } else if ("3".equals(stat)) {
  26. }
  27. return sql;
  28. }
  29. private String createSqlSize(String stat, String value) {
  30. String sql = "";
  31. if ("1".equals(stat)) {
  32. sql = " and size > '" + value + "'";
  33. } else if ("2".equals(stat)) {
  34. sql = " and size < '" + value + "'";
  35. } else if ("3".equals(stat)) {
  36. sql = " and size = '" + value + "'";
  37. }
  38. return sql;
  39. }
  40. private String createSqlBox(String[] boxs) {
  41. String sql = "";
  42. if (boxs != null && boxs.length > 0) {
  43. int stat = 1;
  44. for (String boxname : boxs) {
  45. if (stat == 1) {
  46. if ("in".equals(boxname)) {
  47. sql = " and (box_name = 'recbox'";
  48. } else if ("out".equals(boxname)) {
  49. sql = " and (box_name = 'drafts'";
  50. } else if ("sed".equals(boxname)) {
  51. sql = " and (box_name = 'sendbox'";
  52. } else if ("del".equals(boxname)) {
  53. sql = " and (box_name = 'laji'";
  54. }
  55. stat = 0;
  56. } else {
  57. if ("in".equals(boxname)) {
  58. sql = sql + " or box_name = 'recbox'";
  59. } else if ("out".equals(boxname)) {
  60. sql = sql + " or box_name = 'drafts'";
  61. } else if ("sed".equals(boxname)) {
  62. sql = sql + " or box_name = 'sendbox'";
  63. } else if ("del".equals(boxname)) {
  64. sql = sql + " or box_name = 'laji'";
  65. }
  66. }
  67. }
  68. sql = sql + ")";
  69. }
  70. return sql;
  71. }
  72. private Date getDateForm(String year,String month,String day){
  73. String s = year +"-" + month + "-" + day;
  74. SimpleDateFormat sformat = new SimpleDateFormat("yyyy-MM-dd");
  75. try {
  76. return sformat.parse(s);
  77. } catch (ParseException e) {
  78. e.printStackTrace();
  79. }
  80. return null;
  81. }
  82. private Date getStringToDate(String s){
  83. String strr = s.substring(0,s.indexOf(":")-2);
  84. String year = s.substring(s.length()-4);
  85. String date = strr+year;
  86. SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd yyyy",Locale.US);
  87. try {
  88. return format.parse(date);
  89. } catch (ParseException e) {
  90. e.printStackTrace();
  91. }
  92. return null;
  93. }
  94. private List<Mail> getList(List<Mail> list,String stat,Date t){
  95. List<Mail> list1 = new ArrayList<Mail>();
  96. for(Iterator<Mail> item = list.iterator();item.hasNext();){
  97. Mail mail = item.next();
  98. String date = mail.getDate();
  99. Date dateDB = getStringToDate(date);
  100. if("1".equals(stat)){
  101. if(dateDB.before(t)){
  102. list1.add(mail);
  103. }
  104. }else if("2".equals(stat)){
  105. if(dateDB.after(t)){
  106. list1.add(mail);
  107. }
  108. }else if("3".equals(3)){
  109. if(dateDB.equals(t)){
  110. list1.add(mail);
  111. }
  112. }
  113. }
  114. return list1;
  115. }
  116. public ActionForward execute(ActionMapping mapping, ActionForm form,
  117. HttpServletRequest request, HttpServletResponse response) {
  118. SearchForm searchForm = (SearchForm) form;
  119. // String sql = "select * from mail where (mail_from='"+username+"' or
  120. // mail_to='"+username+"')";
  121. String sql = "select * from mail ";
  122. if ("Subject".equals(searchForm.getShead())) {
  123. sql = sql + " where subject"
  124. + createSql(searchForm.getSmode(), searchForm.getStext());
  125. } else if ("FromMail".equals(searchForm.getShead())) {
  126. sql = sql + " where mail_to"
  127. + createSql(searchForm.getSmode(), searchForm.getStext());
  128. } else if ("FromName".equals(searchForm.getShead())) {
  129. sql = sql + " where mial_from"
  130. + createSql(searchForm.getSmode(), searchForm.getStext());
  131. }
  132. sql = sql
  133. + createSqlSize(searchForm.getSsizemode(), searchForm
  134. .getSsize());
  135. if ("1".equals(searchForm.getSread())) {
  136. ;
  137. } else if ("2".equals(searchForm.getSread())) {
  138. sql = sql + " and stat='0'";
  139. } else if ("3".equals(searchForm.getSread())) {
  140. sql = sql + " and stat='1'";
  141. }
  142. sql = sql + createSqlBox(searchForm.getCheckbox());
  143.  List<Mail> list = new QueryMails().queryMails(sql);
  144.  Date t = getDateForm(searchForm.getSyear(), searchForm.getSmonth(), searchForm.getSday());
  145.  List<Mail> list1 = getList(list, searchForm.getSdatemode(),t);
  146.  System.out.println(list1.size());
  147.  request.setAttribute("searchMails", list1);
  148. return mapping.findForward("success");
  149. }
  150. // public static void main(String[] args) {
  151. // System.out.println(new SearchAction().getStringToDate(new Date().toString()));
  152. // }
  153. }