最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2016年12月05日 15:44:10   作者:ganchuanpu  
這篇文章主要為大家詳細介紹了java網上圖書商城,訂單模塊第二篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了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;">訂單狀態(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());//設置主鍵
 order.setOrdertime(String.format("%tF %<tT", new Date()));//下單時間
 order.setStatus(1);//設置狀態(tài),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. 創(chuàng)建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. 保存訂單,轉發(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);
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 老生常談比較排序之堆排序

    老生常談比較排序之堆排序

    下面小編就為大家?guī)硪黄仙U劚容^排序之堆排序。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Java Swing SpringLayout彈性布局的實現(xiàn)代碼

    Java Swing SpringLayout彈性布局的實現(xiàn)代碼

    這篇文章主要介紹了Java Swing SpringLayout彈性布局的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • Quarkus中ConfigSourceInterceptor的加密配置實現(xiàn)

    Quarkus中ConfigSourceInterceptor的加密配置實現(xiàn)

    這篇文章主要為大家介紹Quarkus中ConfigSourceInterceptor加密配置的實現(xiàn)方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-02-02
  • Spring中如何使用@Value注解實現(xiàn)給Bean屬性賦值

    Spring中如何使用@Value注解實現(xiàn)給Bean屬性賦值

    這篇文章主要介紹了Spring中如何使用@Value注解實現(xiàn)給Bean屬性賦值的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 淺談導入JavaWeb 項目出現(xiàn)的問題

    淺談導入JavaWeb 項目出現(xiàn)的問題

    這篇文章主要介紹了導入JavaWeb 項目出現(xiàn)的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Spring Cloud OAuth2中/oauth/token的返回內容格式

    Spring Cloud OAuth2中/oauth/token的返回內容格式

    Spring Cloud OAuth2 生成access token的請求/oauth/token的返回內容就需要自定義,本文就詳細介紹一下,感興趣的可以了解一下
    2021-07-07
  • springboot使用swagger-ui 2.10.5 有關版本更新帶來的問題小結

    springboot使用swagger-ui 2.10.5 有關版本更新帶來的問題小結

    這篇文章主要介紹了springboot使用swagger-ui 2.10.5 有關版本更新帶來的問題小結,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Java如何執(zhí)行cmd命令

    Java如何執(zhí)行cmd命令

    這篇文章主要介紹了Java如何執(zhí)行cmd命令問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • mybatis配置mapper-locations位置的三種方式小結

    mybatis配置mapper-locations位置的三種方式小結

    這篇文章主要給大家介紹了關于mybatis配置mapper-locations位置的三種方式,Mybatis-Plus的初衷是為了簡化開發(fā),而不建議開發(fā)者自己寫SQL語句的,但是有時客戶需求比較復雜,需要的朋友可以參考下
    2023-08-08
  • Java類加載器ClassLoader的使用詳解

    Java類加載器ClassLoader的使用詳解

    類加載器負責讀取Java字節(jié)代碼,并轉換成java.lang.Class類的一個實例的代碼模塊。本文主要和大家聊聊JVM類加載器ClassLoader的使用,需要的可以了解一下
    2022-12-12

最新評論

醴陵市| 台南市| 永宁县| 古田县| 会同县| 拉萨市| 伊金霍洛旗| 宁乡县| 石林| 贵南县| 长宁区| 黄浦区| 乌海市| 林州市| 富裕县| 东乡族自治县| 兰坪| 榕江县| 资中县| 滁州市| 余庆县| 黑山县| 砀山县| 大荔县| 三原县| 杭锦后旗| 通海县| 辉南县| 永平县| 白玉县| 博爱县| 许昌县| 昌图县| 红桥区| 五指山市| 永胜县| 慈利县| 鞍山市| 古蔺县| 丹东市| 腾冲县|