1 package com.dotmarketing.portlets.usermanager.factories; 2 3 import java.util.Date ; 4 import java.util.GregorianCalendar ; 5 import java.util.List ; 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 19 20 public class UserManagerListBuilderFactory { 21 22 public static List doSearch(UserManagerListSearchForm form) { 23 StringBuffer querySelectPortion = new StringBuffer (); 24 StringBuffer queryWherePortion = new StringBuffer (); 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 [] arrayUserIds = form.getArrayUserIds(); 38 if (arrayUserIds!=null && arrayUserIds.length > 0) { 39 StringBuffer queryUserArrayPortion = new StringBuffer (); 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 query = querySelectPortion.toString() + queryWherePortion.toString() + queryUserArrayPortion.toString(); 50 LogFactory.getLog("UserManagerListBuilderFactory").info("query:" + query); 51 52 dc.setSQL(query); 53 } 54 else { 55 String firstName = (UtilMethods.isSet(form.getFirstName()) ? form.getFirstName().trim().toLowerCase() : null); 56 String middleName = (UtilMethods.isSet(form.getMiddleName()) ? form.getMiddleName().trim().toLowerCase() : null); 57 String lastName = (UtilMethods.isSet(form.getLastName()) ? form.getLastName().trim().toLowerCase() : null); 58 String emailAddress = (UtilMethods.isSet(form.getEmailAddress()) ? form.getEmailAddress().trim().toLowerCase() : null); 59 Date birthFromDate = (UtilMethods.isSet(form.getDateOfBirthFromDate()) ? form.getDateOfBirthFromDate() : null); 60 Date birthToDate = (UtilMethods.isSet(form.getDateOfBirthToDate()) ? form.getDateOfBirthToDate() : null); 61 Date loginFromDate = (UtilMethods.isSet(form.getLastLoginDateFromDate()) ? form.getLastLoginDateFromDate() : null); 62 Date loginToDate = (UtilMethods.isSet(form.getLastLoginDateToDate()) ? form.getLastLoginDateToDate() : null); 63 String active = (UtilMethods.isSet(form.getActive()) ? form.getActive() : null); 64 65 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 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 city = (UtilMethods.isSet(form.getCity()) ? form.getCity().trim() : null); 122 String state = (UtilMethods.isSet(form.getState()) ? form.getState().trim() : null); 123 String country = (UtilMethods.isSet(form.getCountry()) ? form.getCountry().trim() : null); 124 String zip = (UtilMethods.isSet(form.getZip()) ? form.getZip().trim() : null); 125 String phone = (UtilMethods.isSet(form.getPhone()) ? form.getPhone().trim() : null); 126 String fax = (UtilMethods.isSet(form.getFax()) ? form.getFax().trim() : null); 127 String 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 [] categoriesList = form.getCategories(); 167 String categories=""; 168 for(String 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 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 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 l = dc.getResults(); 268 return l; 269 } 270 271 private static String _getDateDay(Date date) { 272 GregorianCalendar cal = new GregorianCalendar (); 273 cal.setTime(date); 274 return Integer.toString((cal.get(GregorianCalendar.DATE))); 275 } 276 277 private static String _getDateMonth(Date date) { 278 GregorianCalendar cal = new GregorianCalendar (); 279 cal.setTime(date); 280 return Integer.toString((cal.get(GregorianCalendar.MONTH) + 1)); 281 } 282 283 private static String _getDateYear(Date date) { 284 GregorianCalendar cal = new GregorianCalendar (); 285 cal.setTime(date); 286 return Integer.toString((cal.get(GregorianCalendar.YEAR))); 287 } 288 } 289 | Popular Tags |