1
19
20 package com.liferay.portlet.documentlibrary.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.util.PropsValues;
26 import com.liferay.portlet.documentlibrary.NoSuchFileRankException;
27 import com.liferay.portlet.documentlibrary.model.DLFileRank;
28 import com.liferay.portlet.documentlibrary.model.DLFolder;
29 import com.liferay.portlet.documentlibrary.service.base.DLFileRankLocalServiceBaseImpl;
30 import com.liferay.portlet.documentlibrary.util.comparator.FileRankCreateDateComparator;
31
32 import java.util.Date;
33 import java.util.List;
34
35
41 public class DLFileRankLocalServiceImpl extends DLFileRankLocalServiceBaseImpl {
42
43 public void deleteFileRanks(long userId) throws SystemException {
44 dlFileRankPersistence.removeByUserId(userId);
45 }
46
47 public void deleteFileRanks(long folderId, String name)
48 throws SystemException {
49
50 dlFileRankPersistence.removeByF_N(folderId, name);
51 }
52
53 public List<DLFileRank> getFileRanks(long groupId, long userId)
54 throws SystemException {
55
56 return getFileRanks(
57 groupId, userId, QueryUtil.ALL_POS, QueryUtil.ALL_POS);
58 }
59
60 public List<DLFileRank> getFileRanks(
61 long groupId, long userId, int start, int end)
62 throws SystemException {
63
64 return dlFileRankPersistence.findByG_U(
65 groupId, userId, start, end, new FileRankCreateDateComparator());
66 }
67
68 public DLFileRank updateFileRank(
69 long groupId, long companyId, long userId, long folderId,
70 String name)
71 throws PortalException, SystemException {
72
73 if (!PropsValues.DL_FILE_RANK_ENABLED) {
74 return null;
75 }
76
77 try {
78 dlFileRankPersistence.removeByC_U_F_N(
79 companyId, userId, folderId, name);
80 }
81 catch (NoSuchFileRankException nsfre) {
82 }
83
84 DLFolder folder = dlFolderPersistence.findByPrimaryKey(folderId);
85
86 long fileRankId = counterLocalService.increment();
87
88 DLFileRank fileRank = dlFileRankPersistence.create(fileRankId);
89
90 fileRank.setGroupId(folder.getGroupId());
91 fileRank.setCompanyId(companyId);
92 fileRank.setUserId(userId);
93 fileRank.setCreateDate(new Date());
94 fileRank.setFolderId(folderId);
95 fileRank.setName(name);
96
97 dlFileRankPersistence.update(fileRank, false);
98
99 if (dlFileRankPersistence.countByG_U(groupId, userId) > 5) {
100 List<DLFileRank> fileRanks = getFileRanks(groupId, userId);
101
102 DLFileRank lastFileRank = fileRanks.get(fileRanks.size() - 1);
103
104 dlFileRankPersistence.remove(lastFileRank);
105 }
106
107 return fileRank;
108 }
109
110 }