1
22
23 package com.liferay.portlet.blogs.service.persistence;
24
25 import com.liferay.portal.SystemException;
26 import com.liferay.portal.kernel.dao.orm.QueryPos;
27 import com.liferay.portal.kernel.dao.orm.QueryUtil;
28 import com.liferay.portal.kernel.dao.orm.SQLQuery;
29 import com.liferay.portal.kernel.dao.orm.Session;
30 import com.liferay.portal.kernel.dao.orm.Type;
31 import com.liferay.portal.kernel.util.CalendarUtil;
32 import com.liferay.portal.kernel.util.StringUtil;
33 import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
34 import com.liferay.portlet.blogs.model.BlogsEntry;
35 import com.liferay.portlet.blogs.model.impl.BlogsEntryImpl;
36 import com.liferay.util.dao.orm.CustomSQLUtil;
37
38 import java.sql.Timestamp;
39
40 import java.util.ArrayList;
41 import java.util.Date;
42 import java.util.Iterator;
43 import java.util.List;
44
45
51 public class BlogsEntryFinderImpl
52 extends BasePersistenceImpl implements BlogsEntryFinder {
53
54 public static String COUNT_BY_ORGANIZATION_IDS =
55 BlogsEntryFinder.class.getName() + ".countByOrganizationIds";
56
57 public static String FIND_BY_ORGANIZATION_IDS =
58 BlogsEntryFinder.class.getName() + ".findByOrganizationIds";
59
60 public static String FIND_BY_NO_ASSETS =
61 BlogsEntryFinder.class.getName() + ".findByNoAssets";
62
63 public int countByOrganizationId(
64 long organizationId, Date displayDate, boolean draft)
65 throws SystemException {
66
67 List<Long> organizationIds = new ArrayList<Long>();
68
69 organizationIds.add(organizationId);
70
71 return countByOrganizationIds(organizationIds, displayDate, draft);
72 }
73
74 public int countByOrganizationIds(
75 List<Long> organizationIds, Date displayDate, boolean draft)
76 throws SystemException {
77
78 Timestamp displayDate_TS = CalendarUtil.getTimestamp(displayDate);
79
80 Session session = null;
81
82 try {
83 session = openSession();
84
85 String sql = CustomSQLUtil.get(COUNT_BY_ORGANIZATION_IDS);
86
87 sql = StringUtil.replace(
88 sql, "[$ORGANIZATION_ID$]",
89 getOrganizationIds(organizationIds));
90
91 SQLQuery q = session.createSQLQuery(sql);
92
93 q.addScalar(COUNT_COLUMN_NAME, Type.LONG);
94
95 QueryPos qPos = QueryPos.getInstance(q);
96
97 for (int i = 0; i < organizationIds.size(); i++) {
98 Long organizationId = organizationIds.get(i);
99
100 qPos.add(organizationId);
101 }
102
103 qPos.add(displayDate_TS);
104 qPos.add(draft);
105
106 Iterator<Long> itr = q.list().iterator();
107
108 if (itr.hasNext()) {
109 Long count = itr.next();
110
111 if (count != null) {
112 return count.intValue();
113 }
114 }
115
116 return 0;
117 }
118 catch (Exception e) {
119 throw new SystemException(e);
120 }
121 finally {
122 closeSession(session);
123 }
124 }
125
126 public List<BlogsEntry> findByOrganizationId(
127 long organizationId, Date displayDate, boolean draft, int start,
128 int end)
129 throws SystemException {
130
131 List<Long> organizationIds = new ArrayList<Long>();
132
133 organizationIds.add(organizationId);
134
135 return findByOrganizationIds(
136 organizationIds, displayDate, draft, start, end);
137 }
138
139 public List<BlogsEntry> findByOrganizationIds(
140 List<Long> organizationIds, Date displayDate, boolean draft,
141 int start, int end)
142 throws SystemException {
143
144 Timestamp displayDate_TS = CalendarUtil.getTimestamp(displayDate);
145
146 Session session = null;
147
148 try {
149 session = openSession();
150
151 String sql = CustomSQLUtil.get(FIND_BY_ORGANIZATION_IDS);
152
153 sql = StringUtil.replace(
154 sql, "[$ORGANIZATION_ID$]",
155 getOrganizationIds(organizationIds));
156
157 SQLQuery q = session.createSQLQuery(sql);
158
159 q.addEntity("BlogsEntry", BlogsEntryImpl.class);
160
161 QueryPos qPos = QueryPos.getInstance(q);
162
163 for (int i = 0; i < organizationIds.size(); i++) {
164 Long organizationId = organizationIds.get(i);
165
166 qPos.add(organizationId);
167 }
168
169 qPos.add(displayDate_TS);
170 qPos.add(draft);
171
172 return (List<BlogsEntry>)QueryUtil.list(
173 q, getDialect(), start, end);
174 }
175 catch (Exception e) {
176 throw new SystemException(e);
177 }
178 finally {
179 closeSession(session);
180 }
181 }
182
183 public List<BlogsEntry> findByNoAssets() throws SystemException {
184 Session session = null;
185
186 try {
187 session = openSession();
188
189 String sql = CustomSQLUtil.get(FIND_BY_NO_ASSETS);
190
191 SQLQuery q = session.createSQLQuery(sql);
192
193 q.addEntity("BlogsEntry", BlogsEntryImpl.class);
194
195 return q.list();
196 }
197 catch (Exception e) {
198 throw new SystemException(e);
199 }
200 finally {
201 closeSession(session);
202 }
203 }
204
205 protected String getOrganizationIds(List<Long> organizationIds) {
206 StringBuilder sb = new StringBuilder();
207
208 for (int i = 0; i < organizationIds.size(); i++) {
209 sb.append("Users_Orgs.organizationId = ? ");
210
211 if ((i + 1) != organizationIds.size()) {
212 sb.append("OR ");
213 }
214 }
215
216 return sb.toString();
217 }
218
219 }