package com.itcast.web.action.product.shopping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.springframework.stereotype.Controller;
import com.itcast.bean.product.BuyCart;
import com.itcast.bean.product.BuyItem;
import com.itcast.bean.product.ProductInfo;
import com.itcast.bean.product.ProductStyle;
import com.itcast.web.formbean.product.CartForm;
@Controller("/shopping/cart/manage")
public class CartManageAction extends DispatchAction {
public ActionForward delete(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// TODO Auto-generated method stub
CartForm cartForm = (CartForm) form;
BuyCart buycart = getBuyCart(request);
if(buycart !=null){
ProductStyle style = new ProductStyle(cartForm.getStyleid());
ProductInfo product = new ProductInfo(cartForm.getProductid());
product.addProductStyle(style);
BuyItem item = new BuyItem(product);
buycart.remove(item);
}
return mapping.findForward("result");
}
public ActionForward deleteAll(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
BuyCart buycart = getBuyCart(request);
if(buycart != null){
buycart.removeAll();
}
return mapping.findForward("result");
}
public ActionForward updateNumber(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// TODO Auto-generated method stub
BuyCart buycart = getBuyCart(request);
if(buycart != null){
for(BuyItem item : buycart.getItems()){
StringBuffer key = new StringBuffer("amount_");
key.append(item.getProduct().getId()).append("_");
if(item.getProduct().getStyles().size()>0){
key.append(item.getProduct().getStyles().iterator().next().getId());
}
String keyval = request.getParameter(key.toString());
if(keyval!= null && !"".equals(keyval)){
try {
int val = Integer.parseInt(keyval);
if(val>0) item.setNumber(val);
} catch (Exception e) {
}
}
}
}
return mapping.findForward("result");
}
private BuyCart getBuyCart(HttpServletRequest request){
return (BuyCart)request.getSession().getAttribute("buycart");
}
}