MiniCartController.java
Home
/
sm-shop /
src /
main /
java /
com /
salesmanager /
web /
shop /
controller /
shoppingCart /
MiniCartController.java
/**
*
*/
package com.salesmanager.web.shop.controller.shoppingCart;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.salesmanager.core.business.customer.model.Customer;
import com.salesmanager.core.business.merchant.model.MerchantStore;
import com.salesmanager.core.business.reference.language.model.Language;
import com.salesmanager.web.constants.Constants;
import com.salesmanager.web.entity.shoppingcart.ShoppingCartData;
import com.salesmanager.web.shop.controller.AbstractController;
import com.salesmanager.web.shop.controller.shoppingCart.facade.ShoppingCartFacade;
/**
* @author Umesh A
*
*/
@Controller
@RequestMapping("/shop/cart")
public class MiniCartController extends AbstractController{
private static final Logger LOG = LoggerFactory.getLogger(MiniCartController.class);
@Autowired
private ShoppingCartFacade shoppingCartFacade;
@RequestMapping(value={"/displayMiniCartByCode.html"}, method = { RequestMethod.GET, RequestMethod.POST })
public @ResponseBody ShoppingCartData displayMiniCart(final String shoppingCartCode, HttpServletRequest request, Model model){
try {
MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
Customer customer = getSessionAttribute( Constants.CUSTOMER, request );
ShoppingCartData cart = shoppingCartFacade.getShoppingCartData(customer,merchantStore,shoppingCartCode);
if(cart!=null) {
request.getSession().setAttribute(Constants.SHOPPING_CART, cart.getCode());
}
if(cart==null) {
request.getSession().removeAttribute(Constants.SHOPPING_CART);//make sure there is no cart here
}
return cart;
} catch(Exception e) {
LOG.error("Error while getting the shopping cart",e);
}
return null;
}
@RequestMapping(value={"/removeMiniShoppingCartItem.html"}, method = { RequestMethod.GET, RequestMethod.POST })
public @ResponseBody ShoppingCartData removeShoppingCartItem(Long lineItemId, final String shoppingCartCode, HttpServletRequest request, Model model) throws Exception {
Language language = (Language)request.getAttribute(Constants.LANGUAGE);
MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
ShoppingCartData cart = shoppingCartFacade.getShoppingCartData(null, merchantStore, shoppingCartCode);
if(cart==null) {
return null;
}
ShoppingCartData shoppingCartData=shoppingCartFacade.removeCartItem(lineItemId, cart.getCode(), merchantStore,language);
if(CollectionUtils.isEmpty(shoppingCartData.getShoppingCartItems())) {
shoppingCartFacade.deleteShoppingCart(shoppingCartData.getId(), merchantStore);
request.getSession().removeAttribute(Constants.SHOPPING_CART);
return null;
}
request.getSession().setAttribute(Constants.SHOPPING_CART, cart.getCode());
LOG.debug("removed item" + lineItemId + "from cart");
return shoppingCartData;
}
}