com.liferay.commerce.initializer.util.CPSpecificationOptionsImporter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.commerce.initializer.util Show documentation
Show all versions of com.liferay.commerce.initializer.util Show documentation
Liferay Commerce Initializer Utilities
The newest version!
/**
* 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.initializer.util;
import com.liferay.commerce.initializer.util.internal.CommerceInitializerUtil;
import com.liferay.commerce.product.model.CPOptionCategory;
import com.liferay.commerce.product.model.CPSpecificationOption;
import com.liferay.commerce.product.service.CPOptionCategoryLocalService;
import com.liferay.commerce.product.service.CPSpecificationOptionLocalService;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.json.JSONArray;
import com.liferay.portal.kernel.json.JSONObject;
import com.liferay.portal.kernel.model.User;
import com.liferay.portal.kernel.service.ServiceContext;
import com.liferay.portal.kernel.service.UserLocalService;
import com.liferay.portal.kernel.util.LocaleUtil;
import com.liferay.portal.kernel.util.Validator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
/**
* @author Andrea Di Giorgi
*/
@Component(service = CPSpecificationOptionsImporter.class)
public class CPSpecificationOptionsImporter {
public List importCPSpecificationOptions(
JSONArray jsonArray, long scopeGroupId, long userId)
throws PortalException {
User user = _userLocalService.getUser(userId);
ServiceContext serviceContext = new ServiceContext();
serviceContext.setCompanyId(user.getCompanyId());
serviceContext.setScopeGroupId(scopeGroupId);
serviceContext.setUserId(userId);
List cpSpecificationOptions = new ArrayList<>(
jsonArray.length());
for (int i = 0; i < jsonArray.length(); i++) {
CPSpecificationOption cpSpecificationOption =
_importCPSpecificationOption(
jsonArray.getJSONObject(i), serviceContext);
cpSpecificationOptions.add(cpSpecificationOption);
}
return cpSpecificationOptions;
}
private CPSpecificationOption _importCPSpecificationOption(
JSONObject jsonObject, ServiceContext serviceContext)
throws PortalException {
long cpOptionCategoryId = 0;
String categoryKey = jsonObject.getString("categoryKey");
if (Validator.isNotNull(categoryKey)) {
CPOptionCategory cpOptionCategory =
_cpOptionCategoryLocalService.getCPOptionCategory(
serviceContext.getCompanyId(), categoryKey);
cpOptionCategoryId = cpOptionCategory.getCPOptionCategoryId();
}
Locale locale = LocaleUtil.getSiteDefault();
String key = jsonObject.getString("key");
Map titleMap = Collections.singletonMap(
locale, CommerceInitializerUtil.getValue(jsonObject, "title", key));
Map descriptionMap = Collections.singletonMap(
locale, jsonObject.getString("description"));
boolean facetable = jsonObject.getBoolean("facetable");
double priority = jsonObject.getDouble("priority", 0);
CPSpecificationOption cpSpecificationOption =
_cpSpecificationOptionLocalService.fetchCPSpecificationOption(
serviceContext.getCompanyId(), key);
if (cpSpecificationOption != null) {
return _cpSpecificationOptionLocalService.
updateCPSpecificationOption(
cpSpecificationOption.getExternalReferenceCode(),
cpSpecificationOption.getCPSpecificationOptionId(),
cpOptionCategoryId, null, titleMap, descriptionMap,
facetable, key, priority, serviceContext);
}
return _cpSpecificationOptionLocalService.addCPSpecificationOption(
null, serviceContext.getUserId(), cpOptionCategoryId, null,
titleMap, descriptionMap, facetable, key, priority, serviceContext);
}
@Reference
private CPOptionCategoryLocalService _cpOptionCategoryLocalService;
@Reference
private CPSpecificationOptionLocalService
_cpSpecificationOptionLocalService;
@Reference
private UserLocalService _userLocalService;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy