现在的位置: 首页 > 综合 > 正文

购物网站18:购物车列表—购物车管理—-配送信息管理—-订单确认—-支付方式—-购物完成—-购买管理

2014年01月28日 ⁄ 综合 ⁄ 共 12241字 ⁄ 字号 评论关闭

@Controller("/shopping/cart")
public class CartAction extends Action {
 @Resource ProductInfoService productService;

 @Override
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  BuyCartForm formbean = (BuyCartForm) form;
  BuyCart buyCart = WebUtil.getBuyCart(request);
  if(buyCart==null){
   buyCart = new BuyCart();
   request.getSession().setAttribute("buyCart", buyCart);
  }
  //解决session在新开浏览器不能共享的问题
  WebUtil.addCookie(response, "JSESSIONID", request.getSession().getId(), request.getSession().getMaxInactiveInterval());
  if(formbean.getProductid()!=null && formbean.getProductid()>0){
   ProductInfo product = productService.find(formbean.getProductid());
   if(product!=null){
    ProductStyle selectStyle = null;
    for(ProductStyle style : product.getStyles()){
     if(style.getId().equals(formbean.getStyleid())){
      selectStyle = style;
      break;
     }
    }
    product.getStyles().clear();
    product.addProductStyle(selectStyle);
    buyCart.addBuyItem(new BuyItem(product));
   }
  }
  return mapping.findForward("cart");
 }

}

 

-----------------------------------------------------------------------------

 

/**
 * 购物车管理
 */
@Controller("/shopping/cart/manage")
public class CartManageAction extends DispatchAction {
 /**
  * 删除购物项
  */
 public ActionForward delete(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  BuyCartForm formbean = (BuyCartForm) form;
  ProductInfo product = new ProductInfo(formbean.getProductid());
  product.addProductStyle(new ProductStyle(formbean.getStyleid()));
  BuyItem buyItem = new BuyItem(product);
  BuyCart buyCart = WebUtil.getBuyCart(request);
  buyCart.deleteBuyItem(buyItem);
  
  request.setAttribute("directUrl", "/shopping/cart.do?directUrl="+ formbean.getDirectUrl());
  return mapping.findForward("directUrl");
 }
 
 /**
  * 清空购物车
  */
 public ActionForward deleteAll(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  BuyCartForm formbean = (BuyCartForm) form;
  BuyCart buyCart = WebUtil.getBuyCart(request);
  buyCart.deleteAll();
  request.setAttribute("directUrl", "/shopping/cart.do?directUrl="+ formbean.getDirectUrl());
  return mapping.findForward("directUrl");
 }
 /**
  * 修改购买数量
  */
 public ActionForward updateAmount(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  BuyCartForm formbean = (BuyCartForm) form;
  update(request);
  request.setAttribute("directUrl", "/shopping/cart.do?directUrl="+ formbean.getDirectUrl());
  return mapping.findForward("directUrl");
 }
 /**
  * 结算
  */
 public ActionForward settleAccounts(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  BuyCartForm formbean = (BuyCartForm) form;
  update(request);
  String url =  "/customer/shopping/deliver.do";
  if(formbean.getDirectUrl()!=null && !"".equals(formbean.getDirectUrl().trim())){
   url = new String(Base64.decodeBase64(formbean.getDirectUrl().trim().getBytes()));
  }
  request.setAttribute("directUrl", url);
  return mapping.findForward("directUrl");
 }
 
 
 private void update(HttpServletRequest request) {
  BuyCart buyCart = WebUtil.getBuyCart(request);
  for(BuyItem item : buyCart.getItems()){
   String paramName = "amount_"+ item.getProduct().getId()+ "_"+ item.getProduct().getStyles().iterator().next().getId();
   String paramValue = request.getParameter(paramName);
   item.setAmount(new Integer(paramValue));
  }
 }
 
}

 

-----------------------------------------------------------------------------

 

@Controller("/customer/shopping/deliver")
public class DeliverInfoAction extends Action {

 @Override
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  DeliverInfoForm formbean = (DeliverInfoForm) form;
  BuyCart cart = WebUtil.getBuyCart(request);
  Buyer buyer = WebUtil.getBuyer(request);
  formbean.setGender(Gender.MAN);
  formbean.setBuyer_gender(Gender.MAN);
  formbean.setBuyerIsrecipients(true);
  formbean.setEmail(WebUtil.getBuyer(request).getEmail());
  if(cart.getBuyerIsrecipients()!=null) formbean.setBuyerIsrecipients(cart.getBuyerIsrecipients());
  if(cart.getDeliverInfo()!=null){
   formbean.setRecipients(cart.getDeliverInfo().getRecipients());
   formbean.setGender(cart.getDeliverInfo().getGender());
   formbean.setEmail(cart.getDeliverInfo().getEmail());
   formbean.setMobile(cart.getDeliverInfo().getMobile());
   formbean.setTel(cart.getDeliverInfo().getTel());//010-3939893-90
   formbean.setAddress(cart.getDeliverInfo().getAddress());
   formbean.setPostalcode(cart.getDeliverInfo().getPostalcode());
  }else{
   if(buyer.getContactInfo()!=null){
    formbean.setRecipients(buyer.getRealname());
    formbean.setGender(buyer.getGender());
    formbean.setEmail(buyer.getEmail());
    formbean.setMobile(buyer.getContactInfo().getMobile());
    formbean.setTel(buyer.getContactInfo().getPhone());//010-3939893-90
    formbean.setAddress(buyer.getContactInfo().getAddress());
    formbean.setPostalcode(buyer.getContactInfo().getPostalcode());
   }
  }
  if(cart.getContactInfo()!=null){
   formbean.setBuyer(cart.getContactInfo().getBuyerName());
   formbean.setBuyer_gender(cart.getContactInfo().getGender());
   formbean.setBuyer_address(cart.getContactInfo().getAddress());
   formbean.setBuyer_mobile(cart.getContactInfo().getMobile());
   formbean.setBuyer_tel(cart.getContactInfo().getTel());
   formbean.setBuyer_postalcode(cart.getContactInfo().getPostalcode());   
  }else{
   if(buyer.getContactInfo()!=null){
    formbean.setBuyer(buyer.getRealname());
    formbean.setBuyer_gender(buyer.getGender());
    formbean.setBuyer_mobile(buyer.getContactInfo().getMobile());
    formbean.setBuyer_tel(buyer.getContactInfo().getPhone());//010-3939893-90
    formbean.setBuyer_address(buyer.getContactInfo().getAddress());
    formbean.setBuyer_postalcode(buyer.getContactInfo().getPostalcode());
   }
  }
  return mapping.findForward("deliverinfo");
 }

}

 

---------------------------------------------------------------------

/**
 * 订单信息确认
 */
@Controller("/customer/shopping/confirm")
public class OrderConfirmAction extends Action {

 @Override
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  DeliverInfoForm formbean = (DeliverInfoForm) form;
  String encodeurl = new String(Base64.encodeBase64("/customer/shopping/confirm.do".getBytes()));
  request.setAttribute("directUrl", encodeurl);
  return mapping.findForward("confirm");
 }

}

 

---------------------------------------------------------------------

 

@Controller("/customer/shopping/paymentway")
public class PaymentWayAction extends Action {

 @Override
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  DeliverInfoForm formbean = (DeliverInfoForm) form;
  BuyCart cart = WebUtil.getBuyCart(request);
  if(cart.getDeliverInfo()==null){
   request.setAttribute("directUrl", "/customer/shopping/deliver.do");
   return mapping.findForward("directUrl");
  }
  formbean.setDeliverway(DeliverWay.EXPRESSDELIVERY);
  formbean.setPaymentway(PaymentWay.NET);
  if(cart.getDeliverInfo().getDeliverWay()!=null){
   formbean.setDeliverway(cart.getDeliverInfo().getDeliverWay());
  }
  if(cart.getPaymentWay()!=null){
   formbean.setPaymentway(cart.getPaymentWay());
  }
  
  formbean.setRequirement(cart.getDeliverInfo().getRequirement());
  formbean.setDelivernote(cart.getDeliverInfo().getRequirement());
  return mapping.findForward("paymentway");
 }

}

 

---------------------------------------------------------------------------

 

@Controller("/shopping/finish")
public class ShoppingFinishAction extends Action {

 @Override
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  ShoppingFinishForm formbean = (ShoppingFinishForm) form;
  String view = "postofficeremittance";
  if(PaymentWay.COD.equals(formbean.getPaymentway())){
   view = "cod";
  }else if(PaymentWay.NET.equals(formbean.getPaymentway())){
   view = "net";
  }else if(PaymentWay.BANKREMITTANCE.equals(formbean.getPaymentway())){
   view = "bank";
  }
  return mapping.findForward(view);
 }

}

 

--------------------------------------------------------------------------

 

@Controller("/customer/shopping/manage")
public class ShoppingManageAction extends DispatchAction {
 @Resource(name="orderServiceBean") OrderService orderService;
 /**
  * 保存收货人信息
  */
 public ActionForward saveDeliverInfo(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  DeliverInfoForm formbean = (DeliverInfoForm) form;
  BuyCart cart = WebUtil.getBuyCart(request);
  if(cart.getDeliverInfo()==null) cart.setDeliverInfo(new OrderDeliverInfo());
  //保存收货人的信息
  cart.getDeliverInfo().setRecipients(formbean.getRecipients());
  cart.getDeliverInfo().setGender(formbean.getGender());
  cart.getDeliverInfo().setAddress(formbean.getAddress());
  cart.getDeliverInfo().setEmail(formbean.getEmail());
  cart.getDeliverInfo().setMobile(formbean.getMobile());
  cart.getDeliverInfo().setPostalcode(formbean.getPostalcode());
  cart.getDeliverInfo().setTel(formbean.getTel());

  cart.setBuyerIsrecipients(formbean.getBuyerIsrecipients());
  if(cart.getContactInfo()==null) cart.setContactInfo(new OrderContactInfo());
  if(cart.getBuyerIsrecipients()){//如果购买人和收货人相同,那么订单的联系信息就是收货人的信息
   cart.getContactInfo().setBuyerName(formbean.getRecipients());
   cart.getContactInfo().setGender(formbean.getGender());
   cart.getContactInfo().setAddress(formbean.getAddress());
   cart.getContactInfo().setEmail(formbean.getEmail());
   cart.getContactInfo().setMobile(formbean.getMobile());
   cart.getContactInfo().setPostalcode(formbean.getPostalcode());
   cart.getContactInfo().setTel(formbean.getTel());
  }else{//从表单中得到输入数据,并保存进购物车的OrderContactInfo
   cart.getContactInfo().setBuyerName(formbean.getBuyer());
   cart.getContactInfo().setEmail(WebUtil.getBuyer(request).getEmail());
   cart.getContactInfo().setGender(formbean.getBuyer_gender());
   cart.getContactInfo().setAddress(formbean.getBuyer_address());
   cart.getContactInfo().setMobile(formbean.getBuyer_mobile());
   cart.getContactInfo().setPostalcode(formbean.getBuyer_postalcode());
   cart.getContactInfo().setTel(formbean.getBuyer_tel());
  }
  String url = "/customer/shopping/paymentway.do";
  if(formbean.getDirectUrl()!=null && !"".equals(formbean.getDirectUrl().trim())){
   url = formbean.getDirectUrl();
  }
  request.setAttribute("directUrl", url);
  return mapping.findForward("directUrl");
 }
 /**
  * 保存配送方式与支付方式
  */
 public ActionForward savePaymentway(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  DeliverInfoForm formbean = (DeliverInfoForm) form;
  BuyCart cart = WebUtil.getBuyCart(request);
  /*
   * 1>把配送方式保存进购物车的OrderDeliverInfo对象的deliverWay属性
   * 2>当用户选择的配送方式为"快递送货上门"或"加急快递送货上门"的时候,需要把"时间要求"保存进购物车的OrderDeliverInfo对象的requirement属性,如果"时间要求"选择的是"特殊说明",应该保存用户填写的数据
   * 3>如果用户选择的配送方式不是"快递送货上门"和"加急快递送货上门"的时候,需要把购物车的OrderDeliverInfo对象的requirement属性设置为null;
   * 4>保存支付方式进购物车的paymentWay属性.
   */
  cart.getDeliverInfo().setDeliverWay(formbean.getDeliverway());
  if(DeliverWay.EXPRESSDELIVERY.equals(formbean.getDeliverway()) ||
    DeliverWay.EXIGENCEEXPRESSDELIVERY.equals(formbean.getDeliverway())){
   cart.getDeliverInfo().setRequirement(formbean.getRequirement());
   if("other".equals(formbean.getRequirement())){
    cart.getDeliverInfo().setRequirement(formbean.getDelivernote());
   }
  }else{
   cart.getDeliverInfo().setRequirement(null);
  }
  cart.setPaymentWay(formbean.getPaymentway());
  request.setAttribute("directUrl", "/customer/shopping/confirm.do");
  return mapping.findForward("directUrl");
 }
 /**
  * 提交订单
  */
 public ActionForward saveorder(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  DeliverInfoForm formbean = (DeliverInfoForm) form;
  BuyCart cart = WebUtil.getBuyCart(request);
  cart.setNote(formbean.getNote());  
  Order order = orderService.createOrder(cart, WebUtil.getBuyer(request).getUsername());
  WebUtil.deleteBuyCart(request);
  
  request.setAttribute("directUrl", "/shopping/finish.do?orderid="+ order.getOrderid()+"&payablefee="+
    order.getPayablefee()+"&paymentway="+ order.getPaymentWay());
  return mapping.findForward("directUrl");
 }
 
}

 

抱歉!评论已关闭.