KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > portlets > mailinglistbuilder > factories > MailingListBuilderFactory


1 /*
2  * Created on Oct 27, 2004
3  *
4  */

5 package com.dotmarketing.portlets.mailinglistbuilder.factories;
6
7 import java.util.Date JavaDoc;
8 import java.util.GregorianCalendar JavaDoc;
9 import java.util.List JavaDoc;
10
11 import org.apache.commons.logging.LogFactory;
12
13 import com.dotmarketing.cms.factories.PublicCompanyFactory;
14 import com.dotmarketing.db.DotConnect;
15 import com.dotmarketing.portlets.mailinglistbuilder.struts.MailingListSearchForm;
16 import com.dotmarketing.util.UtilMethods;
17
18 /**
19  * @author David Torres
20  *
21  */

22 public class MailingListBuilderFactory {
23
24     public static List JavaDoc doSearch(MailingListSearchForm form) {
25         StringBuffer JavaDoc querySelectPortion = new StringBuffer JavaDoc();
26         StringBuffer JavaDoc queryWherePortion = new StringBuffer JavaDoc();
27
28         querySelectPortion.append(" select distinct user_.userid as userid from user_");
29         queryWherePortion.append(" where user_.companyid ='");
30         queryWherePortion.append(PublicCompanyFactory.getDefaultCompany().getCompanyId());
31         queryWherePortion.append("'");
32         // User fields filters
33
if (UtilMethods.isSet(form.getFirstName()))
34             queryWherePortion.append(" and user_.firstName like '%" + form.getFirstName().trim() + "%'");
35         if (UtilMethods.isSet(form.getMiddleName()))
36             queryWherePortion.append(" and user_.middleName like '%" + form.getMiddleName().trim() + "%'");
37         if (UtilMethods.isSet(form.getLastName()))
38             queryWherePortion.append(" and user_.lastName like '%" + form.getLastName().trim() + "%'");
39         if (UtilMethods.isSet(form.getEmailAddress()))
40             queryWherePortion.append(" and user_.emailAddress like '%" + form.getEmailAddress().trim() + "%'");
41         if (UtilMethods.isSet(form.getDateOfBirthFromDate())) {
42             Date JavaDoc date = form.getDateOfBirthFromDate();
43             queryWherePortion.append(" and user_.birthday >= '" + _getDateMonth(date) + "/" + _getDateDay(date) + "/"
44                     + _getDateYear(date) + "'");
45         }
46         if (UtilMethods.isSet(form.getDateOfBirthToDate())) {
47             Date JavaDoc date = form.getDateOfBirthToDate();
48             queryWherePortion.append(" and user_.birthday <= '" + _getDateMonth(date) + "/" + _getDateDay(date) + "/"
49                     + _getDateYear(date) + "'");
50         }
51         if (UtilMethods.isSet(form.getLastLoginDateFromDate())) {
52             Date JavaDoc date = form.getLastLoginDateFromDate();
53             queryWherePortion.append(" and user_.lastlogindate >= '" + _getDateYear(date) + "/" + _getDateMonth(date)
54                     + "/" + _getDateDay(date) + "'");
55         }
56         if (UtilMethods.isSet(form.getLastLoginDateToDate())) {
57             Date JavaDoc date = form.getLastLoginDateToDate();
58             queryWherePortion.append(" and user_.lastlogindate <= '" + _getDateYear(date) + "/" + _getDateMonth(date)
59                     + "/" + _getDateDay(date) + "'");
60         }
61
62         String JavaDoc active = (UtilMethods.isSet(form.getActive()) ? form.getActive() : null);
63         if (UtilMethods.isSet(active)) {
64             if (active.equalsIgnoreCase("true")) {
65                 queryWherePortion.append(" and user_.active_ = 't' ");
66             }
67             else if (active.equalsIgnoreCase("false")) {
68                 queryWherePortion.append(" and user_.active_ = 'f' ");
69             }
70         }
71         // Address fields filters
72
if (UtilMethods.isSet(form.getCity()) || UtilMethods.isSet(form.getCountry())
73                 || UtilMethods.isSet(form.getState()) || UtilMethods.isSet(form.getZip())
74                 || UtilMethods.isSet(form.getPhone()) || UtilMethods.isSet(form.getFax())
75                 || UtilMethods.isSet(form.getCellPhone())) {
76             querySelectPortion.append(", address");
77             queryWherePortion.append(" and address.userId = user_.userId");
78         }
79         if (UtilMethods.isSet(form.getCity()))
80             queryWherePortion.append(" and address.city = '" + form.getCity().trim() + "'");
81         if (UtilMethods.isSet(form.getState()))
82             queryWherePortion.append(" and address.state = '" + form.getState().trim() + "'");
83         if (UtilMethods.isSet(form.getCountry()))
84             queryWherePortion.append(" and address.country = '" + form.getCountry().trim() + "'");
85         if (UtilMethods.isSet(form.getZip()))
86             queryWherePortion.append(" and address.zip = '" + form.getZip().trim() + "'");
87         if (UtilMethods.isSet(form.getPhone()))
88             queryWherePortion.append(" and address.phone = '" + form.getPhone().trim() + "'");
89         if (UtilMethods.isSet(form.getFax()))
90             queryWherePortion.append(" and address.fax = '" + form.getFax().trim() + "'");
91         if (UtilMethods.isSet(form.getCellPhone()))
92             queryWherePortion.append(" and address.cell = '" + form.getCellPhone().trim() + "'");
93
94         // User Proxy fields filters
95
if (UtilMethods.isSet(form.getVar1()) || UtilMethods.isSet(form.getVar2())
96                 || UtilMethods.isSet(form.getVar3()) || UtilMethods.isSet(form.getVar4())
97                 || UtilMethods.isSet(form.getVar5())) {
98             querySelectPortion.append(", user_proxy");
99             queryWherePortion.append(" and user_proxy.user_Id = user_.userId");
100         }
101         if (UtilMethods.isSet(form.getVar1()))
102             queryWherePortion.append(" and user_proxy.var1 = '" + form.getVar1().trim() + "'");
103         if (UtilMethods.isSet(form.getVar2()))
104             queryWherePortion.append(" and user_proxy.var2 = '" + form.getVar2().trim() + "'");
105         if (UtilMethods.isSet(form.getVar3()))
106             queryWherePortion.append(" and user_proxy.var3 = '" + form.getVar3().trim() + "'");
107         if (UtilMethods.isSet(form.getVar4()))
108             queryWherePortion.append(" and user_proxy.var4 = '" + form.getVar4().trim() + "'");
109         if (UtilMethods.isSet(form.getVar5()))
110             queryWherePortion.append(" and user_proxy.var5 = '" + form.getVar5().trim() + "'");
111
112         String JavaDoc query = querySelectPortion.toString() + queryWherePortion.toString();
113         LogFactory.getLog("MailingListBuilderFactory").info("query:" + query);
114         DotConnect dc = new DotConnect();
115         dc.setSQL(query);
116         List JavaDoc l = dc.getResults();
117
118         return l;
119     }
120
121     private static String JavaDoc _getDateDay(Date JavaDoc date) {
122         GregorianCalendar JavaDoc cal = new GregorianCalendar JavaDoc();
123         cal.setTime(date);
124         return Integer.toString((cal.get(GregorianCalendar.DATE)));
125     }
126
127     private static String JavaDoc _getDateMonth(Date JavaDoc date) {
128         GregorianCalendar JavaDoc cal = new GregorianCalendar JavaDoc();
129         cal.setTime(date);
130         return Integer.toString((cal.get(GregorianCalendar.MONTH) + 1));
131     }
132
133     private static String JavaDoc _getDateYear(Date JavaDoc date) {
134         GregorianCalendar JavaDoc cal = new GregorianCalendar JavaDoc();
135         cal.setTime(date);
136         return Integer.toString((cal.get(GregorianCalendar.YEAR)));
137     }
138 }
139
Popular Tags