Package com.dotmarketing.portlets.campaigns.factories

Source Code of com.dotmarketing.portlets.campaigns.factories.RecipientFactory

package com.dotmarketing.portlets.campaigns.factories;


import java.util.ArrayList;
import java.util.List;

import com.dotmarketing.db.HibernateUtil;
import com.dotmarketing.exception.DotHibernateException;
import com.dotmarketing.factories.InodeFactory;
import com.dotmarketing.portlets.campaigns.model.Campaign;
import com.dotmarketing.portlets.campaigns.model.Click;
import com.dotmarketing.portlets.campaigns.model.Recipient;
import com.dotmarketing.util.Logger;
import com.liferay.portal.model.User;

/**
*
* @author  will
*/
public class RecipientFactory {

  public static Recipient getRecipientByCampaignAndSubscriber(Campaign c, User s) {
         return (Recipient) InodeFactory.getChildOfClassbyCondition(c, Recipient.class, "email='" + s.getEmailAddress() + "'");
  }

  private static final String SELECT_RECIPIENTS_WITH_LINK = " SELECT parent from tree, click where child = inode and link like ?";

  /*public static final Recipient getRecipient(String id) {
    try {
      return getRecipient(Long.parseLong(id));
    }
    catch (Exception e) {
      return new Recipient();
    }
  }*/

  public static final Recipient getRecipient(String id) {
    HibernateUtil dh = new HibernateUtil(Recipient.class);
    try {
      return (Recipient) dh.load(id);
    } catch (DotHibernateException e) {
      Logger.error(RecipientFactory.class, e.getMessage(),e);
    }
    return null;
  }

  public static final java.util.List getOpenedRecipientsByCampaign(Campaign c) {
   
   
    return InodeFactory.getChildrenClassByCondition(c, Recipient.class, "opened is not null and last_result = '200'");
   
   

  }

  public static final java.util.List getUnopenedRecipientsByCampaign(Campaign c) {
    return InodeFactory.getChildrenClassByCondition(c, Recipient.class, "opened is null and last_result = '200'");
  }

  public static final java.util.List getRecipientsWithErrorsByCampaign(Campaign c) {
    return InodeFactory.getChildrenClassByCondition(c, Recipient.class, "last_result <> '200'");
  }

 
  public static final java.util.List getAllRecipientsByCampaign(Campaign c) {
   
    return InodeFactory.getChildrenClassByOrder(c, Recipient.class, "sent");
   

  }

  public static final java.util.List getWaitingRecipientsByCampaign(Campaign c) {
   
    return InodeFactory.getChildrenClassByCondition(c, Recipient.class, "sent is null");
   

  }

  public static final java.util.List getRecipientsByCampaignAndClick(Campaign q, Click c) {
    com.dotmarketing.common.db.DotConnect dbo = new com.dotmarketing.common.db.DotConnect();
    dbo.setSQL(SELECT_RECIPIENTS_WITH_LINK);
    dbo.addParam(c.getLink());
    java.util.List al = null ;
    try {
      java.util.Iterator results = dbo.getResults().iterator();
      StringBuffer nasty = new StringBuffer("0");
      while (results.hasNext()) {
      java.util.HashMap hm = (java.util.HashMap) results.next();
      nasty.append("," + hm.get("parent"));
      }

      HibernateUtil dh = new HibernateUtil(Recipient.class);
//      dh.setQuery("from inode in class com.dotmarketing.portlets.campaigns.model.Recipient where ? in inode.parents.elements and  inode in (   " + nasty + ")");
      StringBuilder query = new StringBuilder(512);
      query.ensureCapacity(128);
   
      String tableName = null;
     
      tableName = Recipient.class.newInstance().getType();
      query.append("from inode in class com.dotmarketing.portlets.campaigns.model.Recipient " +
             "where inode in (select " + tableName + ".inode " +
                    "from " + tableName + " in class com.dotmarketing.portlets.campaigns.model.Recipient, " +
                        "tree in class com.dotmarketing.beans.Tree, " +
                        "inode in class com.dotmarketing.beans.Inode " +
                    "where tree.parent = ? and " +
                         "tree.child = " + tableName + ".inode and " +
                         "inode.inode = " + tableName + ".inode) and " +
                  "inode in (" + nasty + ")");
     
      dh.setQuery(query.toString());
     
//      dh.setParam(q.getInode());
      dh.setParam(q.getInode());
      al = dh.list();
    } catch (Exception e) {
      Logger.error(RecipientFactory.class, e.toString());
    }
   
    return al;

  }
 
  public static final List getRecipientsByUserId(String userId) {
    HibernateUtil dh = new HibernateUtil(Recipient.class);
    java.util.List al = null ;
    try {
      dh.setQuery("from inode in class com.dotmarketing.portlets.campaigns.model.Recipient where user_id = ?");
      dh.setParam(userId);
      al = dh.list();
    } catch (DotHibernateException e) {
      Logger.error(RecipientFactory.class, "getRecipientsByUserId failed:" + e,e);
   
   
    return al;
  }
  public static final List getRecipientsByUserId(String userId, String condition) {
    HibernateUtil dh = new HibernateUtil(Recipient.class);
    java.util.List al = null ;
    try {
      dh.setQuery("from inode in class com.dotmarketing.portlets.campaigns.model.Recipient where user_id = ? and "+condition);
      dh.setParam(userId);
      al = dh.list();
    } catch (DotHibernateException e) {
      Logger.error(RecipientFactory.class,"getRecipientsByUserId failed:" + e,e);
    }
   
    return al;
  }
}
TOP

Related Classes of com.dotmarketing.portlets.campaigns.factories.RecipientFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.