001
014
015 package com.liferay.portal.upgrade.v6_2_0;
016
017 import com.liferay.document.library.kernel.model.DLFolderConstants;
018 import com.liferay.portal.kernel.upgrade.v6_2_0.BaseUpgradeAttachments;
019 import com.liferay.portal.kernel.util.LoggingTimer;
020 import com.liferay.portal.kernel.util.StringBundler;
021
022 import java.sql.PreparedStatement;
023 import java.sql.ResultSet;
024 import java.sql.Timestamp;
025
026
029 public class UpgradeWikiAttachments extends BaseUpgradeAttachments {
030
031 @Override
032 protected String getClassName() {
033 return "com.liferay.portlet.wiki.model.WikiPage";
034 }
035
036 @Override
037 protected long getContainerModelFolderId(
038 long groupId, long companyId, long resourcePrimKey,
039 long containerModelId, long userId, String userName,
040 Timestamp createDate)
041 throws Exception {
042
043 long repositoryId = getRepositoryId(
044 groupId, companyId, userId, userName, createDate, getClassNameId(),
045 getPortletId());
046
047 long repositoryFolderId = getFolderId(
048 groupId, companyId, userId, userName, createDate, repositoryId,
049 DLFolderConstants.DEFAULT_PARENT_FOLDER_ID, getPortletId(), false);
050
051 long nodeFolderId = getFolderId(
052 groupId, companyId, userId, userName, createDate, repositoryId,
053 repositoryFolderId, String.valueOf(containerModelId), false);
054
055 long pageFolderId = getFolderId(
056 groupId, companyId, userId, userName, createDate, repositoryId,
057 nodeFolderId, String.valueOf(resourcePrimKey), false);
058
059 return pageFolderId;
060 }
061
062 @Override
063 protected String getDirName(long containerModelId, long resourcePrimKey) {
064 return "wiki/" + resourcePrimKey;
065 }
066
067 @Override
068 protected String getPortletId() {
069 return "36";
070 }
071
072 @Override
073 protected void updateAttachments() throws Exception {
074 try (LoggingTimer loggingTimer = new LoggingTimer()) {
075 StringBundler sb = new StringBundler(4);
076
077 sb.append("select resourcePrimKey, groupId, companyId, ");
078 sb.append("MIN(userId) as userId, MIN(userName) as userName, ");
079 sb.append("nodeId from WikiPage group by resourcePrimKey, ");
080 sb.append("groupId, companyId, nodeId");
081
082 try (PreparedStatement ps = connection.prepareStatement(
083 sb.toString());
084 ResultSet rs = ps.executeQuery()) {
085
086 while (rs.next()) {
087 long resourcePrimKey = rs.getLong("resourcePrimKey");
088 long groupId = rs.getLong("groupId");
089 long companyId = rs.getLong("companyId");
090 long userId = rs.getLong("userId");
091 String userName = rs.getString("userName");
092 long nodeId = rs.getLong("nodeId");
093
094 updateEntryAttachments(
095 companyId, groupId, resourcePrimKey, nodeId, userId,
096 userName);
097 }
098 }
099 }
100 }
101
102 }