1 5 package com.dotmarketing.portlets.mailinglistbuilder.factories; 6 7 import java.util.Date ; 8 import java.util.GregorianCalendar ; 9 import java.util.List ; 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 22 public class MailingListBuilderFactory { 23 24 public static List doSearch(MailingListSearchForm form) { 25 StringBuffer querySelectPortion = new StringBuffer (); 26 StringBuffer queryWherePortion = new StringBuffer (); 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 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 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 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 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 date = form.getLastLoginDateToDate(); 58 queryWherePortion.append(" and user_.lastlogindate <= '" + _getDateYear(date) + "/" + _getDateMonth(date) 59 + "/" + _getDateDay(date) + "'"); 60 } 61 62 String 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 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 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 query = querySelectPortion.toString() + queryWherePortion.toString(); 113 LogFactory.getLog("MailingListBuilderFactory").info("query:" + query); 114 DotConnect dc = new DotConnect(); 115 dc.setSQL(query); 116 List l = dc.getResults(); 117 118 return l; 119 } 120 121 private static String _getDateDay(Date date) { 122 GregorianCalendar cal = new GregorianCalendar (); 123 cal.setTime(date); 124 return Integer.toString((cal.get(GregorianCalendar.DATE))); 125 } 126 127 private static String _getDateMonth(Date date) { 128 GregorianCalendar cal = new GregorianCalendar (); 129 cal.setTime(date); 130 return Integer.toString((cal.get(GregorianCalendar.MONTH) + 1)); 131 } 132 133 private static String _getDateYear(Date date) { 134 GregorianCalendar cal = new GregorianCalendar (); 135 cal.setTime(date); 136 return Integer.toString((cal.get(GregorianCalendar.YEAR))); 137 } 138 } 139 | Popular Tags |