Package org.hoteia.qalingo.web.mvc.controller.eco

Source Code of org.hoteia.qalingo.web.mvc.controller.eco.CartActionsController

/**
* Most of the code in the Qalingo project is copyrighted Hoteia and licensed
* under the Apache License Version 2.0 (release version 0.8.0)
*         http://www.apache.org/licenses/LICENSE-2.0
*
*                   Copyright (c) Hoteia, 2012-2014
* http://www.hoteia.com - http://twitter.com/hoteia - contact@hoteia.com
*
*/
package org.hoteia.qalingo.web.mvc.controller.eco;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang3.StringUtils;
import org.hoteia.qalingo.core.RequestConstants;
import org.hoteia.qalingo.core.domain.enumtype.FoUrls;
import org.hoteia.qalingo.core.pojo.RequestData;
import org.hoteia.qalingo.core.web.servlet.view.RedirectView;
import org.hoteia.qalingo.web.mvc.controller.AbstractMCommerceController;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

/**
*
*/
@Controller("cartActionsController")
public class CartActionsController extends AbstractMCommerceController {
   
    private final Logger logger = LoggerFactory.getLogger(getClass());

    @RequestMapping(FoUrls.CART_MULTIPLE_ADD_PRODUCT_URL)
    public ModelAndView multipleAddToCart(final HttpServletRequest request, final HttpServletResponse response) throws Exception {
        final RequestData requestData = requestUtil.getRequestData(request);
       
        final String skuCodes = request.getParameter(RequestConstants.REQUEST_PARAMETER_MULTIPLE_ADD_TO_CART_SKU_CODES);
        final String quantities = request.getParameter(RequestConstants.REQUEST_PARAMETER_MULTIPLE_ADD_TO_CART_QUANTITIES);
        if(StringUtils.isNotEmpty(skuCodes)){
            try {
                String[] splitSkuCodes = skuCodes.split(";");
                String[] splitQuantities = null;
                if(StringUtils.isNotEmpty(quantities)){
                    splitQuantities = skuCodes.split(";");
                }
                for (int i = 0; i < splitSkuCodes.length; i++) {
                    String skuCode = splitSkuCodes[i];
                    int quantity = 1;
                    try {
                        if(splitQuantities != null){
                            quantity = Integer.parseInt(splitQuantities[i]);
                        }
                        webManagementService.updateCart(requestData, skuCode, quantity);
                    } catch (Exception e) {
                        logger.error("Error to add product sku to cart, skuCode:" + skuCode, e);
                    }
                }
               
            } catch (Exception e) {
                logger.error("Error to add product sku to cart.", e);
            }
           
            final String url = urlService.generateUrl(FoUrls.CART_DETAILS, requestUtil.getRequestData(request));
            return new ModelAndView(new RedirectView(url));
        }
        List<String> excludedPatterns = new ArrayList<String>();
        excludedPatterns.add(FoUrls.CART_ADD_PRODUCT_URL);
        String fallbackUrl = urlService.generateUrl(FoUrls.HOME, requestData);
        final String lastRequestUrl = requestUtil.getLastRequestUrl(request, excludedPatterns, fallbackUrl);
        return new ModelAndView(new RedirectView(lastRequestUrl));
    }
   
    @RequestMapping(FoUrls.CART_ADD_PRODUCT_URL)
    public ModelAndView addToCart(final HttpServletRequest request, final HttpServletResponse response) throws Exception {
        final RequestData requestData = requestUtil.getRequestData(request);
       
        final String skuCode = request.getParameter(RequestConstants.REQUEST_PARAMETER_PRODUCT_SKU_CODE);
        final String categoryCode = request.getParameter(RequestConstants.REQUEST_PARAMETER_CATALOG_CATEGORY_CODE);
        if(StringUtils.isNotEmpty(skuCode)){
            try {
                if(StringUtils.isNotEmpty(categoryCode)){
                    webManagementService.updateCart(requestData, categoryCode, skuCode, 1);
                   
                } else {
                    webManagementService.updateCart(requestData, skuCode, 1);
                }
               
            } catch (Exception e) {
                logger.error("Error to add product sku to cart, skuCode:" + skuCode, e);
            }
           
            final String url = urlService.generateUrl(FoUrls.CART_DETAILS, requestUtil.getRequestData(request));
           
            return new ModelAndView(new RedirectView(url));
        }
        List<String> excludedPatterns = new ArrayList<String>();
        excludedPatterns.add(FoUrls.CART_ADD_PRODUCT_URL);
        String fallbackUrl = urlService.generateUrl(FoUrls.HOME, requestData);
        final String lastRequestUrl = requestUtil.getLastRequestUrl(request, excludedPatterns, fallbackUrl);
        return new ModelAndView(new RedirectView(lastRequestUrl));
    }

    @RequestMapping(FoUrls.CART_REMOVE_ITEM_URL)
    public ModelAndView removeFromCart(final HttpServletRequest request, final HttpServletResponse response) throws Exception {
        final RequestData requestData = requestUtil.getRequestData(request);
       
        final String productSkuCode = request.getParameter(RequestConstants.REQUEST_PARAMETER_PRODUCT_SKU_CODE);
        webManagementService.deleteCartItem(requestData, productSkuCode);

        return new ModelAndView(new RedirectView(urlService.generateUrl(FoUrls.CART_DETAILS, requestUtil.getRequestData(request))));
    }
   
}
TOP

Related Classes of org.hoteia.qalingo.web.mvc.controller.eco.CartActionsController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.