KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > portlets > campaigns > factories > CampaignFactory


1 package com.dotmarketing.portlets.campaigns.factories;
2
3 import java.util.Iterator JavaDoc;
4 import java.util.List JavaDoc;
5
6 import com.dotmarketing.db.DotHibernate;
7 import com.dotmarketing.factories.InodeFactory;
8 import com.dotmarketing.portlets.campaigns.model.Campaign;
9 import com.dotmarketing.portlets.campaigns.model.Click;
10 import com.dotmarketing.portlets.campaigns.model.Recipient;
11 import com.dotmarketing.util.Config;
12 import com.dotmarketing.util.Logger;
13 import com.dotmarketing.util.UtilMethods;
14 import com.liferay.portal.model.User;
15
16
17 /**
18  *
19  * @author will
20  */

21 public class CampaignFactory {
22     public static void unlockAllCampaigns() {
23         List JavaDoc campaigns = CampaignFactory.getCampaigns();
24         java.util.Iterator JavaDoc i = campaigns.iterator();
25
26         while (i.hasNext()) {
27             Campaign c = (Campaign) i.next();
28
29             if (c.isLocked()) {
30                 c.setLocked(false);
31                 InodeFactory.saveInode(c);
32                 DotHibernate.flush();
33             }
34         }
35
36     }
37
38     public static java.util.List JavaDoc getCampaignsByUser(User u) {
39        return getCampaignsByUser(u, "","");
40     }
41     
42     public static java.util.List JavaDoc getCampaignsByUser(User u, String JavaDoc condition, String JavaDoc orderby) {
43         DotHibernate dh = new DotHibernate(Campaign.class);
44         
45         if(!UtilMethods.isSet(orderby)){
46             orderby = "start_date desc";
47         }
48         
49         String JavaDoc conditionQuery = "";
50         if(UtilMethods.isSet(condition)){
51             conditionQuery = " and title like '%"+condition+"%' ";
52         }
53         dh.setQuery(
54             "from inode in class com.dotmarketing.portlets.campaigns.model.Campaign where user_id = ? "+conditionQuery+" order by "+ orderby);
55         dh.setParam(u.getUserId());
56
57         return dh.list();
58     }
59
60     public static java.util.List JavaDoc getCampaigns() {
61         return getCampaigns("","");
62     }
63     
64     public static java.util.List JavaDoc getCampaignsForViewer(String JavaDoc orderby) {
65         DotHibernate dh = new DotHibernate(Campaign.class);
66         if(!UtilMethods.isSet(orderby)){
67             orderby = "start_date desc";
68         }
69         
70         dh.setQuery("from inode in class com.dotmarketing.portlets.campaigns.model.Campaign where completed_date is not null order by "+orderby);
71
72         return dh.list();
73     }
74     
75     public static java.util.List JavaDoc getCampaigns(String JavaDoc condition, String JavaDoc orderby) {
76         DotHibernate dh = new DotHibernate(Campaign.class);
77         if(!UtilMethods.isSet(orderby)){
78             orderby = "start_date desc";
79         }
80         
81         String JavaDoc conditionQuery = "";
82         if(UtilMethods.isSet(condition)){
83             conditionQuery = " where title like '%"+condition+"%' ";
84         }
85         
86         dh.setQuery("from inode in class com.dotmarketing.portlets.campaigns.model.Campaign "+conditionQuery+" order by "+orderby);
87
88         return dh.list();
89     }
90
91     public static Campaign getCampaign(String JavaDoc inode, String JavaDoc userId) {
92         return getCampaign(inode,userId, "");
93     }
94     
95     public static Campaign getCampaign(String JavaDoc inode, String JavaDoc userId, String JavaDoc orderby) {
96         DotHibernate dh = new DotHibernate(Campaign.class);
97         if(!UtilMethods.isSet(orderby)){
98             orderby = "start_date";
99         }
100         dh.setQuery(
101             "from inode in class com.dotmarketing.portlets.campaigns.model.Campaign where inode = ? and user_id = ? order by "+orderby);
102         dh.setParam(inode);
103         dh.setParam(userId);
104
105         return (Campaign) dh.load();
106     }
107
108     public static Campaign getCampaign(String JavaDoc inode) {
109         DotHibernate dh = new DotHibernate(Campaign.class);
110         dh.setQuery(
111             "from inode in class com.dotmarketing.portlets.campaigns.model.Campaign where inode = ?");
112         dh.setParam(inode);
113
114         return (Campaign) dh.load();
115     }
116
117     public static Campaign newInstance() {
118         Campaign c = new Campaign();
119         c.setType("campaign");
120         c.setStartDate(new java.util.Date JavaDoc());
121
122         return c;
123     }
124
125     /*
126      * deletes campaigns, recipients and clicks that are owned by the user
127      */

128     public static void deleteCampaign(Campaign c, String JavaDoc userId) {
129         if ((userId == null) || (c.getUserId() == null)) {
130             return;
131         }
132
133         if (c.getUserId().equalsIgnoreCase(userId)) {
134             java.util.List JavaDoc recipients = RecipientFactory.getAllRecipientsByCampaign(c);
135             Iterator JavaDoc i = recipients.iterator();
136
137             while (i.hasNext()) {
138                 Recipient r = (Recipient) i.next();
139                 java.util.List JavaDoc clicks = ClickFactory.getClicksByParent(r);
140                 Iterator JavaDoc i2 = clicks.iterator();
141
142                 while (i2.hasNext()) {
143                     Click click = (Click) i2.next();
144                     InodeFactory.deleteInode(click);
145                 }
146
147                 InodeFactory.deleteInode(r);
148             }
149
150             InodeFactory.deleteInode(c);
151         }
152     }
153
154     public static synchronized List JavaDoc getWaitingCampaigns() {
155         DotHibernate dh = new DotHibernate(Campaign.class);
156         dh.setQuery(
157             "from inode in class com.dotmarketing.portlets.campaigns.model.Campaign where start_date < ? and active = " +
158             com.dotmarketing.db.DbConnectionFactory.getDBTrue() + " and locked = " + com.dotmarketing.db.DbConnectionFactory.getDBFalse() +
159             " and completed_date is null order by start_date");
160         
161         dh.setParam(new java.util.Date JavaDoc());
162
163         java.util.List JavaDoc list = dh.list();
164         Iterator JavaDoc i = list.iterator();
165
166         while (i.hasNext()) {
167             Logger.debug(CampaignFactory.class, "gettingWaitingCampaigns");
168             
169             Campaign c = (Campaign) i.next();
170             c.setLocked(true);
171             DotHibernate.flush();
172         }
173
174         return list;
175     }
176 }
177
Popular Tags