OrderServlet #createOrder
1 /* 2 * 3 * 生成订单 4 */ 5 public String createOrder(HttpServletRequest req, HttpServletResponse resp) 6 throws ServletException, IOException { 7 //获取所有购物车条目ID 查询之 8 String cartItemIds=req.getParameter("cartItemIds"); 9 List<CartItem> cartItemList=cartItemService.loadCartItems(cartItemIds); 10 //创建订单 order 11 Order order=new Order(); 12 order.setOid(CommonUtils.uuid()); 13 14 order.setOrdertime(String.format("%tF %<tT", new Date())); 15 order.setStatus(1);//表示未付款 16 order.setAddress(req.getParameter("address")); 17 User owner=(User) req.getSession().getAttribute("sessionUser"); 18 order.setOwner(owner); 19 20 21 BigDecimal total=new BigDecimal("0"); 22 for(CartItem cartItem:cartItemList) 23 { 24 total=total.add(new BigDecimal(cartItem.getSubtotal()+"")); 25 } 26 order.setTotal(total.doubleValue()); 27 28 29 //创建List<OrderItem> 30 List<OrderItem> orderItemList =new ArrayList<OrderItem>(); 31 for(CartItem cartItem:cartItemList) 32 { 33 OrderItem orderItem=new OrderItem(); 34 orderItem.setOrderItemId(CommonUtils.uuid()); //设置主键 35 orderItem.setQuantity(cartItem.getQuantity()); 36 orderItem.setSubtotal(cartItem.getSubtotal()); 37 orderItem.setBook(cartItem.getBook()); 38 orderItem.setOrder(order); 39 orderItemList.add(orderItem); 40 41 42 } 43 order.setOrderItemList(orderItemList); 44 45 46 //调用service完成添加 47 orderService.createOrder(order); 48 49 //删除购物车条目 50 cartItemService.batchDelete(cartItemIds); 51 //保存订单 52 req.setAttribute("order", order); 53 return "f:/jsps/order/ordersucc.jsp"; 54 55 56 }
OrderDao
public void add(Order order) throws SQLException { //插入订单 String sql="insert into t_order values(?,?,?,?,?,?)"; Object[] params={order.getOid(),order.getOrdertime(), order.getTotal(),order.getStatus(),order.getAddress(),order.getOwner().getUid() }; qr.update(sql); //循环遍历订单的所有条目 让每个条目生成一个object数组 多个条目生成object[][]数组 执行批处理 完成插入订单条目 sql="insert into t_orderitem values(?,?,?,?,?,?,?,?)"; int len=order.getOrderItemList().size(); Object[][] objs=new Object[len][]; for(int i=0;i<len;i++) { OrderItem item=order.getOrderItemList().get(i); objs[i]=new Object[]{item.getOrderItemId(),item.getQuantity(), item.getSubtotal(),item.getBook().getBid(), item.getBook().getBname(),item.getBook().getCurrPrice(), item.getBook().getImage_b(),order.getOid()}; } qr.batch(sql,objs); }
时间: 2024-11-07 20:55:52