java網上圖書商城(7)訂單模組2_java

來源:互聯網
上載者:User

本文執行個體為大家分享了java網上圖書商城訂單模組的具體代碼,供大家參考,具體內容如下

1.我的訂單---查

按使用者查詢訂單
分頁查詢 PageBean<Order>

<div class="divMain"> <div class="divTitle"> <span style="margin-left: 150px;margin-right: 280px;">商品資訊</span> <span style="margin-left: 40px;margin-right: 38px;">金額</span> <span style="margin-left: 50px;margin-right: 40px;">訂單狀態</span> <span style="margin-left: 50px;margin-right: 50px;">操作</span> </div> <table align="center" border="0" width="100%" cellpadding="0" cellspacing="0"> <c:forEach items="${pb.beanList }" var="order"> <tr class="tt">  <td width="320px">訂單號:<a href="<c:url value='/OrderServlet?method=load&oid=${order.oid }'/>">${order.oid }</a></td>  <td width="200px">下單時間:${order.ordertime }</td>  <td> </td>  <td> </td>  <td> </td>  <td> </td> </tr> <tr style="padding-top: 10px; padding-bottom: 10px;">  <td colspan="2">  <c:forEach items="${order.orderItemList }" var="orderItem">   <a class="link2" href="<c:url value='/BookServlet?method=load&bid=${orderItem.book.bid }'/>">   <img border="0" width="70" src="<c:url value='/${orderItem.book.image_b }'/>"/>   </a>  </c:forEach>  </td>  <td width="115px">  <span class="price_t">¥${order.total }</span>  </td>  <td width="142px">  <c:choose>   <c:when test="${order.status eq 1 }">(等待付款)</c:when>   <c:when test="${order.status eq 2 }">(準備發貨)</c:when>   <c:when test="${order.status eq 3 }">(等待確認)</c:when>   <c:when test="${order.status eq 4 }">(交易成功)</c:when>   <c:when test="${order.status eq 5 }">(已取消)</c:when>  </c:choose>    </td>  <td>  <a href="<c:url value='/OrderServlet?method=load&oid=${order.oid }'/>">查看</a><br/>  <c:if test="${order.status eq 1 }">   <a href="<c:url value='/OrderServlet?method=paymentPre&oid=${order.oid }'/>">支付</a><br/>   <a href="<c:url value='/OrderServlet?method=load&oid=${order.oid }&btn=cancel'/>">取消</a><br/>     </c:if>  <c:if test="${order.status eq 3 }">   <a href="<c:url value='/OrderServlet?method=load&oid=${order.oid }&btn=confirm'/>">確認收貨</a><br/>  </c:if>  </td> </tr> </c:forEach> </table></div>
 

2.訂單模組之產生訂單

OrderServlet

public String createOrder(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { /* * 1. 擷取所有購物車條目的id,查詢之 */ String cartItemIds = req.getParameter("cartItemIds"); List<CartItem> cartItemList = cartItemService.loadCartItems(cartItemIds); if(cartItemList.size() == 0) { req.setAttribute("code", "error"); req.setAttribute("msg", "您沒有選擇要購買的圖書,不能下單!"); return "f:/jsps/msg.jsp"; } /* * 2. 建立Order */ Order order = new Order(); order.setOid(CommonUtils.uuid());//設定主鍵 order.setOrdertime(String.format("%tF %<tT", new Date()));//下單時間 order.setStatus(1);//設定狀態,1表示未付款 order.setAddress(req.getParameter("address"));//設定收貨地址 User owner = (User)req.getSession().getAttribute("sessionUser"); order.setOwner(owner);//設定訂單所有者  BigDecimal total = new BigDecimal("0"); for(CartItem cartItem : cartItemList) { total = total.add(new BigDecimal(cartItem.getSubtotal() + "")); } order.setTotal(total.doubleValue());//設定總計  /* * 3. 建立List<OrderItem> * 一個CartItem對應一個OrderItem */ List<OrderItem> orderItemList = new ArrayList<OrderItem>(); for(CartItem cartItem : cartItemList) { OrderItem orderItem = new OrderItem(); orderItem.setOrderItemId(CommonUtils.uuid());//設定主鍵 orderItem.setQuantity(cartItem.getQuantity()); orderItem.setSubtotal(cartItem.getSubtotal()); orderItem.setBook(cartItem.getBook()); orderItem.setOrder(order); orderItemList.add(orderItem); } order.setOrderItemList(orderItemList);  /* * 4. 調用service完成添加 */ orderService.createOrder(order);  // 刪除購物車條目 cartItemService.batchDelete(cartItemIds); /* * 5. 儲存訂單,轉寄到ordersucc.jsp */ req.setAttribute("order", order); return "f:/jsps/order/ordersucc.jsp";}

OrderDao

public void add(Order order) throws SQLException { /* * 1. 插入訂單 */ 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, params);  /* * 2. 迴圈遍曆訂單的所有條目,讓每個條目產生一個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);}

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.