KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > portlets > usermanager > factories > UserManagerListBuilderFactory


1 package com.dotmarketing.portlets.usermanager.factories;
2
3 import java.util.Date JavaDoc;
4 import java.util.GregorianCalendar JavaDoc;
5 import java.util.List JavaDoc;
6
7 import org.apache.commons.logging.LogFactory;
8
9 import com.dotmarketing.cms.factories.PublicCompanyFactory;
10 import com.dotmarketing.db.DotConnect;
11 import com.dotmarketing.portlets.usermanager.struts.UserManagerListSearchForm;
12 import com.dotmarketing.util.UtilMethods;
13
14 /**
15 * @author David Torres
16 * @author Oswaldo Gallango
17 *
18 */

19
20 public class UserManagerListBuilderFactory {
21
22     public static List JavaDoc doSearch(UserManagerListSearchForm form) {
23         StringBuffer JavaDoc querySelectPortion = new StringBuffer JavaDoc();
24         StringBuffer JavaDoc queryWherePortion = new StringBuffer JavaDoc();
25         
26         DotConnect dc = new DotConnect();
27
28         querySelectPortion.append(" select distinct user_.userid as userid, createdate from user_");
29         if(form.getCategories() != null ){
30             querySelectPortion.append(", user_proxy, tree");
31         }
32         
33         queryWherePortion.append(" where user_.companyid ='");
34         queryWherePortion.append(PublicCompanyFactory.getDefaultCompany().getCompanyId());
35         queryWherePortion.append("'");
36
37         String JavaDoc[] arrayUserIds = form.getArrayUserIds();
38         if (arrayUserIds!=null && arrayUserIds.length > 0) {
39             StringBuffer JavaDoc queryUserArrayPortion = new StringBuffer JavaDoc();
40
41             queryUserArrayPortion.append(" and user_.userid in (");
42             for (int i=0; i<arrayUserIds.length; i++) {
43                 if (arrayUserIds[i]!=null) {
44                     queryUserArrayPortion.append("'"+arrayUserIds[i]+"'");
45                     queryUserArrayPortion.append(",");
46                 }
47             }
48             queryUserArrayPortion.append("'')");
49             String JavaDoc query = querySelectPortion.toString() + queryWherePortion.toString() + queryUserArrayPortion.toString();
50             LogFactory.getLog("UserManagerListBuilderFactory").info("query:" + query);
51
52             dc.setSQL(query);
53         }
54         else {
55             String JavaDoc firstName = (UtilMethods.isSet(form.getFirstName()) ? form.getFirstName().trim().toLowerCase() : null);
56             String JavaDoc middleName = (UtilMethods.isSet(form.getMiddleName()) ? form.getMiddleName().trim().toLowerCase() : null);
57             String JavaDoc lastName = (UtilMethods.isSet(form.getLastName()) ? form.getLastName().trim().toLowerCase() : null);
58             String JavaDoc emailAddress = (UtilMethods.isSet(form.getEmailAddress()) ? form.getEmailAddress().trim().toLowerCase() : null);
59             Date JavaDoc birthFromDate = (UtilMethods.isSet(form.getDateOfBirthFromDate()) ? form.getDateOfBirthFromDate() : null);
60             Date JavaDoc birthToDate = (UtilMethods.isSet(form.getDateOfBirthToDate()) ? form.getDateOfBirthToDate() : null);
61             Date JavaDoc loginFromDate = (UtilMethods.isSet(form.getLastLoginDateFromDate()) ? form.getLastLoginDateFromDate() : null);
62             Date JavaDoc loginToDate = (UtilMethods.isSet(form.getLastLoginDateToDate()) ? form.getLastLoginDateToDate() : null);
63             String JavaDoc active = (UtilMethods.isSet(form.getActive()) ? form.getActive() : null);
64             
65             // User fields filters
66
if (UtilMethods.isSet(firstName))
67             {
68                 firstName = "%" + firstName + "%";
69                 queryWherePortion.append(" and lower(user_.firstName) like ? ");
70             }
71             if (UtilMethods.isSet(middleName))
72             {
73                 middleName = "%" + middleName + "%";
74                 queryWherePortion.append(" and lower(user_.middleName) like ? ");
75             }
76             if (UtilMethods.isSet(lastName))
77             {
78                 lastName = "%" + lastName + "%";
79                 queryWherePortion.append(" and lower(user_.lastName) like ? ");
80             }
81             if (UtilMethods.isSet(emailAddress))
82             {
83                 emailAddress = "%" + emailAddress + "%";
84                 queryWherePortion.append(" and lower(user_.emailAddress) like ? ");
85             }
86             if (UtilMethods.isSet(birthFromDate))
87             {
88                 queryWherePortion.append(" and user_.birthday >= ? ");
89             }
90             if (UtilMethods.isSet(birthToDate))
91             {
92                 queryWherePortion.append(" and user_.birthday <= ? ");
93             }
94             if (UtilMethods.isSet(loginFromDate))
95             {
96                 queryWherePortion.append(" and user_.lastlogindate >= ? ");
97             }
98             if (UtilMethods.isSet(loginToDate))
99             {
100                 queryWherePortion.append(" and user_.lastlogindate <= ? ");
101             }
102             if (UtilMethods.isSet(active)) {
103                 if (active.equalsIgnoreCase("true")) {
104                     queryWherePortion.append(" and user_.active_ = true ");
105                 }
106                 else if (active.equalsIgnoreCase("false")) {
107                     queryWherePortion.append(" and user_.active_ = false ");
108                 }
109             }
110     
111             // Address fields filters
112
if (UtilMethods.isSet(form.getCity()) || UtilMethods.isSet(form.getCountry())
113                     || UtilMethods.isSet(form.getState()) || UtilMethods.isSet(form.getZip())
114                     || UtilMethods.isSet(form.getPhone()) || UtilMethods.isSet(form.getFax())
115                     || UtilMethods.isSet(form.getCellPhone()))
116             {
117                 querySelectPortion.append(", address");
118                 queryWherePortion.append(" and address.userId = user_.userId");
119             }
120             
121             String JavaDoc city = (UtilMethods.isSet(form.getCity()) ? form.getCity().trim() : null);
122             String JavaDoc state = (UtilMethods.isSet(form.getState()) ? form.getState().trim() : null);
123             String JavaDoc country = (UtilMethods.isSet(form.getCountry()) ? form.getCountry().trim() : null);
124             String JavaDoc zip = (UtilMethods.isSet(form.getZip()) ? form.getZip().trim() : null);
125             String JavaDoc phone = (UtilMethods.isSet(form.getPhone()) ? form.getPhone().trim() : null);
126             String JavaDoc fax = (UtilMethods.isSet(form.getFax()) ? form.getFax().trim() : null);
127             String JavaDoc cellPhone = (UtilMethods.isSet(form.getCellPhone()) ? form.getCellPhone().trim() : null);
128             
129             if (UtilMethods.isSet(city))
130             {
131                 queryWherePortion.append(" and address.city = ? ");
132             }
133             
134             if (UtilMethods.isSet(state))
135             {
136                 queryWherePortion.append(" and address.state = ? ");
137             }
138             
139             if (UtilMethods.isSet(country))
140             {
141                 queryWherePortion.append(" and address.country = ? ");
142             }
143             
144             if (UtilMethods.isSet(zip))
145             {
146                 queryWherePortion.append(" and address.zip = ? ");
147             }
148             
149             if (UtilMethods.isSet(phone))
150             {
151                 queryWherePortion.append(" and address.phone = ? ");
152             }
153             
154             if (UtilMethods.isSet(fax))
155             {
156                 queryWherePortion.append(" and address.fax = ? ");
157             }
158             
159             if (UtilMethods.isSet(cellPhone))
160             {
161                 queryWherePortion.append(" and address.cell = ? ");
162             }
163             
164             if(form.getCategories() != null)
165             {
166                 String JavaDoc[] categoriesList = form.getCategories();
167                 String JavaDoc categories="";
168                 for(String JavaDoc cat : categoriesList){
169                     categories = categories +","+cat;
170                 }
171                 
172                 queryWherePortion.append(" and user_.userid = user_proxy.user_id and tree.parent = user_proxy.inode and tree.child in ( "+categories.substring(1)+" ) ");
173                 queryWherePortion.append(" group by user_proxy.user_id, user_.userid, createdate ");
174                 queryWherePortion.append(" having count(user_proxy.user_id) ="+categoriesList.length);
175                 
176             }
177             
178             // User Proxy fields filters
179
if (UtilMethods.isSet(form.getVar1()) || UtilMethods.isSet(form.getVar2())
180                     || UtilMethods.isSet(form.getVar3()) || UtilMethods.isSet(form.getVar4())
181                     || UtilMethods.isSet(form.getVar5())) {
182                 querySelectPortion.append(", user_proxy");
183                 queryWherePortion.append(" and user_proxy.user_Id = user_.userId");
184             }
185             if (UtilMethods.isSet(form.getVar1()))
186                 queryWherePortion.append(" and user_proxy.var1 = '" + form.getVar1().trim() + "'");
187             if (UtilMethods.isSet(form.getVar2()))
188                 queryWherePortion.append(" and user_proxy.var2 = '" + form.getVar2().trim() + "'");
189             if (UtilMethods.isSet(form.getVar3()))
190                 queryWherePortion.append(" and user_proxy.var3 = '" + form.getVar3().trim() + "'");
191             if (UtilMethods.isSet(form.getVar4()))
192                 queryWherePortion.append(" and user_proxy.var4 = '" + form.getVar4().trim() + "'");
193             if (UtilMethods.isSet(form.getVar5()))
194                 queryWherePortion.append(" and user_proxy.var5 = '" + form.getVar5().trim() + "'");
195     
196             String JavaDoc query = querySelectPortion.toString() + queryWherePortion.toString();
197             query = query + " order by createdate desc ";
198             LogFactory.getLog("UserManagerListBuilderFactory").info("query:" + query);
199             
200             dc.setSQL(query);
201             if(UtilMethods.isSet(firstName))
202             {
203                 dc.addParam(firstName);
204             }
205             if(UtilMethods.isSet(middleName))
206             {
207                 dc.addParam(middleName);
208             }
209             if(UtilMethods.isSet(lastName))
210             {
211                 dc.addParam(lastName);
212             }
213             if(UtilMethods.isSet(emailAddress))
214             {
215                 dc.addParam(emailAddress);
216             }
217             if(UtilMethods.isSet(birthFromDate))
218             {
219                 dc.addParam(birthFromDate);
220             }
221             if(UtilMethods.isSet(birthToDate))
222             {
223                 dc.addParam(birthToDate);
224             }
225             if(UtilMethods.isSet(loginFromDate))
226             {
227                 dc.addParam(loginFromDate);
228             }
229             if(UtilMethods.isSet(loginToDate))
230             {
231                 dc.addParam(loginToDate);
232             }
233             if(UtilMethods.isSet(city))
234             {
235                 dc.addParam(city);
236             }
237             if(UtilMethods.isSet(state))
238             {
239                 dc.addParam(state);
240             }
241             if(UtilMethods.isSet(country))
242             {
243                 dc.addParam(country);
244             }
245             if(UtilMethods.isSet(zip))
246             {
247                 dc.addParam(zip);
248             }
249             if(UtilMethods.isSet(phone))
250             {
251                 dc.addParam(phone);
252             }
253             if(UtilMethods.isSet(fax))
254             {
255                 dc.addParam(fax);
256             }
257             if(UtilMethods.isSet(cellPhone))
258             {
259                 dc.addParam(cellPhone);
260             }
261             
262             if(form.getMaxRow() > 0){
263                 dc.setStartRow(form.getStartRow());
264                 dc.setMaxRows(form.getMaxRow());
265             }
266             }
267         List JavaDoc l = dc.getResults();
268         return l;
269     }
270
271     private static String JavaDoc _getDateDay(Date JavaDoc date) {
272         GregorianCalendar JavaDoc cal = new GregorianCalendar JavaDoc();
273         cal.setTime(date);
274         return Integer.toString((cal.get(GregorianCalendar.DATE)));
275     }
276
277     private static String JavaDoc _getDateMonth(Date JavaDoc date) {
278         GregorianCalendar JavaDoc cal = new GregorianCalendar JavaDoc();
279         cal.setTime(date);
280         return Integer.toString((cal.get(GregorianCalendar.MONTH) + 1));
281     }
282
283     private static String JavaDoc _getDateYear(Date JavaDoc date) {
284         GregorianCalendar JavaDoc cal = new GregorianCalendar JavaDoc();
285         cal.setTime(date);
286         return Integer.toString((cal.get(GregorianCalendar.YEAR)));
287     }
288 }
289
Popular Tags