1
19
20 package com.liferay.portlet.social.service.impl;
21
22 import com.liferay.portal.PortalException;
23 import com.liferay.portal.SystemException;
24 import com.liferay.portal.kernel.dao.orm.QueryUtil;
25 import com.liferay.portal.model.User;
26 import com.liferay.portal.util.PortalUtil;
27 import com.liferay.portlet.social.NoSuchActivityException;
28 import com.liferay.portlet.social.model.SocialActivity;
29 import com.liferay.portlet.social.service.base.SocialActivityLocalServiceBaseImpl;
30 import com.liferay.portlet.social.util.SocialActivityThreadLocal;
31
32 import java.util.Date;
33 import java.util.List;
34
35
42 public class SocialActivityLocalServiceImpl
43 extends SocialActivityLocalServiceBaseImpl {
44
45 public SocialActivity addActivity(
46 long userId, long groupId, String className, long classPK, int type,
47 String extraData, long receiverUserId)
48 throws PortalException, SystemException {
49
50 return addActivity(
51 userId, groupId, new Date(), className, classPK, type, extraData,
52 receiverUserId);
53 }
54
55 public SocialActivity addActivity(
56 long userId, long groupId, Date createDate, String className,
57 long classPK, int type, String extraData, long receiverUserId)
58 throws PortalException, SystemException {
59
60 if (!SocialActivityThreadLocal.isEnabled()) {
61 return null;
62 }
63
64 User user = userPersistence.findByPrimaryKey(userId);
65 long classNameId = PortalUtil.getClassNameId(className);
66
67 long activityId = counterLocalService.increment(
68 SocialActivity.class.getName());
69
70 SocialActivity activity = socialActivityPersistence.create(
71 activityId);
72
73 activity.setGroupId(groupId);
74 activity.setCompanyId(user.getCompanyId());
75 activity.setUserId(user.getUserId());
76 activity.setCreateDate(createDate);
77 activity.setMirrorActivityId(0);
78 activity.setClassNameId(classNameId);
79 activity.setClassPK(classPK);
80 activity.setType(type);
81 activity.setExtraData(extraData);
82 activity.setReceiverUserId(receiverUserId);
83
84 socialActivityPersistence.update(activity, false);
85
86 if ((receiverUserId > 0) && (userId != receiverUserId)) {
87 long mirrorActivityId = counterLocalService.increment(
88 SocialActivity.class.getName());
89
90 SocialActivity mirrorActivity = socialActivityPersistence.create(
91 mirrorActivityId);
92
93 mirrorActivity.setGroupId(groupId);
94 mirrorActivity.setCompanyId(user.getCompanyId());
95 mirrorActivity.setUserId(receiverUserId);
96 mirrorActivity.setCreateDate(createDate);
97 mirrorActivity.setMirrorActivityId(activityId);
98 mirrorActivity.setClassNameId(classNameId);
99 mirrorActivity.setClassPK(classPK);
100 mirrorActivity.setType(type);
101 mirrorActivity.setExtraData(extraData);
102 mirrorActivity.setReceiverUserId(user.getUserId());
103
104 socialActivityPersistence.update(mirrorActivity, false);
105 }
106
107 return activity;
108 }
109
110 public SocialActivity addUniqueActivity(
111 long userId, long groupId, String className, long classPK, int type,
112 String extraData, long receiverUserId)
113 throws PortalException, SystemException {
114
115 return addUniqueActivity(
116 userId, groupId, new Date(), className, classPK, type, extraData,
117 receiverUserId);
118 }
119
120 public SocialActivity addUniqueActivity(
121 long userId, long groupId, Date createDate, String className,
122 long classPK, int type, String extraData, long receiverUserId)
123 throws PortalException, SystemException {
124
125 long classNameId = PortalUtil.getClassNameId(className);
126
127 SocialActivity socialActivity =
128 socialActivityPersistence.fetchByG_U_CD_C_C_T_R(
129 groupId, userId, createDate, classNameId, classPK, type,
130 receiverUserId);
131
132 if (socialActivity != null) {
133 return socialActivity;
134 }
135
136 return addActivity(
137 userId, groupId, createDate, className, classPK, type, extraData,
138 receiverUserId);
139 }
140
141 public void deleteActivities(String className, long classPK)
142 throws SystemException {
143
144 long classNameId = PortalUtil.getClassNameId(className);
145
146 deleteActivities(classNameId, classPK);
147 }
148
149 public void deleteActivities(long classNameId, long classPK)
150 throws SystemException {
151
152 socialActivityPersistence.removeByC_C(classNameId, classPK);
153 }
154
155 public void deleteActivity(long activityId)
156 throws PortalException, SystemException {
157
158 SocialActivity activity = socialActivityPersistence.findByPrimaryKey(
159 activityId);
160
161 try {
162 socialActivityPersistence.removeByMirrorActivityId(activityId);
163 }
164 catch (NoSuchActivityException nsae) {
165 }
166
167 socialActivityPersistence.remove(activity);
168 }
169
170 public void deleteUserActivities(long userId) throws SystemException {
171 List<SocialActivity> activities =
172 socialActivityPersistence.findByUserId(
173 userId, QueryUtil.ALL_POS, QueryUtil.ALL_POS);
174
175 for (SocialActivity activity : activities) {
176 socialActivityPersistence.remove(activity);
177 }
178
179 activities = socialActivityPersistence.findByReceiverUserId(
180 userId, QueryUtil.ALL_POS, QueryUtil.ALL_POS);
181
182 for (SocialActivity activity : activities) {
183 socialActivityPersistence.remove(activity);
184 }
185 }
186
187 public List<SocialActivity> getActivities(
188 String className, int start, int end)
189 throws SystemException {
190
191 long classNameId = PortalUtil.getClassNameId(className);
192
193 return getActivities(classNameId, start, end);
194 }
195
196 public List<SocialActivity> getActivities(
197 long classNameId, int start, int end)
198 throws SystemException {
199
200 return socialActivityPersistence.findByClassNameId(
201 classNameId, start, end);
202 }
203
204 public List<SocialActivity> getActivities(
205 long mirrorActivityId, String className, long classPK, int start,
206 int end)
207 throws SystemException {
208
209 long classNameId = PortalUtil.getClassNameId(className);
210
211 return getActivities(
212 mirrorActivityId, classNameId, classPK, start, end);
213 }
214
215 public List<SocialActivity> getActivities(
216 long mirrorActivityId, long classNameId, long classPK, int start,
217 int end)
218 throws SystemException {
219
220 return socialActivityPersistence.findByM_C_C(
221 mirrorActivityId, classNameId, classPK, start, end);
222 }
223
224 public int getActivitiesCount(String className) throws SystemException {
225 long classNameId = PortalUtil.getClassNameId(className);
226
227 return getActivitiesCount(classNameId);
228 }
229
230 public int getActivitiesCount(long classNameId) throws SystemException {
231 return socialActivityPersistence.countByClassNameId(classNameId);
232 }
233
234 public int getActivitiesCount(
235 long mirrorActivityId, String className, long classPK)
236 throws SystemException {
237
238 long classNameId = PortalUtil.getClassNameId(className);
239
240 return getActivitiesCount(mirrorActivityId, classNameId, classPK);
241 }
242
243 public int getActivitiesCount(
244 long mirrorActivityId, long classNameId, long classPK)
245 throws SystemException {
246
247 return socialActivityPersistence.countByM_C_C(
248 mirrorActivityId, classNameId, classPK);
249 }
250
251 public SocialActivity getActivity(long activityId)
252 throws PortalException, SystemException {
253
254 return socialActivityPersistence.findByPrimaryKey(activityId);
255 }
256
257 public List<SocialActivity> getGroupActivities(
258 long groupId, int start, int end)
259 throws SystemException {
260
261 return socialActivityFinder.findByGroupId(groupId, start, end);
262 }
263
264 public int getGroupActivitiesCount(long groupId) throws SystemException {
265 return socialActivityFinder.countByGroupId(groupId);
266 }
267
268 public List<SocialActivity> getGroupUsersActivities(
269 long groupId, int start, int end)
270 throws SystemException {
271
272 return socialActivityFinder.findByGroupUsers(groupId, start, end);
273 }
274
275 public int getGroupUsersActivitiesCount(long groupId)
276 throws SystemException {
277
278 return socialActivityFinder.countByGroupUsers(groupId);
279 }
280
281 public SocialActivity getMirrorActivity(long mirrorActivityId)
282 throws PortalException, SystemException {
283
284 return socialActivityPersistence.findByMirrorActivityId(
285 mirrorActivityId);
286 }
287
288 public List<SocialActivity> getOrganizationActivities(
289 long organizationId, int start, int end)
290 throws SystemException {
291
292 return socialActivityFinder.findByOrganizationId(
293 organizationId, start, end);
294 }
295
296 public int getOrganizationActivitiesCount(long organizationId)
297 throws SystemException {
298
299 return socialActivityFinder.countByOrganizationId(organizationId);
300 }
301
302 public List<SocialActivity> getOrganizationUsersActivities(
303 long organizationId, int start, int end)
304 throws SystemException {
305
306 return socialActivityFinder.findByOrganizationUsers(
307 organizationId, start, end);
308 }
309
310 public int getOrganizationUsersActivitiesCount(long organizationId)
311 throws SystemException {
312
313 return socialActivityFinder.countByOrganizationUsers(organizationId);
314 }
315
316 public List<SocialActivity> getRelationActivities(
317 long userId, int start, int end)
318 throws SystemException {
319
320 return socialActivityFinder.findByRelation(userId, start, end);
321 }
322
323 public List<SocialActivity> getRelationActivities(
324 long userId, int type, int start, int end)
325 throws SystemException {
326
327 return socialActivityFinder.findByRelationType(
328 userId, type, start, end);
329 }
330
331 public int getRelationActivitiesCount(long userId) throws SystemException {
332 return socialActivityFinder.countByRelation(userId);
333 }
334
335 public int getRelationActivitiesCount(long userId, int type)
336 throws SystemException {
337
338 return socialActivityFinder.countByRelationType(userId, type);
339 }
340
341 public List<SocialActivity> getUserActivities(
342 long userId, int start, int end)
343 throws SystemException {
344
345 return socialActivityPersistence.findByUserId(userId, start, end);
346 }
347
348 public int getUserActivitiesCount(long userId) throws SystemException {
349 return socialActivityPersistence.countByUserId(userId);
350 }
351
352 public List<SocialActivity> getUserGroupsActivities(
353 long userId, int start, int end)
354 throws SystemException {
355
356 return socialActivityFinder.findByUserGroups(userId, start, end);
357 }
358
359 public int getUserGroupsActivitiesCount(long userId)
360 throws SystemException {
361
362 return socialActivityFinder.countByUserGroups(userId);
363 }
364
365 public List<SocialActivity> getUserGroupsAndOrganizationsActivities(
366 long userId, int start, int end)
367 throws SystemException {
368
369 return socialActivityFinder.findByUserGroupsAndOrganizations(
370 userId, start, end);
371 }
372
373 public int getUserGroupsAndOrganizationsActivitiesCount(long userId)
374 throws SystemException {
375
376 return socialActivityFinder.countByUserGroupsAndOrganizations(userId);
377 }
378
379 public List<SocialActivity> getUserOrganizationsActivities(
380 long userId, int start, int end)
381 throws SystemException {
382
383 return socialActivityFinder.findByUserOrganizations(userId, start, end);
384 }
385
386 public int getUserOrganizationsActivitiesCount(long userId)
387 throws SystemException {
388
389 return socialActivityFinder.countByUserOrganizations(userId);
390 }
391
392 }