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