java網(wǎng)上圖書商城(7)訂單模塊2
本文實例為大家分享了java網(wǎng)上圖書商城訂單模塊的具體代碼,供大家參考,具體內(nèi)容如下
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;">訂單狀態(tài)</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 }">(準備發(fā)貨)</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. 創(chuàng)建Order */ Order order = new Order(); order.setOid(CommonUtils.uuid());//設(shè)置主鍵 order.setOrdertime(String.format("%tF %<tT", new Date()));//下單時間 order.setStatus(1);//設(shè)置狀態(tài),1表示未付款 order.setAddress(req.getParameter("address"));//設(shè)置收貨地址 User owner = (User)req.getSession().getAttribute("sessionUser"); order.setOwner(owner);//設(shè)置訂單所有者 BigDecimal total = new BigDecimal("0"); for(CartItem cartItem : cartItemList) { total = total.add(new BigDecimal(cartItem.getSubtotal() + "")); } order.setTotal(total.doubleValue());//設(shè)置總計 /* * 3. 創(chuàng)建List<OrderItem> * 一個CartItem對應一個OrderItem */ List<OrderItem> orderItemList = new ArrayList<OrderItem>(); for(CartItem cartItem : cartItemList) { OrderItem orderItem = new OrderItem(); orderItem.setOrderItemId(CommonUtils.uuid());//設(shè)置主鍵 orderItem.setQuantity(cartItem.getQuantity()); orderItem.setSubtotal(cartItem.getSubtotal()); orderItem.setBook(cartItem.getBook()); orderItem.setOrder(order); orderItemList.add(orderItem); } order.setOrderItemList(orderItemList); /* * 4. 調(diào)用service完成添加 */ orderService.createOrder(order); // 刪除購物車條目 cartItemService.batchDelete(cartItemIds); /* * 5. 保存訂單,轉(zhuǎn)發(fā)到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. 循環(huán)遍歷訂單的所有條目,讓每個條目生成一個Object[] * 多個條目就對應Object[][] * 執(zhí)行批處理,完成插入訂單條目 */ 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); }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于在Java中反轉(zhuǎn)數(shù)組的4種詳細方法
這篇文章主要介紹了關(guān)于在Java中反轉(zhuǎn)數(shù)組的4種詳細方法,數(shù)組是一個固定長度的存儲相同數(shù)據(jù)類型的數(shù)據(jù)結(jié)構(gòu),數(shù)組中的元素被存儲在一段連續(xù)的內(nèi)存空間中,今天我們來學習一下如何反轉(zhuǎn)數(shù)組2023-05-05Centos6.5下Jdk+Tomcat+Mysql環(huán)境安裝圖文教程
這篇文章主要為大家詳細介紹了Centos6.5系統(tǒng)下Jdk+Tomcat+Mysql環(huán)境安裝過程,感興趣的小伙伴們可以參考一下2016-05-05springboot實現(xiàn)jar運行復制resources文件到指定的目錄(思路詳解)
這篇文章主要介紹了springboot實現(xiàn)jar運行復制resources文件到指定的目錄,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04使用StringRedisTemplate操作Redis方法詳解
這篇文章主要為大家介紹了使用StringRedisTemplate操作Redis方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08SpringBoot響應Json數(shù)據(jù)亂碼通過配置的解決
這篇文章主要介紹了SpringBoot響應Json數(shù)據(jù)亂碼通過配置的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11淺談spring ioc的注入方式及注入不同的數(shù)據(jù)類型
這篇文章主要介紹了淺談spring ioc的注入方式及注入不同的數(shù)據(jù)類型,具有一定借鑒價值,需要的朋友可以參考下2017-12-12SpringSecurity+JWT實現(xiàn)前后端分離的使用詳解
這篇文章主要介紹了SpringSecurity+JWT實現(xiàn)前后端分離的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01