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