package com.salesmanager.shop.store.controller.items.facade; import com.salesmanager.core.business.services.catalog.product.PricingService; import com.salesmanager.core.business.services.catalog.product.ProductService; import com.salesmanager.core.model.catalog.product.Product; import com.salesmanager.core.model.catalog.product.ProductCriteria; import com.salesmanager.core.model.merchant.MerchantStore; import com.salesmanager.core.model.reference.language.Language; import com.salesmanager.shop.model.catalog.product.ReadableProduct; import com.salesmanager.shop.model.catalog.product.ReadableProductList; import com.salesmanager.shop.populator.catalog.ReadableProductPopulator; import com.salesmanager.shop.utils.ImageFilePath; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; import java.util.List; import javax.inject.Inject; @Component public class ProductItemsFacadeImpl implements ProductItemsFacade { @Inject ProductService productService; @Inject PricingService pricingService; @Inject @Qualifier("img") private ImageFilePath imageUtils; @Override public ReadableProductList listItemsByManufacturer(MerchantStore store, Language language, Long manufacturerId, int startCount, int maxCount) throws Exception { ProductCriteria productCriteria = new ProductCriteria(); productCriteria.setMaxCount(maxCount); productCriteria.setStartIndex(startCount); productCriteria.setManufacturerId(manufacturerId); com.salesmanager.core.model.catalog.product.ProductList products = productService.listByStore(store, language, productCriteria); ReadableProductPopulator populator = new ReadableProductPopulator(); populator.setPricingService(pricingService); populator.setimageUtils(imageUtils); ReadableProductList productList = new ReadableProductList(); for(Product product : products.getProducts()) { //create new proxy product ReadableProduct readProduct = populator.populate(product, new ReadableProduct(), store, language); productList.getProducts().add(readProduct); } productList.setTotalCount(products.getTotalCount()); return productList; } @Override public ReadableProductList listItemsByIds(MerchantStore store, Language language, List<Long> ids, int startCount, int maxCount) throws Exception { ProductCriteria productCriteria = new ProductCriteria(); productCriteria.setMaxCount(maxCount); productCriteria.setStartIndex(startCount); productCriteria.setProductIds(ids); com.salesmanager.core.model.catalog.product.ProductList products = productService.listByStore(store, language, productCriteria); ReadableProductPopulator populator = new ReadableProductPopulator(); populator.setPricingService(pricingService); populator.setimageUtils(imageUtils); ReadableProductList productList = new ReadableProductList(); for(Product product : products.getProducts()) { //create new proxy product ReadableProduct readProduct = populator.populate(product, new ReadableProduct(), store, language); productList.getProducts().add(readProduct); } productList.setTotalCount(products.getTotalCount()); return productList; } }