⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 orderaction.java

📁 本系统是网上购物的详细代码
💻 JAVA
字号:
package cn.com.tarena.ecport.web.action;

import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

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

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.MappingDispatchAction;

import cn.com.tarena.ecport.biz.IOrderBusiness;
import cn.com.tarena.ecport.biz.IOrderStatusBusiness;
import cn.com.tarena.ecport.biz.IPayWayBusiness;
import cn.com.tarena.ecport.biz.IShoppingCart;
import cn.com.tarena.ecport.biz.factory.BusinessFactory;
import cn.com.tarena.ecport.pojo.OrderLine;
import cn.com.tarena.ecport.pojo.OrderStatus;
import cn.com.tarena.ecport.pojo.Orders;
import cn.com.tarena.ecport.pojo.PayWay;
import cn.com.tarena.ecport.pojo.User;

public class OrderAction extends MappingDispatchAction{
	
	/**
	 * 提交订单到数据库
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	@SuppressWarnings("unchecked")
	public ActionForward submitOrder(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
		HttpSession session = request.getSession();
		User user = (User) session.getAttribute("user");
		Orders order = new Orders();
		order.setUsers(user);
		
		IPayWayBusiness paywayBusiness = (IPayWayBusiness) BusinessFactory.getBusiness(IPayWayBusiness.class.getName());
		PayWay payWay = paywayBusiness.getPayWayById(Long.parseLong(request.getParameter("payway")));
		order.setPayway(payWay);
		
		IShoppingCart isc = (IShoppingCart) session.getAttribute("ShopCart");
		Map<Long, OrderLine> map = isc.getOrderLineMap();
		Set<OrderLine> orderLines = joinOrder(map);
		order.setOrderlines(orderLines);
		
		order.setCost(isc.getTotalPrice());
		order.setName(user.getUserid()+"_order_");
		
		IOrderStatusBusiness iosb = (IOrderStatusBusiness) BusinessFactory.getBusiness(IOrderStatusBusiness.class.getName());
		OrderStatus orderStatus = iosb.getOrderStatusById(1L);
		order.setOrderstatus(orderStatus);
		
		IOrderBusiness iob = (IOrderBusiness) BusinessFactory.getBusiness(IOrderBusiness.class.getName());
		iob.checkOut(order);
		
		isc.removeAllProducts();

		return mapping.findForward("viewOrderList");
	}
	
	/**
	 * 把map集合中的订单项取出放入set集合中,然后封装到order对象中
	 * @param map
	 * @return Set
	 */
	private Set<OrderLine> joinOrder(Map<Long, OrderLine> map) {
		Set<OrderLine> orderLines = new HashSet<OrderLine>();
		Set<Long> set = map.keySet();
		
		/*
		 * 把map中的OrderLine插入数据库,如果再往map中添加几个OrderLine,
		 * 然后再插入数据库的话,只会更新原来的OrderLine,并没有真正插入
		 * 所以这里重新创建了OrderLine对象可以解决此问题
		 */
		for(Long proid : set){
			OrderLine orderLine = new OrderLine();
			orderLine.setAmount(map.get(proid).getAmount());
			orderLine.setOrders(map.get(proid).getOrders());
			orderLine.setProduct(map.get(proid).getProduct());
			orderLines.add(orderLine);
		}
		return orderLines;
	}
	
	/**
	 * 查看订单列表
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward viewOrderList(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
		HttpSession session = request.getSession();
		User user = (User) session.getAttribute("user");
		
		IOrderBusiness iob = (IOrderBusiness) BusinessFactory.getBusiness(IOrderBusiness.class.getName());
		List<Orders> orders = iob.getOrderListByUserId(user.getUserid());
		request.setAttribute("orders", orders);
		return mapping.findForward("orderList");
	}
	
	/**
	 *  删除一个订单
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward removeOrder(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
		Long orderId = Long.parseLong(request.getParameter("orderid"));
		IOrderBusiness iob = (IOrderBusiness) BusinessFactory.getBusiness(IOrderBusiness.class.getName());
		iob.deleteOrderById(orderId);
		return mapping.findForward("viewOrderList");
	}

	/**
	 * 查看订单信息
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward viewOrderinfo(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
        Long orderid = Long.parseLong(request.getParameter("orderid"));
        IOrderBusiness iob = (IOrderBusiness)BusinessFactory.getBusiness(IOrderBusiness.class.getName());
        Orders order = iob.getOrderById(orderid);
        
        request.setAttribute("order", order);
        return mapping.findForward("orderinfo");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -