001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portlet.shopping.service.impl;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    import com.liferay.portal.kernel.util.OrderByComparator;
019    import com.liferay.portal.security.permission.ActionKeys;
020    import com.liferay.portal.service.ServiceContext;
021    import com.liferay.portlet.shopping.model.ShoppingItem;
022    import com.liferay.portlet.shopping.model.ShoppingItemField;
023    import com.liferay.portlet.shopping.model.ShoppingItemPrice;
024    import com.liferay.portlet.shopping.service.base.ShoppingItemServiceBaseImpl;
025    import com.liferay.portlet.shopping.service.permission.ShoppingCategoryPermission;
026    import com.liferay.portlet.shopping.service.permission.ShoppingItemPermission;
027    
028    import java.io.File;
029    
030    import java.util.List;
031    
032    /**
033     * @author Brian Wing Shun Chan
034     */
035    public class ShoppingItemServiceImpl extends ShoppingItemServiceBaseImpl {
036    
037            @Override
038            public ShoppingItem addItem(
039                            long groupId, long categoryId, String sku, String name,
040                            String description, String properties, String fieldsQuantities,
041                            boolean requiresShipping, int stockQuantity, boolean featured,
042                            Boolean sale, boolean smallImage, String smallImageURL,
043                            File smallFile, boolean mediumImage, String mediumImageURL,
044                            File mediumFile, boolean largeImage, String largeImageURL,
045                            File largeFile, List<ShoppingItemField> itemFields,
046                            List<ShoppingItemPrice> itemPrices, ServiceContext serviceContext)
047                    throws PortalException {
048    
049                    ShoppingCategoryPermission.check(
050                            getPermissionChecker(), groupId, categoryId, ActionKeys.ADD_ITEM);
051    
052                    return shoppingItemLocalService.addItem(
053                            getUserId(), groupId, categoryId, sku, name, description,
054                            properties, fieldsQuantities, requiresShipping, stockQuantity,
055                            featured, sale, smallImage, smallImageURL, smallFile, mediumImage,
056                            mediumImageURL, mediumFile, largeImage, largeImageURL, largeFile,
057                            itemFields, itemPrices, serviceContext);
058            }
059    
060            @Override
061            public void deleteItem(long itemId) throws PortalException {
062                    ShoppingItemPermission.check(
063                            getPermissionChecker(), itemId, ActionKeys.DELETE);
064    
065                    shoppingItemLocalService.deleteItem(itemId);
066            }
067    
068            @Override
069            public int getCategoriesItemsCount(long groupId, List<Long> categoryIds) {
070                    return shoppingItemFinder.filterCountByG_C(groupId, categoryIds);
071            }
072    
073            @Override
074            public ShoppingItem getItem(long itemId) throws PortalException {
075                    ShoppingItemPermission.check(
076                            getPermissionChecker(), itemId, ActionKeys.VIEW);
077    
078                    return shoppingItemLocalService.getItem(itemId);
079            }
080    
081            @Override
082            public List<ShoppingItem> getItems(long groupId, long categoryId) {
083                    return shoppingItemPersistence.filterFindByG_C(groupId, categoryId);
084            }
085    
086            @Override
087            public List<ShoppingItem> getItems(
088                    long groupId, long categoryId, int start, int end,
089                    OrderByComparator<ShoppingItem> obc) {
090    
091                    return shoppingItemPersistence.filterFindByG_C(
092                            groupId, categoryId, start, end, obc);
093            }
094    
095            @Override
096            public int getItemsCount(long groupId, long categoryId) {
097                    return shoppingItemPersistence.filterCountByG_C(groupId, categoryId);
098            }
099    
100            @Override
101            public ShoppingItem[] getItemsPrevAndNext(
102                            long itemId, OrderByComparator<ShoppingItem> obc)
103                    throws PortalException {
104    
105                    ShoppingItem item = shoppingItemPersistence.findByPrimaryKey(itemId);
106    
107                    return shoppingItemPersistence.filterFindByG_C_PrevAndNext(
108                            item.getItemId(), item.getGroupId(), item.getCategoryId(), obc);
109            }
110    
111            @Override
112            public ShoppingItem updateItem(
113                            long itemId, long groupId, long categoryId, String sku, String name,
114                            String description, String properties, String fieldsQuantities,
115                            boolean requiresShipping, int stockQuantity, boolean featured,
116                            Boolean sale, boolean smallImage, String smallImageURL,
117                            File smallFile, boolean mediumImage, String mediumImageURL,
118                            File mediumFile, boolean largeImage, String largeImageURL,
119                            File largeFile, List<ShoppingItemField> itemFields,
120                            List<ShoppingItemPrice> itemPrices, ServiceContext serviceContext)
121                    throws PortalException {
122    
123                    ShoppingItemPermission.check(
124                            getPermissionChecker(), itemId, ActionKeys.UPDATE);
125    
126                    return shoppingItemLocalService.updateItem(
127                            getUserId(), itemId, groupId, categoryId, sku, name, description,
128                            properties, fieldsQuantities, requiresShipping, stockQuantity,
129                            featured, sale, smallImage, smallImageURL, smallFile, mediumImage,
130                            mediumImageURL, mediumFile, largeImage, largeImageURL, largeFile,
131                            itemFields, itemPrices, serviceContext);
132            }
133    
134    }