List of usage examples for com.liferay.portal.kernel.workflow WorkflowConstants STATUS_APPROVED
int STATUS_APPROVED
To view the source code for com.liferay.portal.kernel.workflow WorkflowConstants STATUS_APPROVED.
Click Source Link
From source file:com.liferay.portlet.login.action.CreateAccountAction.java
License:Open Source License
protected void addUser(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { HttpServletRequest request = PortalUtil.getHttpServletRequest(actionRequest); HttpSession session = request.getSession(); ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); Company company = themeDisplay.getCompany(); boolean autoPassword = true; String password1 = null;//from www . j ava 2 s .c o m String password2 = null; boolean autoScreenName = isAutoScreenName(); String screenName = ParamUtil.getString(actionRequest, "screenName"); String emailAddress = ParamUtil.getString(actionRequest, "emailAddress"); long facebookId = ParamUtil.getLong(actionRequest, "facebookId"); String openId = ParamUtil.getString(actionRequest, "openId"); String firstName = ParamUtil.getString(actionRequest, "firstName"); String middleName = ParamUtil.getString(actionRequest, "middleName"); String lastName = ParamUtil.getString(actionRequest, "lastName"); int prefixId = ParamUtil.getInteger(actionRequest, "prefixId"); int suffixId = ParamUtil.getInteger(actionRequest, "suffixId"); boolean male = ParamUtil.getBoolean(actionRequest, "male", true); int birthdayMonth = ParamUtil.getInteger(actionRequest, "birthdayMonth"); int birthdayDay = ParamUtil.getInteger(actionRequest, "birthdayDay"); int birthdayYear = ParamUtil.getInteger(actionRequest, "birthdayYear"); String jobTitle = ParamUtil.getString(actionRequest, "jobTitle"); long[] groupIds = null; long[] organizationIds = null; long[] roleIds = null; long[] userGroupIds = null; boolean sendEmail = true; ServiceContext serviceContext = ServiceContextFactory.getInstance(User.class.getName(), actionRequest); if (PropsValues.LOGIN_CREATE_ACCOUNT_ALLOW_CUSTOM_PASSWORD) { autoPassword = false; password1 = ParamUtil.getString(actionRequest, "password1"); password2 = ParamUtil.getString(actionRequest, "password2"); } boolean openIdPending = false; Boolean openIdLoginPending = (Boolean) session.getAttribute(WebKeys.OPEN_ID_LOGIN_PENDING); if ((openIdLoginPending != null) && (openIdLoginPending.booleanValue()) && (Validator.isNotNull(openId))) { sendEmail = false; openIdPending = true; } // check accountRole - numberPhone String accountRole = ParamUtil.getString(actionRequest, "accountRole", ""); String mobilePhone = ParamUtil.getString(actionRequest, "mobilePhone", ""); boolean subscriberAccount = false; if (accountRole.equals("subscriberAccount")) { subscriberAccount = true; if (!Validator.isPhoneNumber(mobilePhone)) { throw new Exception("mobile-phone-invalid"); } try { UserEntry tmpEmtry = UserEntryLocalServiceUtil.findByMobilePhone(mobilePhone); if (tmpEmtry != null) throw new Exception("mobile-phone-invalid"); } catch (Exception e) { // TODO: handle exception } } //accountRole User user = UserServiceUtil.addUserWithWorkflow(company.getCompanyId(), autoPassword, password1, password2, autoScreenName, screenName, emailAddress, facebookId, openId, themeDisplay.getLocale(), firstName, middleName, lastName, prefixId, suffixId, male, birthdayMonth, birthdayDay, birthdayYear, jobTitle, groupIds, organizationIds, roleIds, userGroupIds, sendEmail, serviceContext); if (openIdPending) { session.setAttribute(WebKeys.OPEN_ID_LOGIN, new Long(user.getUserId())); session.removeAttribute(WebKeys.OPEN_ID_LOGIN_PENDING); } else { // Session messages if (user.getStatus() == WorkflowConstants.STATUS_APPROVED) { SessionMessages.add(request, "user_added", user.getEmailAddress()); SessionMessages.add(request, "user_added_password", user.getPasswordUnencrypted()); } else { SessionMessages.add(request, "user_pending", user.getEmailAddress()); } } // ============================================================ // create user success - ok then create vrbt_user // add new UserEntry ( vrbt_user table ) UserEntry userEntry = null; try { userEntry = UserEntryLocalServiceUtil .createUserEntry(CounterLocalServiceUtil.increment(UserEntry.class.getName())); userEntry.setUserId(user.getUserId()); userEntry.setUserName(user.getScreenName()); userEntry.setGroupId(user.getGroupId()); userEntry.setCompanyId(user.getCompanyId()); userEntry.setCreateDate(Calendar.getInstance().getTime()); userEntry.setStatus(1); if (subscriberAccount) { userEntry.setMobilePhone(mobilePhone); } UserEntryLocalServiceUtil.updateUserEntry(userEntry); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } // add role long roleId = 0; try { Role role = null; if (subscriberAccount) { role = RoleLocalServiceUtil.getRole(PortalUtil.getCompanyId(request), "Subscriber"); if (role != null) roleId = role.getRoleId(); } else { role = RoleLocalServiceUtil.getRole(PortalUtil.getCompanyId(request), "Third-party"); if (role != null) roleId = role.getRoleId(); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } System.out.println("roleId:" + roleId); if (roleId > 0) { try { RoleLocalServiceUtil.addUserRoles(user.getUserId(), new long[] { roleId }); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } // ============================================================ // Send redirect String login = null; if (company.getAuthType().equals(CompanyConstants.AUTH_TYPE_ID)) { login = String.valueOf(user.getUserId()); } else if (company.getAuthType().equals(CompanyConstants.AUTH_TYPE_SN)) { login = user.getScreenName(); } else { login = user.getEmailAddress(); } // fix login = user.getScreenName(); // sendRedirect(actionRequest, actionResponse, themeDisplay, login, user.getPasswordUnencrypted()); }
From source file:com.liferay.portlet.login.action.CreateAccountAction.java
License:Open Source License
protected void updateIncompleteUser(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { HttpServletRequest request = PortalUtil.getHttpServletRequest(actionRequest); ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); boolean autoPassword = true; String password1 = null;/*w w w. j a v a 2 s.c o m*/ String password2 = null; boolean autoScreenName = false; String screenName = ParamUtil.getString(actionRequest, "screenName"); String emailAddress = ParamUtil.getString(actionRequest, "emailAddress"); long facebookId = ParamUtil.getLong(actionRequest, "facebookId"); String openId = ParamUtil.getString(actionRequest, "openId"); String firstName = ParamUtil.getString(actionRequest, "firstName"); String middleName = ParamUtil.getString(actionRequest, "middleName"); String lastName = ParamUtil.getString(actionRequest, "lastName"); int prefixId = ParamUtil.getInteger(actionRequest, "prefixId"); int suffixId = ParamUtil.getInteger(actionRequest, "suffixId"); boolean male = ParamUtil.getBoolean(actionRequest, "male", true); int birthdayMonth = ParamUtil.getInteger(actionRequest, "birthdayMonth"); int birthdayDay = ParamUtil.getInteger(actionRequest, "birthdayDay"); int birthdayYear = ParamUtil.getInteger(actionRequest, "birthdayYear"); String jobTitle = ParamUtil.getString(actionRequest, "jobTitle"); boolean updateUserInformation = true; boolean sendEmail = true; ServiceContext serviceContext = ServiceContextFactory.getInstance(User.class.getName(), actionRequest); User user = UserServiceUtil.updateIncompleteUser(themeDisplay.getCompanyId(), autoPassword, password1, password2, autoScreenName, screenName, emailAddress, facebookId, openId, themeDisplay.getLocale(), firstName, middleName, lastName, prefixId, suffixId, male, birthdayMonth, birthdayDay, birthdayYear, jobTitle, sendEmail, updateUserInformation, serviceContext); // Session messages if (user.getStatus() == WorkflowConstants.STATUS_APPROVED) { SessionMessages.add(request, "user_added", user.getEmailAddress()); SessionMessages.add(request, "user_added_password", user.getPasswordUnencrypted()); } else { SessionMessages.add(request, "user_pending", user.getEmailAddress()); } // Send redirect String login = null; Company company = themeDisplay.getCompany(); if (company.getAuthType().equals(CompanyConstants.AUTH_TYPE_ID)) { login = String.valueOf(user.getUserId()); } else if (company.getAuthType().equals(CompanyConstants.AUTH_TYPE_SN)) { login = user.getScreenName(); } else { login = user.getEmailAddress(); } sendRedirect(actionRequest, actionResponse, themeDisplay, login, user.getPasswordUnencrypted()); }
From source file:com.liferay.portlet.login.action.CreateAnonymousAccountAction.java
License:Open Source License
protected JSONObject updateIncompleteUser(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); ServiceContext serviceContext = ServiceContextFactory.getInstance(User.class.getName(), actionRequest); boolean autoPassword = true; String password1 = null;// w w w. j a v a2s. c o m String password2 = null; boolean autoScreenName = false; String screenName = null; String emailAddress = ParamUtil.getString(actionRequest, "emailAddress"); long facebookId = 0; String openId = null; String firstName = null; String middleName = null; String lastName = null; int prefixId = 0; int suffixId = 0; boolean male = true; int birthdayMonth = 0; int birthdayDay = 1; int birthdayYear = 1970; String jobTitle = null; boolean updateUserInformation = false; boolean sendEmail = true; User user = UserServiceUtil.updateIncompleteUser(themeDisplay.getCompanyId(), autoPassword, password1, password2, autoScreenName, screenName, emailAddress, facebookId, openId, themeDisplay.getLocale(), firstName, middleName, lastName, prefixId, suffixId, male, birthdayMonth, birthdayDay, birthdayYear, jobTitle, updateUserInformation, sendEmail, serviceContext); JSONObject jsonObject = JSONFactoryUtil.createJSONObject(); if (user.getStatus() == WorkflowConstants.STATUS_APPROVED) { jsonObject.put("userStatus", "user_added"); } else { jsonObject.put("userStatus", "user_pending"); } return jsonObject; }
From source file:com.liferay.portlet.login.action.OldCreateAccountAction.java
License:Open Source License
protected void addUser(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { HttpServletRequest request = PortalUtil.getHttpServletRequest(actionRequest); HttpSession session = request.getSession(); ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); Company company = themeDisplay.getCompany(); boolean autoPassword = true; String password1 = null;/* w ww . ja v a 2 s .co m*/ String password2 = null; boolean autoScreenName = isAutoScreenName(); String screenName = ParamUtil.getString(actionRequest, "screenName"); String emailAddress = ParamUtil.getString(actionRequest, "emailAddress"); long facebookId = ParamUtil.getLong(actionRequest, "facebookId"); String openId = ParamUtil.getString(actionRequest, "openId"); String firstName = ParamUtil.getString(actionRequest, "firstName"); String middleName = ParamUtil.getString(actionRequest, "middleName"); String lastName = ParamUtil.getString(actionRequest, "lastName"); int prefixId = ParamUtil.getInteger(actionRequest, "prefixId"); int suffixId = ParamUtil.getInteger(actionRequest, "suffixId"); boolean male = ParamUtil.getBoolean(actionRequest, "male", true); int birthdayMonth = ParamUtil.getInteger(actionRequest, "birthdayMonth"); int birthdayDay = ParamUtil.getInteger(actionRequest, "birthdayDay"); int birthdayYear = ParamUtil.getInteger(actionRequest, "birthdayYear"); String jobTitle = ParamUtil.getString(actionRequest, "jobTitle"); long[] groupIds = null; long[] organizationIds = null; long[] roleIds = null; long[] userGroupIds = null; boolean sendEmail = true; ServiceContext serviceContext = ServiceContextFactory.getInstance(User.class.getName(), actionRequest); if (PropsValues.LOGIN_CREATE_ACCOUNT_ALLOW_CUSTOM_PASSWORD) { autoPassword = false; password1 = ParamUtil.getString(actionRequest, "password1"); password2 = ParamUtil.getString(actionRequest, "password2"); } boolean openIdPending = false; Boolean openIdLoginPending = (Boolean) session.getAttribute(WebKeys.OPEN_ID_LOGIN_PENDING); if ((openIdLoginPending != null) && openIdLoginPending.booleanValue() && Validator.isNotNull(openId)) { sendEmail = false; openIdPending = true; } User user = UserServiceUtil.addUserWithWorkflow(company.getCompanyId(), autoPassword, password1, password2, autoScreenName, screenName, emailAddress, facebookId, openId, themeDisplay.getLocale(), firstName, middleName, lastName, prefixId, suffixId, male, birthdayMonth, birthdayDay, birthdayYear, jobTitle, groupIds, organizationIds, roleIds, userGroupIds, sendEmail, serviceContext); if (openIdPending) { session.setAttribute(WebKeys.OPEN_ID_LOGIN, new Long(user.getUserId())); session.removeAttribute(WebKeys.OPEN_ID_LOGIN_PENDING); } else { // Session messages if (user.getStatus() == WorkflowConstants.STATUS_APPROVED) { SessionMessages.add(request, "user_added", user.getEmailAddress()); SessionMessages.add(request, "user_added_password", user.getPasswordUnencrypted()); } else { SessionMessages.add(request, "user_pending", user.getEmailAddress()); } } // Send redirect String login = null; if (company.getAuthType().equals(CompanyConstants.AUTH_TYPE_ID)) { login = String.valueOf(user.getUserId()); } else if (company.getAuthType().equals(CompanyConstants.AUTH_TYPE_SN)) { login = user.getScreenName(); } else { login = user.getEmailAddress(); } sendRedirect(actionRequest, actionResponse, themeDisplay, login, user.getPasswordUnencrypted()); }
From source file:com.liferay.portlet.messageboards.action.RSSAction.java
License:Open Source License
protected byte[] getRSS(HttpServletRequest request) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); String plid = ParamUtil.getString(request, "p_l_id"); long companyId = ParamUtil.getLong(request, "companyId"); long groupId = ParamUtil.getLong(request, "groupId"); long userId = ParamUtil.getLong(request, "userId"); long categoryId = ParamUtil.getLong(request, "mbCategoryId"); long threadId = ParamUtil.getLong(request, "threadId"); int max = ParamUtil.getInteger(request, "max", SearchContainer.DEFAULT_DELTA); String type = ParamUtil.getString(request, "type", RSSUtil.TYPE_DEFAULT); double version = ParamUtil.getDouble(request, "version", RSSUtil.VERSION_DEFAULT); String displayStyle = ParamUtil.getString(request, "displayStyle", RSSUtil.DISPLAY_STYLE_FULL_CONTENT); String entryURL = themeDisplay.getPortalURL() + themeDisplay.getPathMain() + "/message_boards/find_message?p_l_id=" + plid; String rss = StringPool.BLANK; if (companyId > 0) { String feedURL = StringPool.BLANK; rss = MBMessageServiceUtil.getCompanyMessagesRSS(companyId, WorkflowConstants.STATUS_APPROVED, max, type, version, displayStyle, feedURL, entryURL, themeDisplay); } else if (groupId > 0) { String feedURL = themeDisplay.getPortalURL() + themeDisplay.getPathMain() + "/message_boards/find_recent_posts?p_l_id=" + plid; if (userId > 0) { rss = MBMessageServiceUtil.getGroupMessagesRSS(groupId, userId, WorkflowConstants.STATUS_APPROVED, max, type, version, displayStyle, feedURL, entryURL, themeDisplay); } else {//from ww w . j a v a 2s . c o m rss = MBMessageServiceUtil.getGroupMessagesRSS(groupId, WorkflowConstants.STATUS_APPROVED, max, type, version, displayStyle, feedURL, entryURL, themeDisplay); } } else if (categoryId > 0) { String feedURL = themeDisplay.getPortalURL() + themeDisplay.getPathMain() + "/message_boards/find_category?p_l_id=" + plid + "&mbCategoryId=" + categoryId; rss = MBMessageServiceUtil.getCategoryMessagesRSS(groupId, categoryId, WorkflowConstants.STATUS_APPROVED, max, type, version, displayStyle, feedURL, entryURL, themeDisplay); } else if (threadId > 0) { String feedURL = themeDisplay.getPortalURL() + themeDisplay.getPathMain() + "/message_boards/find_thread?p_l_id=" + plid + "&threadId=" + threadId; rss = MBMessageServiceUtil.getThreadMessagesRSS(threadId, WorkflowConstants.STATUS_APPROVED, max, type, version, displayStyle, feedURL, entryURL, themeDisplay); } return rss.getBytes(StringPool.UTF8); }
From source file:com.liferay.portlet.messageboards.lar.MBPortletDataHandlerImpl.java
License:Open Source License
protected void exportMessage(PortletDataContext portletDataContext, Element categoriesElement, Element messagesElement, Element threadFlagsElement, MBMessage message) throws Exception { if (!portletDataContext.isWithinDateRange(message.getModifiedDate())) { return;/*from w w w . j a v a2 s .c om*/ } if (message.getStatus() != WorkflowConstants.STATUS_APPROVED) { return; } exportParentCategory(portletDataContext, categoriesElement, message.getCategoryId()); String path = getMessagePath(portletDataContext, message); if (!portletDataContext.isPathNotProcessed(path)) { return; } Element messageElement = messagesElement.addElement("message"); message.setPriority(message.getPriority()); if (portletDataContext.getBooleanParameter(_NAMESPACE, "attachments") && message.isAttachments()) { for (String attachment : message.getAttachmentsFiles()) { int pos = attachment.lastIndexOf(CharPool.FORWARD_SLASH); String name = attachment.substring(pos + 1); String binPath = getMessageAttachementBinPath(portletDataContext, message, name); Element attachmentElement = messageElement.addElement("attachment"); attachmentElement.addAttribute("name", name); attachmentElement.addAttribute("bin-path", binPath); byte[] bytes = DLStoreUtil.getFileAsBytes(portletDataContext.getCompanyId(), CompanyConstants.SYSTEM, attachment); portletDataContext.addZipEntry(binPath, bytes); } message.setAttachmentsDir(message.getAttachmentsDir()); } if (portletDataContext.getBooleanParameter(_NAMESPACE, "thread-flags")) { List<MBThreadFlag> threadFlags = MBThreadFlagUtil.findByThreadId(message.getThreadId()); for (MBThreadFlag threadFlag : threadFlags) { exportThreadFlag(portletDataContext, threadFlagsElement, threadFlag); } } portletDataContext.addClassedModel(messageElement, path, message, _NAMESPACE); }
From source file:com.liferay.portlet.messageboards.lar.MBPortletDataHandlerImpl.java
License:Open Source License
protected void importMessage(PortletDataContext portletDataContext, Element messageElement, MBMessage message) throws Exception { long userId = portletDataContext.getUserId(message.getUserUuid()); String userName = message.getUserName(); Map<Long, Long> categoryPKs = (Map<Long, Long>) portletDataContext.getNewPrimaryKeysMap(MBCategory.class); long categoryId = MapUtil.getLong(categoryPKs, message.getCategoryId(), message.getCategoryId()); Map<Long, Long> threadPKs = (Map<Long, Long>) portletDataContext.getNewPrimaryKeysMap(MBThread.class); long threadId = MapUtil.getLong(threadPKs, message.getThreadId(), 0); Map<Long, Long> messagePKs = (Map<Long, Long>) portletDataContext.getNewPrimaryKeysMap(MBMessage.class); long parentMessageId = MapUtil.getLong(messagePKs, message.getParentMessageId(), message.getParentMessageId()); List<String> existingFiles = new ArrayList<String>(); List<ObjectValuePair<String, InputStream>> inputStreamOVPs = getAttachments(portletDataContext, messageElement, message);//from w w w .ja v a 2 s . c o m try { ServiceContext serviceContext = portletDataContext.createServiceContext(messageElement, message, _NAMESPACE); if (message.getStatus() != WorkflowConstants.STATUS_APPROVED) { serviceContext.setWorkflowAction(WorkflowConstants.ACTION_SAVE_DRAFT); } categoryId = getCategoryId(portletDataContext, message, categoryPKs, categoryId); MBMessage importedMessage = null; if (portletDataContext.isDataStrategyMirror()) { MBMessage existingMessage = MBMessageUtil.fetchByUUID_G(message.getUuid(), portletDataContext.getScopeGroupId()); if (existingMessage == null) { serviceContext.setUuid(message.getUuid()); importedMessage = MBMessageLocalServiceUtil.addMessage(userId, userName, portletDataContext.getScopeGroupId(), categoryId, threadId, parentMessageId, message.getSubject(), message.getBody(), message.getFormat(), inputStreamOVPs, message.getAnonymous(), message.getPriority(), message.getAllowPingbacks(), serviceContext); } else { importedMessage = MBMessageLocalServiceUtil.updateMessage(userId, existingMessage.getMessageId(), message.getSubject(), message.getBody(), inputStreamOVPs, existingFiles, message.getPriority(), message.getAllowPingbacks(), serviceContext); } } else { importedMessage = MBMessageLocalServiceUtil.addMessage(userId, userName, portletDataContext.getScopeGroupId(), categoryId, threadId, parentMessageId, message.getSubject(), message.getBody(), message.getFormat(), inputStreamOVPs, message.getAnonymous(), message.getPriority(), message.getAllowPingbacks(), serviceContext); } threadPKs.put(message.getThreadId(), importedMessage.getThreadId()); portletDataContext.importClassedModel(message, importedMessage, _NAMESPACE); } finally { for (ObjectValuePair<String, InputStream> inputStreamOVP : inputStreamOVPs) { InputStream inputStream = inputStreamOVP.getValue(); StreamUtil.cleanUp(inputStream); } } }
From source file:com.liferay.portlet.messageboards.service.impl.MBMessageLocalServiceImpl.java
License:Open Source License
public void deleteMessage(MBMessage message) throws PortalException, SystemException { // Indexer//from w w w . j a va2s. c om Indexer indexer = IndexerRegistryUtil.getIndexer(MBMessage.class); indexer.delete(message); // Attachments if (message.isAttachments()) { long companyId = message.getCompanyId(); long repositoryId = CompanyConstants.SYSTEM; String dirName = message.getAttachmentsDir(); try { DLStoreUtil.deleteDirectory(companyId, repositoryId, dirName); } catch (NoSuchDirectoryException nsde) { if (_log.isDebugEnabled()) { _log.debug(nsde.getMessage()); } } } // Thread int count = mbMessagePersistence.countByThreadId(message.getThreadId()); if (count == 1) { // Attachments long companyId = message.getCompanyId(); long repositoryId = CompanyConstants.SYSTEM; String dirName = message.getThreadAttachmentsDir(); try { DLStoreUtil.deleteDirectory(companyId, repositoryId, dirName); } catch (NoSuchDirectoryException nsde) { if (_log.isDebugEnabled()) { _log.debug(nsde.getMessage()); } } // Subscriptions subscriptionLocalService.deleteSubscriptions(message.getCompanyId(), MBThread.class.getName(), message.getThreadId()); // Thread mbThreadPersistence.remove(message.getThreadId()); // Category if ((message.getCategoryId() != MBCategoryConstants.DEFAULT_PARENT_CATEGORY_ID) && (message.getCategoryId() != MBCategoryConstants.DISCUSSION_CATEGORY_ID)) { MBCategory category = mbCategoryPersistence.findByPrimaryKey(message.getCategoryId()); category.setThreadCount(category.getThreadCount() - 1); category.setMessageCount(category.getMessageCount() - 1); mbCategoryPersistence.update(category, false); } } else { MBThread thread = mbThreadPersistence.findByPrimaryKey(message.getThreadId()); // Message is a root message if (thread.getRootMessageId() == message.getMessageId()) { List<MBMessage> childrenMessages = mbMessagePersistence.findByT_P(message.getThreadId(), message.getMessageId()); if (childrenMessages.size() > 1) { throw new RequiredMessageException(String.valueOf(message.getMessageId())); } else if (childrenMessages.size() == 1) { MBMessage childMessage = childrenMessages.get(0); childMessage.setRootMessageId(childMessage.getMessageId()); childMessage.setParentMessageId(MBMessageConstants.DEFAULT_PARENT_MESSAGE_ID); mbMessagePersistence.update(childMessage, false); thread.setRootMessageId(childMessage.getMessageId()); thread.setRootMessageUserId(childMessage.getUserId()); mbThreadPersistence.update(thread, false); } } // Message is a child message else { List<MBMessage> childrenMessages = mbMessagePersistence.findByT_P(message.getThreadId(), message.getMessageId()); // Message has children messages if (!childrenMessages.isEmpty()) { Iterator<MBMessage> itr = childrenMessages.iterator(); while (itr.hasNext()) { MBMessage childMessage = itr.next(); childMessage.setParentMessageId(message.getParentMessageId()); mbMessagePersistence.update(childMessage, false); } } else { MessageCreateDateComparator comparator = new MessageCreateDateComparator(true); MBMessage lastMessage = mbMessagePersistence.findByT_S_Last(thread.getThreadId(), WorkflowConstants.STATUS_APPROVED, comparator); if (message.getMessageId() == lastMessage.getMessageId()) { MBMessage parentMessage = mbMessagePersistence .findByPrimaryKey(message.getParentMessageId()); thread.setLastPostByUserId(parentMessage.getUserId()); thread.setLastPostDate(parentMessage.getModifiedDate()); } } } // Thread if (message.isApproved()) { int messageCount = mbMessagePersistence.countByT_S(message.getThreadId(), WorkflowConstants.STATUS_APPROVED); thread.setMessageCount(messageCount - 1); } mbThreadPersistence.update(thread, false); // Category if ((message.getCategoryId() != MBCategoryConstants.DEFAULT_PARENT_CATEGORY_ID) && (message.getCategoryId() != MBCategoryConstants.DISCUSSION_CATEGORY_ID) && !message.isDraft()) { MBCategory category = mbCategoryPersistence.findByPrimaryKey(message.getCategoryId()); category.setMessageCount(category.getMessageCount() - 1); mbCategoryPersistence.update(category, false); } } // Asset assetEntryLocalService.deleteEntry(MBMessage.class.getName(), message.getMessageId()); // Expando expandoValueLocalService.deleteValues(MBMessage.class.getName(), message.getMessageId()); // Ratings ratingsStatsLocalService.deleteStats(MBMessage.class.getName(), message.getMessageId()); // Resources if (!message.isDiscussion()) { resourceLocalService.deleteResource(message.getCompanyId(), MBMessage.class.getName(), ResourceConstants.SCOPE_INDIVIDUAL, message.getMessageId()); } // Message mbMessagePersistence.remove(message); // Statistics if (!message.isDiscussion()) { mbStatsUserLocalService.updateStatsUser(message.getGroupId(), message.getUserId()); } // Workflow workflowInstanceLinkLocalService.deleteWorkflowInstanceLinks(message.getCompanyId(), message.getGroupId(), message.getWorkflowClassName(), message.getMessageId()); }
From source file:com.liferay.portlet.messageboards.service.impl.MBMessageLocalServiceImpl.java
License:Open Source License
public MBMessage updateStatus(long userId, long messageId, int status, ServiceContext serviceContext) throws PortalException, SystemException { // Message/*from w w w.ja v a 2 s .co m*/ MBMessage message = getMessage(messageId); int oldStatus = message.getStatus(); User user = userPersistence.findByPrimaryKey(userId); Date now = new Date(); message.setStatus(status); message.setStatusByUserId(userId); message.setStatusByUserName(user.getFullName()); message.setStatusDate(serviceContext.getModifiedDate(now)); mbMessagePersistence.update(message, false); // Thread MBThread thread = mbThreadPersistence.findByPrimaryKey(message.getThreadId()); MBCategory category = null; if ((thread.getCategoryId() != MBCategoryConstants.DEFAULT_PARENT_CATEGORY_ID) && (thread.getCategoryId() != MBCategoryConstants.DISCUSSION_CATEGORY_ID)) { category = mbCategoryPersistence.findByPrimaryKey(thread.getCategoryId()); } if ((thread.getRootMessageId() == message.getMessageId()) && (oldStatus != status)) { thread.setStatus(status); thread.setStatusByUserId(userId); thread.setStatusByUserName(user.getFullName()); thread.setStatusDate(serviceContext.getModifiedDate(now)); } Indexer indexer = IndexerRegistryUtil.getIndexer(MBMessage.class); if (status == WorkflowConstants.STATUS_APPROVED) { if (oldStatus != WorkflowConstants.STATUS_APPROVED) { // Thread if ((category != null) && (thread.getRootMessageId() == message.getMessageId())) { category.setThreadCount(category.getThreadCount() + 1); mbCategoryPersistence.update(category, false); } thread.setMessageCount(thread.getMessageCount() + 1); if (message.isAnonymous()) { thread.setLastPostByUserId(0); } else { thread.setLastPostByUserId(message.getUserId()); } thread.setLastPostDate(serviceContext.getModifiedDate(now)); // Category if (category != null) { category.setMessageCount(category.getMessageCount() + 1); category.setLastPostDate(serviceContext.getModifiedDate(now)); mbCategoryPersistence.update(category, false); } // Asset if (serviceContext.isAssetEntryVisible() && ((message.getClassNameId() == 0) || (message.getParentMessageId() != 0))) { assetEntryLocalService.updateVisible(message.getWorkflowClassName(), message.getMessageId(), true); } if (!message.isDiscussion()) { // Social if (!message.isAnonymous() && !user.isDefaultUser()) { long receiverUserId = 0; MBMessage parentMessage = mbMessagePersistence .fetchByPrimaryKey(message.getParentMessageId()); if (parentMessage != null) { receiverUserId = parentMessage.getUserId(); } socialActivityLocalService.addActivity(userId, message.getGroupId(), MBMessage.class.getName(), message.getMessageId(), MBActivityKeys.ADD_MESSAGE, StringPool.BLANK, receiverUserId); if ((parentMessage != null) && (receiverUserId != userId)) { socialActivityLocalService.addActivity(userId, parentMessage.getGroupId(), MBMessage.class.getName(), parentMessage.getMessageId(), MBActivityKeys.REPLY_MESSAGE, StringPool.BLANK, 0); } } } else { // Social String className = (String) serviceContext.getAttribute("className"); long classPK = GetterUtil.getLong((String) serviceContext.getAttribute("classPK")); long parentMessageId = message.getParentMessageId(); if (parentMessageId != MBMessageConstants.DEFAULT_PARENT_MESSAGE_ID) { AssetEntry assetEntry = assetEntryLocalService.fetchEntry(className, classPK); if (assetEntry != null) { JSONObject extraDataJSONObject = JSONFactoryUtil.createJSONObject(); extraDataJSONObject.put("messageId", message.getMessageId()); socialActivityLocalService.addActivity(userId, assetEntry.getGroupId(), className, classPK, SocialActivityConstants.TYPE_ADD_COMMENT, extraDataJSONObject.toString(), assetEntry.getUserId()); } } } // Subscriptions notifySubscribers(message, serviceContext); } // Indexer if (!message.isDiscussion()) { indexer.reindex(message); } // Ping pingPingback(message, serviceContext); } else if ((oldStatus == WorkflowConstants.STATUS_APPROVED) && (status != WorkflowConstants.STATUS_APPROVED)) { // Thread if ((category != null) && (thread.getRootMessageId() == message.getMessageId())) { category.setThreadCount(category.getThreadCount() - 1); mbCategoryPersistence.update(category, false); } thread.setMessageCount(thread.getMessageCount() - 1); // Category if (category != null) { category.setMessageCount(category.getMessageCount() - 1); mbCategoryPersistence.update(category, false); } // Asset assetEntryLocalService.updateVisible(message.getWorkflowClassName(), message.getMessageId(), false); if (!message.isDiscussion()) { // Indexer indexer.delete(message); } } if (status != oldStatus) { mbThreadPersistence.update(thread, false); } // Statistics if (!message.isDiscussion()) { mbStatsUserLocalService.updateStatsUser(message.getGroupId(), userId, serviceContext.getModifiedDate(now)); } return message; }