| 1 package com.dotmarketing.threads; 2 3 import java.util.Date ; 4 import java.util.List ; 5 6 import com.dotmarketing.beans.UserProxy; 7 import com.dotmarketing.cms.factories.PublicAddressFactory; 8 import com.dotmarketing.cms.factories.PublicCompanyFactory; 9 import com.dotmarketing.db.DotConnect; 10 import com.dotmarketing.db.DotHibernate; 11 import com.dotmarketing.factories.InodeFactory; 12 import com.dotmarketing.factories.UserProxyFactory; 13 import com.dotmarketing.portlets.campaigns.model.Campaign; 14 import com.dotmarketing.portlets.campaigns.model.Recipient; 15 import com.dotmarketing.portlets.communications.model.Communication; 16 import com.dotmarketing.portlets.user.factories.UserCommentsFactory; 17 import com.dotmarketing.portlets.user.model.UserComment; 18 import com.dotmarketing.util.Config; 19 import com.dotmarketing.util.Logger; 20 import com.dotmarketing.util.Mailer; 21 import com.dotmarketing.util.UtilMethods; 22 import com.liferay.portal.language.LanguageException; 23 import com.liferay.portal.language.LanguageUtil; 24 import com.liferay.portal.model.Address; 25 import com.liferay.portal.model.Company; 26 import com.liferay.portal.model.User; 27 28 public class DeliverCampaignThread extends Thread { 29 30 private Campaign campaign; 31 private User subscriber; 32 private Recipient recipient; 33 private StringBuffer message; 34 private List attachments; 35 private String alternateTextMessage; 36 37 40 public String getAlternateTextMessage() { 41 return alternateTextMessage; 42 } 43 46 public void setAlternateTextMessage(String alternateTextMessage) { 47 this.alternateTextMessage = alternateTextMessage; 48 } 49 private boolean html; 50 51 52 53 54 public DeliverCampaignThread(String name) { 55 super(name); 56 57 } 58 59 63 public java.util.List getAttachments() { 64 if (attachments == null) 65 return new java.util.ArrayList (); 66 return attachments; 67 } 68 69 73 public void setAttachments(List attachments) { 74 this.attachments = attachments; 75 } 76 77 public void run() { 78 79 80 DotConnect db = new DotConnect(); 82 db.setSQL("insert into tree (parent, child, relation_type) values(?,?,?)"); 83 db.addParam(campaign.getInode()); 84 db.addParam(recipient.getInode()); 85 db.addParam("child"); 86 db.getResult(); 87 88 Campaign campaign = getCampaign(); 89 Communication comm = (Communication) InodeFactory.getChildOfClass(campaign, Communication.class); 90 Mailer Mailer = new Mailer(); 91 92 String subject = comm.getEmailSubject(); 94 95 subject = subject.replaceAll("<varName>", recipient.getName()); 97 subject = subject.replaceAll("<varEmail>", subscriber.getEmailAddress()); 98 99 Mailer.setRecipientId(recipient.getInode()); 100 Mailer.setFromName(comm.getFromName()); 101 Logger.info("comm.getFromName()="+comm.getFromName()); 102 Mailer.setFromEmail(comm.getFromEmail()); 103 Logger.info("comm.getFromEmail()="+comm.getFromEmail()); 104 Mailer.setToEmail(recipient.getEmail()); 105 106 if(UtilMethods.isSet(recipient.getLastname())) 107 Mailer.setToName(recipient.getName()+" "+recipient.getLastname()); 108 else 109 Mailer.setToName(recipient.getName()); 110 111 Mailer.setSubject(subject); 112 113 String finalMessageStr = message.toString(); 114 115 finalMessageStr = finalMessageStr.replaceAll("<rId(\")?>", recipient.getInode() + ""); 116 finalMessageStr = finalMessageStr.replaceAll("<varName(\")?>", (subscriber.getFirstName()!=null) ? subscriber.getFirstName() : ""); 118 finalMessageStr = finalMessageStr.replaceAll("<varEmail(\")?>", (subscriber.getEmailAddress()!=null) ? subscriber.getEmailAddress() : ""); 119 120 finalMessageStr = finalMessageStr.replaceAll("<varMiddleName(\")?>", (subscriber.getMiddleName()!=null) ? subscriber.getMiddleName() : ""); 121 finalMessageStr = finalMessageStr.replaceAll("<varLastName(\")?>", (subscriber.getLastName()!=null) ? subscriber.getLastName() : ""); 122 123 UserProxy userproxy = UserProxyFactory.getUserProxy(subscriber); 124 finalMessageStr = finalMessageStr.replaceAll("<varLastMessage(\")?>", (userproxy.getLastMessage()!=null) ? userproxy.getLastMessage() : ""); 125 126 Address address = new Address(); 127 try { 128 List adds = PublicAddressFactory.getAddressesByUserId(subscriber.getUserId()); 129 if (adds != null && adds.size() > 0) { 130 address = (Address) adds.get(0); 131 } 132 } 133 catch(Exception e) { 134 Logger.error(DeliverCampaignThread.class, "deliverCampaigns Failed" + e); 135 e.printStackTrace(System.out); 136 } 137 finalMessageStr = finalMessageStr.replaceAll("<varAddress1(\")?>", (address.getStreet1()!=null) ? address.getStreet1() : ""); 138 finalMessageStr = finalMessageStr.replaceAll("<varAddress2(\")?>", (address.getStreet2()!=null) ? address.getStreet2() : ""); 139 finalMessageStr = finalMessageStr.replaceAll("<varPhone(\")?>", (address.getPhone()!=null) ? address.getPhone() : ""); 140 finalMessageStr = finalMessageStr.replaceAll("<varState(\")?>", (address.getState()!=null) ? address.getState() : ""); 141 finalMessageStr = finalMessageStr.replaceAll("<varCity(\")?>", (address.getCity()!=null) ? address.getCity() : ""); 142 finalMessageStr = finalMessageStr.replaceAll("<varCountry(\")?>", (address.getCountry()!=null) ? address.getCountry() : ""); 143 finalMessageStr = finalMessageStr.replaceAll("<varZip(\")?>", (address.getZip()!=null) ? address.getZip() : ""); 144 145 Company comp = PublicCompanyFactory.getDefaultCompany(); 147 148 try { 149 String var1 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var1"); 150 String var2 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var2"); 151 String var3 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var3"); 152 String var4 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var4"); 153 String var5 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var5"); 154 String var6 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var6"); 155 String var7 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var7"); 156 String var8 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var8"); 157 String var9 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var9"); 158 String var10 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var10"); 159 String var11 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var11"); 160 String var12 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var12"); 161 String var13 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var13"); 162 String var14 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var14"); 163 String var15 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var15"); 164 String var16 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var16"); 165 String var17 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var17"); 166 String var18 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var18"); 167 String var19 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var19"); 168 String var20 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var20"); 169 String var21 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var21"); 170 String var22 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var22"); 171 String var23 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var23"); 172 String var24 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var24"); 173 String var25 = LanguageUtil.get(comp.getCompanyId(), comp.getLocale(), "mailing.list.var25"); 174 175 finalMessageStr = finalMessageStr.replaceAll("<" + var1 + "(\")?>", (userproxy.getVar1()!=null) ? userproxy.getVar1() : ""); 177 finalMessageStr = finalMessageStr.replaceAll("<" + var2 + "(\")?>", (userproxy.getVar2()!=null) ? userproxy.getVar2() : ""); 178 finalMessageStr = finalMessageStr.replaceAll("<" + var3 + "(\")?>", (userproxy.getVar3()!=null) ? userproxy.getVar3() : ""); 179 finalMessageStr = finalMessageStr.replaceAll("<" + var4 + "(\")?>", (userproxy.getVar4()!=null) ? userproxy.getVar4() : ""); 180 finalMessageStr = finalMessageStr.replaceAll("<" + var5 + "(\")?>", (userproxy.getVar5()!=null) ? userproxy.getVar5() : ""); 181 finalMessageStr = finalMessageStr.replaceAll("<" + var6 + "(\")?>", (userproxy.getVar6()!=null) ? userproxy.getVar6() : ""); 182 finalMessageStr = finalMessageStr.replaceAll("<" + var7 + "(\")?>", (userproxy.getVar7()!=null) ? userproxy.getVar7() : ""); 183 finalMessageStr = finalMessageStr.replaceAll("<" + var8 + "(\")?>", (userproxy.getVar8()!=null) ? userproxy.getVar8() : ""); 184 finalMessageStr = finalMessageStr.replaceAll("<" + var9 + "(\")?>", (userproxy.getVar9()!=null) ? userproxy.getVar9() : ""); 185 finalMessageStr = finalMessageStr.replaceAll("<" + var10 + "(\")?>", (userproxy.getVar10()!=null) ? userproxy.getVar10() : ""); 186 finalMessageStr = finalMessageStr.replaceAll("<" + var11 + "(\")?>", (userproxy.getVar11()!=null) ? userproxy.getVar11() : ""); 187 finalMessageStr = finalMessageStr.replaceAll("<" + var12 + "(\")?>", (userproxy.getVar12()!=null) ? userproxy.getVar12() : ""); 188 finalMessageStr = finalMessageStr.replaceAll("<" + var13 + "(\")?>", (userproxy.getVar13()!=null) ? userproxy.getVar13() : ""); 189 finalMessageStr = finalMessageStr.replaceAll("<" + var14 + "(\")?>", (userproxy.getVar14()!=null) ? userproxy.getVar14() : ""); 190 finalMessageStr = finalMessageStr.replaceAll("<" + var15 + "(\")?>", (userproxy.getVar15()!=null) ? userproxy.getVar15() : ""); 191 finalMessageStr = finalMessageStr.replaceAll("<" + var16 + "(\")?>", (userproxy.getVar16()!=null) ? userproxy.getVar16() : ""); 192 finalMessageStr = finalMessageStr.replaceAll("<" + var17 + "(\")?>", (userproxy.getVar17()!=null) ? userproxy.getVar17() : ""); 193 finalMessageStr = finalMessageStr.replaceAll("<" + var18 + "(\")?>", (userproxy.getVar18()!=null) ? userproxy.getVar18() : ""); 194 finalMessageStr = finalMessageStr.replaceAll("<" + var19 + "(\")?>", (userproxy.getVar19()!=null) ? userproxy.getVar19() : ""); 195 finalMessageStr = finalMessageStr.replaceAll("<" + var20 + "(\")?>", (userproxy.getVar20()!=null) ? userproxy.getVar20() : ""); 196 finalMessageStr = finalMessageStr.replaceAll("<" + var21 + "(\")?>", (userproxy.getVar21()!=null) ? userproxy.getVar21() : ""); 197 finalMessageStr = finalMessageStr.replaceAll("<" + var22 + "(\")?>", (userproxy.getVar22()!=null) ? userproxy.getVar22() : ""); 198 finalMessageStr = finalMessageStr.replaceAll("<" + var23 + "(\")?>", (userproxy.getVar23()!=null) ? userproxy.getVar23() : ""); 199 finalMessageStr = finalMessageStr.replaceAll("<" + var24 + "(\")?>", (userproxy.getVar24()!=null) ? userproxy.getVar24() : ""); 200 finalMessageStr = finalMessageStr.replaceAll("<" + var25 + "(\")?>", (userproxy.getVar25()!=null) ? userproxy.getVar25() : ""); 201 202 finalMessageStr = finalMessageStr.replaceAll("<var1(\")?>", (userproxy.getVar1()!=null) ? userproxy.getVar1() : ""); 204 finalMessageStr = finalMessageStr.replaceAll("<var2(\")?>", (userproxy.getVar2()!=null) ? userproxy.getVar2() : ""); 205 finalMessageStr = finalMessageStr.replaceAll("<var3(\")?>", (userproxy.getVar3()!=null) ? userproxy.getVar3() : ""); 206 finalMessageStr = finalMessageStr.replaceAll("<var4(\")?>", (userproxy.getVar4()!=null) ? userproxy.getVar4() : ""); 207 finalMessageStr = finalMessageStr.replaceAll("<var5(\")?>", (userproxy.getVar5()!=null) ? userproxy.getVar5() : ""); 208 finalMessageStr = finalMessageStr.replaceAll("<var6(\")?>", (userproxy.getVar6()!=null) ? userproxy.getVar6() : ""); 209 finalMessageStr = finalMessageStr.replaceAll("<var7(\")?>", (userproxy.getVar7()!=null) ? userproxy.getVar7() : ""); 210 finalMessageStr = finalMessageStr.replaceAll("<var8(\")?>", (userproxy.getVar8()!=null) ? userproxy.getVar8() : ""); 211 finalMessageStr = finalMessageStr.replaceAll("<var9(\")?>", (userproxy.getVar9()!=null) ? userproxy.getVar9() : ""); 212 finalMessageStr = finalMessageStr.replaceAll("<var10(\")?>", (userproxy.getVar10()!=null) ? userproxy.getVar10() : ""); 213 finalMessageStr = finalMessageStr.replaceAll("<var11(\")?>", (userproxy.getVar11()!=null) ? userproxy.getVar11() : ""); 214 finalMessageStr = finalMessageStr.replaceAll("<var12(\")?>", (userproxy.getVar12()!=null) ? userproxy.getVar12() : ""); 215 finalMessageStr = finalMessageStr.replaceAll("<var13(\")?>", (userproxy.getVar13()!=null) ? userproxy.getVar13() : ""); 216 finalMessageStr = finalMessageStr.replaceAll("<var14(\")?>", (userproxy.getVar14()!=null) ? userproxy.getVar14() : ""); 217 finalMessageStr = finalMessageStr.replaceAll("<var15(\")?>", (userproxy.getVar15()!=null) ? userproxy.getVar15() : ""); 218 finalMessageStr = finalMessageStr.replaceAll("<var16(\")?>", (userproxy.getVar16()!=null) ? userproxy.getVar16() : ""); 219 finalMessageStr = finalMessageStr.replaceAll("<var17(\")?>", (userproxy.getVar17()!=null) ? userproxy.getVar17() : ""); 220 finalMessageStr = finalMessageStr.replaceAll("<var18(\")?>", (userproxy.getVar18()!=null) ? userproxy.getVar18() : ""); 221 finalMessageStr = finalMessageStr.replaceAll("<var19(\")?>", (userproxy.getVar19()!=null) ? userproxy.getVar19() : ""); 222 finalMessageStr = finalMessageStr.replaceAll("<var20(\")?>", (userproxy.getVar20()!=null) ? userproxy.getVar20() : ""); 223 finalMessageStr = finalMessageStr.replaceAll("<var21(\")?>", (userproxy.getVar21()!=null) ? userproxy.getVar21() : ""); 224 finalMessageStr = finalMessageStr.replaceAll("<var22(\")?>", (userproxy.getVar22()!=null) ? userproxy.getVar22() : ""); 225 finalMessageStr = finalMessageStr.replaceAll("<var23(\")?>", (userproxy.getVar23()!=null) ? userproxy.getVar23() : ""); 226 finalMessageStr = finalMessageStr.replaceAll("<var24(\")?>", (userproxy.getVar24()!=null) ? userproxy.getVar24() : ""); 227 finalMessageStr = finalMessageStr.replaceAll("<var25(\")?>", (userproxy.getVar25()!=null) ? userproxy.getVar25() : ""); 228 229 } 230 catch(LanguageException le) { 231 Logger.error(DeliverCampaignThread.class,le.getMessage()); 232 } 233 234 if (html) { 235 Mailer.setHTMLBody(finalMessageStr); 237 if (alternateTextMessage != null) { 238 Mailer.setTextBody(alternateTextMessage); 239 } 240 } 241 else { 242 Mailer.setTextBody(finalMessageStr); 244 } 245 246 java.util.Iterator z = getAttachments().iterator(); 248 while (z.hasNext()) { 249 com.dotmarketing.portlets.files.model.File f = (com.dotmarketing.portlets.files.model.File) z.next(); 250 Mailer.addAttachment(new java.io.File (Config.CONTEXT.getRealPath(f.getURI()))); 251 } 252 253 boolean sent = Mailer.sendMessage(); 254 if (!sent) { 255 256 db.setSQL("update subscriber set last_result = ?, last_message = ? where inode = ?"); 258 db.addParam(500); 259 db.addParam(Mailer.getErrorMessage()); 260 db.addParam(userproxy.getInode()); 261 db.getResult(); 262 263 db.setSQL("update recipient set last_result = ?, last_message = ? where inode = ?"); 265 db.addParam(500); 266 db.addParam(Mailer.getErrorMessage()); 267 db.addParam(recipient.getInode()); 268 db.getResult(); 269 } 270 else{ 271 272 db.setSQL("update subscriber set last_result = ?, last_message = ? where inode = ?"); 274 db.addParam(200); 275 db.addParam("Mail Sent"); 276 db.addParam(userproxy.getInode()); 277 db.getResult(); 278 279 db.setSQL("update recipient set last_result = ?, last_message = ? where inode = ?"); 281 db.addParam(200); 282 db.addParam("Mail Sent"); 283 db.addParam(recipient.getInode()); 284 db.getResult(); 285 286 Date today = new Date (); 288 String commentComment = "Campaign: "+comm.getTitle() + " sent on " + UtilMethods.dateToHTMLDate(today); 289 UserComment comment = new UserComment(); 290 291 comment.setComment(commentComment); 292 comment.setDate(today); 293 comment.setMethod(UserComment.METHOD_MARKETING_LIST); 294 comment.setTypeComment(UserComment.TYPE_OUTGOING); 295 comment.setType("mailing_list"); 296 comment.setSubject(commentComment); 297 comment.setCommentUserId(subscriber.getUserId()); 298 comment.setUserId(subscriber.getUserId()); 299 comment.setCommunicationId(comm.getInode()); 300 UserCommentsFactory.saveUserComment(comment); 301 } 302 DotHibernate.closeSession(); 303 304 } 306 307 308 312 public Campaign getCampaign() { 313 return campaign; 314 } 315 316 320 public void setCampaign(Campaign campaign) { 321 this.campaign = campaign; 322 } 323 324 328 public User getSubscriber() { 329 return subscriber; 330 } 331 332 336 public void setSubscriber(User subscriber) { 337 this.subscriber = subscriber; 338 } 339 340 344 public boolean isHtml() { 345 return html; 346 } 347 348 352 public void setHtml(boolean html) { 353 this.html = html; 354 } 355 356 360 public StringBuffer getMessage() { 361 return message; 362 } 363 364 368 public void setMessage(StringBuffer message) { 369 this.message = message; 370 } 371 372 373 377 public Recipient getRecipient() { 378 return recipient; 379 } 380 381 382 383 387 public void setRecipient(Recipient recipient) { 388 this.recipient = recipient; 389 } 390 391 392 393 394 395 } 396 | Popular Tags |