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