@Override protected void doReindex(DLFileEntry dlFileEntry) throws Exception { DLFileVersion dlFileVersion = dlFileEntry.getFileVersion(); if (!dlFileVersion.isApproved() && !dlFileEntry.isInTrash()) { return; } Document document = getDocument(dlFileEntry); if (document != null) { SearchEngineUtil.updateDocument( getSearchEngineId(), dlFileEntry.getCompanyId(), document, isCommitImmediately()); } }
public AssetEntry updateAsset( long userId, FileEntry fileEntry, FileVersion fileVersion, long[] assetCategoryIds, String[] assetTagNames, long[] assetLinkEntryIds) throws PortalException, SystemException { AssetEntry assetEntry = null; boolean visible = false; boolean addDraftAssetEntry = false; if (fileEntry instanceof LiferayFileEntry) { DLFileVersion dlFileVersion = (DLFileVersion) fileVersion.getModel(); if (dlFileVersion.isApproved()) { visible = true; } else { String version = dlFileVersion.getVersion(); if (!version.equals(DLFileEntryConstants.VERSION_DEFAULT)) { addDraftAssetEntry = true; } } } else { visible = true; } long fileEntryTypeId = getFileEntryTypeId(fileEntry); if (addDraftAssetEntry) { assetEntry = assetEntryLocalService.updateEntry( userId, fileEntry.getGroupId(), DLFileEntryConstants.getClassName(), fileVersion.getFileVersionId(), fileEntry.getUuid(), fileEntryTypeId, assetCategoryIds, assetTagNames, false, null, null, null, fileEntry.getMimeType(), fileEntry.getTitle(), fileEntry.getDescription(), null, null, null, 0, 0, null, false); } else { assetEntry = assetEntryLocalService.updateEntry( userId, fileEntry.getGroupId(), DLFileEntryConstants.getClassName(), fileEntry.getFileEntryId(), fileEntry.getUuid(), fileEntryTypeId, assetCategoryIds, assetTagNames, visible, null, null, null, fileEntry.getMimeType(), fileEntry.getTitle(), fileEntry.getDescription(), null, null, null, 0, 0, null, false); List<DLFileShortcut> dlFileShortcuts = dlFileShortcutPersistence.findByToFileEntryId(fileEntry.getFileEntryId()); for (DLFileShortcut dlFileShortcut : dlFileShortcuts) { assetEntryLocalService.updateEntry( userId, dlFileShortcut.getGroupId(), DLFileShortcut.class.getName(), dlFileShortcut.getFileShortcutId(), dlFileShortcut.getUuid(), fileEntryTypeId, assetCategoryIds, assetTagNames, true, null, null, null, fileEntry.getMimeType(), fileEntry.getTitle(), fileEntry.getDescription(), null, null, null, 0, 0, null, false); } } assetLinkLocalService.updateLinks( userId, assetEntry.getEntryId(), assetLinkEntryIds, AssetLinkConstants.TYPE_RELATED); return assetEntry; }
public void updateStatuses(User user, List<Object> dlFileEntriesAndDLFolders, int status) throws PortalException, SystemException { for (Object object : dlFileEntriesAndDLFolders) { if (object instanceof DLFileEntry) { DLFileEntry dlFileEntry = (DLFileEntry) object; List<DLFileVersion> dlFileVersions = dlFileVersionLocalService.getFileVersions( dlFileEntry.getFileEntryId(), WorkflowConstants.STATUS_ANY); dlFileVersions = ListUtil.copy(dlFileVersions); Collections.sort(dlFileVersions, new FileVersionVersionComparator()); DLFileVersion latestDlFileVersion = dlFileVersions.get(0); if ((status == WorkflowConstants.STATUS_APPROVED) && (latestDlFileVersion.getStatus() == WorkflowConstants.STATUS_IN_TRASH)) { continue; } // Asset if (status == WorkflowConstants.STATUS_APPROVED) { if (latestDlFileVersion.isApproved()) { assetEntryLocalService.updateVisible( DLFileEntryConstants.getClassName(), dlFileEntry.getFileEntryId(), true); } } else { assetEntryLocalService.moveEntryToTrash( DLFileEntryConstants.getClassName(), dlFileEntry.getFileEntryId()); } // Social if (status == WorkflowConstants.STATUS_APPROVED) { socialActivityCounterLocalService.enableActivityCounters( DLFileEntryConstants.getClassName(), dlFileEntry.getFileEntryId()); socialActivityLocalService.addActivity( user.getUserId(), dlFileEntry.getGroupId(), DLFileEntryConstants.getClassName(), dlFileEntry.getFileEntryId(), SocialActivityConstants.TYPE_RESTORE_FROM_TRASH, StringPool.BLANK, 0); } else if (latestDlFileVersion.getStatus() == WorkflowConstants.STATUS_APPROVED) { socialActivityLocalService.addActivity( user.getUserId(), dlFileEntry.getGroupId(), DLFileEntryConstants.getClassName(), dlFileEntry.getFileEntryId(), SocialActivityConstants.TYPE_MOVE_TO_TRASH, StringPool.BLANK, 0); } // Index Indexer indexer = IndexerRegistryUtil.nullSafeGetIndexer(DLFileEntry.class); if (status == WorkflowConstants.STATUS_APPROVED) { indexer.reindex(dlFileEntry); } else { indexer.delete(dlFileEntry); } // Workflow if (status != WorkflowConstants.STATUS_APPROVED) { for (DLFileVersion dlFileVersion : dlFileVersions) { if (!dlFileVersion.isPending()) { continue; } dlFileVersion.setStatus(WorkflowConstants.STATUS_DRAFT); dlFileVersionPersistence.update(dlFileVersion, false); workflowInstanceLinkLocalService.deleteWorkflowInstanceLink( dlFileVersion.getCompanyId(), dlFileVersion.getGroupId(), DLFileEntryConstants.getClassName(), dlFileVersion.getFileVersionId()); } } } else if (object instanceof DLFolder) { DLFolder dlFolder = (DLFolder) object; if (dlFolder.isInTrash()) { continue; } QueryDefinition queryDefinition = new QueryDefinition(WorkflowConstants.STATUS_ANY); List<Object> foldersAndFileEntriesAndFileShortcuts = dlFolderLocalService.getFoldersAndFileEntriesAndFileShortcuts( dlFolder.getGroupId(), dlFolder.getFolderId(), null, false, queryDefinition); updateStatuses(user, foldersAndFileEntriesAndFileShortcuts, status); } } }