com.liferay.commerce.channel.web.internal.health.status.CommerceCartContentHealthStatus Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.commerce.channel.web
Show all versions of com.liferay.commerce.channel.web
Liferay Commerce Channel Web
/**
* SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
* SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
*/
package com.liferay.commerce.channel.web.internal.health.status;
import com.liferay.commerce.constants.CommerceHealthStatusConstants;
import com.liferay.commerce.constants.CommercePortletKeys;
import com.liferay.commerce.product.channel.CommerceChannelHealthStatus;
import com.liferay.commerce.product.constants.CommerceChannelConstants;
import com.liferay.commerce.product.model.CommerceChannel;
import com.liferay.commerce.product.service.CommerceChannelService;
import com.liferay.petra.string.StringPool;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.language.Language;
import com.liferay.portal.kernel.model.Layout;
import com.liferay.portal.kernel.model.LayoutConstants;
import com.liferay.portal.kernel.model.LayoutTypePortlet;
import com.liferay.portal.kernel.security.auth.PrincipalThreadLocal;
import com.liferay.portal.kernel.service.LayoutService;
import com.liferay.portal.kernel.service.ServiceContext;
import com.liferay.portal.kernel.util.Portal;
import com.liferay.portal.kernel.util.ResourceBundleUtil;
import com.liferay.portal.kernel.util.StringUtil;
import java.util.List;
import java.util.Locale;
import java.util.ResourceBundle;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
/**
* @author Alessio Antonio Rendina
*/
@Component(
property = {
"commerce.channel.health.status.display.order:Integer=20",
"commerce.channel.health.status.key=" + CommerceHealthStatusConstants.COMMERCE_CART_CONTENT_COMMERCE_HEALTH_STATUS_KEY
},
service = CommerceChannelHealthStatus.class
)
public class CommerceCartContentHealthStatus
implements CommerceChannelHealthStatus {
@Override
public void fixIssue(long companyId, long commerceChannelId)
throws PortalException {
if (isFixed(companyId, commerceChannelId)) {
return;
}
CommerceChannel commerceChannel =
_commerceChannelService.getCommerceChannel(commerceChannelId);
String name = "Cart";
String friendlyURL =
StringPool.FORWARD_SLASH + StringUtil.toLowerCase(name);
boolean privateLayout = true;
List layouts = _layoutService.getLayouts(
commerceChannel.getSiteGroupId(), true);
if (layouts.isEmpty()) {
privateLayout = false;
}
Layout layout = _layoutService.addLayout(
null, commerceChannel.getSiteGroupId(), privateLayout,
LayoutConstants.DEFAULT_PARENT_LAYOUT_ID, name, name, null,
LayoutConstants.TYPE_PORTLET, true, friendlyURL,
new ServiceContext());
LayoutTypePortlet layoutTypePortlet =
(LayoutTypePortlet)layout.getLayoutType();
layoutTypePortlet.setLayoutTemplateId(
PrincipalThreadLocal.getUserId(), "1_column", false);
layoutTypePortlet.addPortletId(
PrincipalThreadLocal.getUserId(),
CommercePortletKeys.COMMERCE_CART_CONTENT);
_layoutService.updateLayout(
layout.getGroupId(), layout.isPrivateLayout(), layout.getLayoutId(),
layout.getTypeSettings());
}
@Override
public String getDescription(Locale locale) {
ResourceBundle resourceBundle = ResourceBundleUtil.getBundle(
"content.Language", locale, getClass());
return _language.get(
resourceBundle,
CommerceHealthStatusConstants.
COMMERCE_CART_CONTENT_COMMERCE_HEALTH_STATUS_DESCRIPTION);
}
@Override
public String getKey() {
return CommerceHealthStatusConstants.
COMMERCE_CART_CONTENT_COMMERCE_HEALTH_STATUS_KEY;
}
@Override
public String getName(Locale locale) {
ResourceBundle resourceBundle = ResourceBundleUtil.getBundle(
"content.Language", locale, getClass());
return _language.get(
resourceBundle,
CommerceHealthStatusConstants.
COMMERCE_CART_CONTENT_COMMERCE_HEALTH_STATUS_KEY);
}
@Override
public boolean isFixed(long companyId, long commerceChannelId)
throws PortalException {
CommerceChannel commerceChannel =
_commerceChannelService.getCommerceChannel(commerceChannelId);
String commerceChannelType = commerceChannel.getType();
if (!commerceChannelType.equals(
CommerceChannelConstants.CHANNEL_TYPE_SITE)) {
return true;
}
long plid = _portal.getPlidFromPortletId(
commerceChannel.getSiteGroupId(),
CommercePortletKeys.COMMERCE_CART_CONTENT);
if (plid > 0) {
return true;
}
return false;
}
@Reference
private CommerceChannelService _commerceChannelService;
@Reference
private Language _language;
@Reference
private LayoutService _layoutService;
@Reference
private Portal _portal;
}