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

📄 orderaction.java

📁 java学习的必要的资料,servlet的说明很好
💻 JAVA
字号:
package com.estore.struts.action;import java.sql.Date;import java.util.Collection;import java.util.Iterator;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.DispatchAction;import com.estore.struts.Globals;import com.estore.struts.entity.Cart;import com.estore.struts.entity.CartProduct;import com.estore.struts.entity.Order;import com.estore.struts.entity.OrderItem;import com.estore.struts.entity.Product;import com.estore.struts.entity.User;import com.estore.struts.entity.UserItem;import com.estore.struts.service.OrderService;import com.estore.struts.service.ProductService;import com.estore.struts.service.UserService;import com.estore.struts.utils.ServiceFactory;public class OrderAction extends DispatchAction {	private UserService userService = (UserService) ServiceFactory			.getInstance().getService(Globals.USER_SERVICE);	private OrderService orderService = (OrderService) ServiceFactory			.getInstance().getService(Globals.ORDER_SERVICE);	/*	 * 向服务器提交定单,生成一个用户定单保存到数据库中;	 * 	 * 需要:用户信息,用户的详细信息,付款方式,定单项,商品;	 */	public ActionForward addOrder(ActionMapping mapping, ActionForm form,			HttpServletRequest request, HttpServletResponse response)			throws Exception {		int Payinfo = Integer.parseInt(request.getParameter("payway"));		int useritemid = Integer.parseInt(request.getParameter("useritemid"));		HttpSession session = request.getSession();		Cart cart = (Cart) session.getAttribute("cart");		User user = (User) session.getAttribute("user");				Order order = new Order();		order.setCreatetime(new java.sql.Date(System.currentTimeMillis()));				order.setOrderstate(0);		order.setPayinfo(Payinfo);				/*		 * order不但和用户user有关系,也和useritem有关系,		 * 因为某个用户也可以给别人定书;		 */		order.setUser(user);		order.setUserItem(userService.getUserItemById(useritemid));		/*		 * 遍历session中car里面的商品,并且为每一类商品都生成一个定单项,存放在orderitem中;		 * 定单和定单项是一对多的关系;		 * 从Car中获得用户所选择的商品,并生成相应的订单项。		 */		Map<Integer, CartProduct> products = cart.getProducts();		Set<Integer> keys = products.keySet();		Iterator<Integer> it = keys.iterator();				//记录一个定单的总和		double sum = 0;		while (it.hasNext()) {			Integer key = it.next();			CartProduct cartproduct = products.get(key);			Product product = cartproduct.getProduct();			System.out.println(product);			int num = cartproduct.getNum();			sum = sum + (num * product.getPrice());			/*			 * <1>. 把从cart中存放的商品取出来放到OrderItem对象中,			 *      每一个商品product对应一个OrderItem对象;			 * <2>. 然后把创建的OrderItem对象标示为其本身属性哪个定单的OrderItem对象;			 * <3>. 最后将刚创建的OrderItem对象保存到指定的Order中,并且Order对象保存到数据库中;			 * 更具从Car中取出的每个商品都生成一个对应的订单项。			 */			OrderItem orderItem = new OrderItem();			orderItem.setProduct(product);			//orderItem.setPrice(product.getPrice());			orderItem.setQuality(num);						//建立双向关系			orderItem.setOrder(order);			order.addOrderItem(orderItem);		}				order.setTotalprice(sum);		orderService.saveOrder(order);		request.setAttribute("order", order);				cart=new Cart();		session.setAttribute("cart", cart);		return mapping.findForward("success");	}	/*	 * 	 */	public ActionForward confirmOrder(ActionMapping mapping, ActionForm form,			HttpServletRequest request, HttpServletResponse response)			throws Exception {		HttpSession session = request.getSession();		User user = (User) session.getAttribute("user");				request.setAttribute("useritems", userService.getUserItem(user));		return mapping.findForward("confirm");	}	/*	 * 为用户添加一个新地址	 */	public ActionForward saveUserItem(ActionMapping mapping, ActionForm form,			HttpServletRequest request, HttpServletResponse response)			throws Exception {				HttpSession session = request.getSession();		User user = (User) session.getAttribute("user");				UserItem useritem = new UserItem();				useritem.setUser(user);		useritem.setItem_name(request.getParameter("username").trim());		useritem.setItem_address(request.getParameter("address").trim());		useritem.setItem_postcode(request.getParameter("postcode").trim());		useritem.setItem_officephone(request.getParameter("officephone").trim());		useritem.setItem_mobilephone(request.getParameter("mobilephone").trim());		useritem.setItem_email(request.getParameter("email").trim());				userService.addUserItem(useritem);				request.setAttribute("useritems", userService.getUserItem(user));		return mapping.findForward("confirm");	}		/*	 * 删除一个收货地址	 */	public ActionForward deleteUserItem(ActionMapping mapping, ActionForm form,			HttpServletRequest request, HttpServletResponse response)			throws Exception {				HttpSession session = request.getSession();		User user = (User) session.getAttribute("user");		int userItemId = Integer.parseInt(request.getParameter("useritemid"));		System.out.println("========> "+userItemId);				userService.deleteUserItem(userItemId);				request.setAttribute("useritems", userService.getUserItem(user));		return mapping.findForward("confirm");	}	/*	 * 把属于某个用户的所以帐单全部列出;	 */	public ActionForward listOrder(ActionMapping mapping, ActionForm form,			HttpServletRequest request, HttpServletResponse response)			throws Exception {				HttpSession session = request.getSession();		User user = (User) session.getAttribute("user");		Collection<Order> orders = orderService.getOrdersByUser(user);		request.setAttribute("orders", orders);		return mapping.findForward("orderlist");	}	/*	 * 查看定单的详细信息	 */	public ActionForward orderInfo(ActionMapping mapping, ActionForm form,			HttpServletRequest request, HttpServletResponse response)			throws Exception {		Integer orderid = Integer.parseInt(request.getParameter("orderid"));//      类级别的关联, 和集合级别的关联;//		System.out.println("*****************************************");//		for(OrderItem orderitem : orderitems){//			System.out.println("orderitems =======> "+orderitem);//			System.out.println("orderitems =======> "+orderitem.getProduct());//		}//		System.out.println("*****************************************");				Order order = orderService.getOrderById(orderid);		request.setAttribute("order", order);		//		只需要在request中添加order,不需要再添加orderitem项了,//		而可以通过order---->orderItems---->product,并且后两项都采取了立即抓取;//		Collection<OrderItem> orderitems = orderService.getOrderItems(order);//		request.setAttribute("orderitems", orderitems);				HttpSession session = request.getSession();		User user = (User) session.getAttribute("user");			//	 	user不能级联了,因为它是从session中获得的;//		所以需要重新从数据库中取回来;		request.setAttribute("useritems", userService.getUserItem(user));				return mapping.findForward("orderinfo");	}	/*	 * 根据orderid删除指定的order对象;	 */	public ActionForward deleteOrder(ActionMapping mapping, ActionForm form,			HttpServletRequest request, HttpServletResponse response)			throws Exception {		Integer orderid = Integer.parseInt(request.getParameter("orderid"));		orderService.deleteOrder(orderService.getOrderById(orderid));		return mapping.findForward("success");	}	}

⌨️ 快捷键说明

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