java網(wǎng)上圖書(shū)商城(7)訂單模塊2
本文實(shí)例為大家分享了java網(wǎng)上圖書(shū)商城訂單模塊的具體代碼,供大家參考,具體內(nèi)容如下

1.我的訂單---查
按用戶(hù)查詢(xún)訂單
分頁(yè)查詢(xún) 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">訂單號(hào):<a href="<c:url value='/OrderServlet?method=load&oid=${order.oid }'/>">${order.oid }</a></td>
<td width="200px">下單時(shí)間:${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 }">(準(zhǔn)備發(fā)貨)</c:when>
<c:when test="${order.status eq 3 }">(等待確認(rèn))</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'/>">確認(rèn)收貨</a><br/>
</c:if>
</td>
</tr>
</c:forEach>
</table>
</div>
2.訂單模塊之生成訂單
OrderServlet
public String createOrder(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
/*
* 1. 獲取所有購(gòu)物車(chē)條目的id,查詢(xún)之
*/
String cartItemIds = req.getParameter("cartItemIds");
List<CartItem> cartItemList = cartItemService.loadCartItems(cartItemIds);
if(cartItemList.size() == 0) {
req.setAttribute("code", "error");
req.setAttribute("msg", "您沒(méi)有選擇要購(gòu)買(mǎi)的圖書(shū),不能下單!");
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()));//下單時(shí)間
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è)置總計(jì)
/*
* 3. 創(chuàng)建List<OrderItem>
* 一個(gè)CartItem對(duì)應(yīng)一個(gè)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);
// 刪除購(gòu)物車(chē)條目
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)遍歷訂單的所有條目,讓每個(gè)條目生成一個(gè)Object[]
* 多個(gè)條目就對(duì)應(yīng)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);
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JavaWeb搭建網(wǎng)上圖書(shū)商城畢業(yè)設(shè)計(jì)
- java網(wǎng)上圖書(shū)商城(6)訂單模塊1
- java網(wǎng)上圖書(shū)商城(5)購(gòu)物車(chē)模塊2
- java網(wǎng)上圖書(shū)商城(4)購(gòu)物車(chē)模塊1
- java網(wǎng)上圖書(shū)商城(3)Book模塊
- java網(wǎng)上圖書(shū)商城(2)Category模塊
- java網(wǎng)上圖書(shū)商城(1)User模塊
- Java 實(shí)戰(zhàn)項(xiàng)目錘煉之校園宿舍管理系統(tǒng)的實(shí)現(xiàn)流程
相關(guān)文章
關(guān)于在Java中反轉(zhuǎn)數(shù)組的4種詳細(xì)方法
這篇文章主要介紹了關(guān)于在Java中反轉(zhuǎn)數(shù)組的4種詳細(xì)方法,數(shù)組是一個(gè)固定長(zhǎng)度的存儲(chǔ)相同數(shù)據(jù)類(lèi)型的數(shù)據(jù)結(jié)構(gòu),數(shù)組中的元素被存儲(chǔ)在一段連續(xù)的內(nèi)存空間中,今天我們來(lái)學(xué)習(xí)一下如何反轉(zhuǎn)數(shù)組2023-05-05
Java虛擬機(jī)類(lèi)加載器之雙親委派機(jī)制模型案例
這篇文章主要介紹了Java虛擬機(jī)類(lèi)加載器之雙親委派機(jī)制模型案例,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
JPA merge聯(lián)合唯一索引無(wú)效問(wèn)題解決方案
這篇文章主要介紹了JPA merge聯(lián)合唯一索引無(wú)效問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
詳解Spring AOP 攔截器的基本實(shí)現(xiàn)
本篇文章主要介紹了詳解Spring AOP 攔截器的基本實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
Centos6.5下Jdk+Tomcat+Mysql環(huán)境安裝圖文教程
這篇文章主要為大家詳細(xì)介紹了Centos6.5系統(tǒng)下Jdk+Tomcat+Mysql環(huán)境安裝過(guò)程,感興趣的小伙伴們可以參考一下2016-05-05
springboot實(shí)現(xiàn)jar運(yùn)行復(fù)制resources文件到指定的目錄(思路詳解)
這篇文章主要介紹了springboot實(shí)現(xiàn)jar運(yùn)行復(fù)制resources文件到指定的目錄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
使用StringRedisTemplate操作Redis方法詳解
這篇文章主要為大家介紹了使用StringRedisTemplate操作Redis方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
SpringBoot響應(yīng)Json數(shù)據(jù)亂碼通過(guò)配置的解決
這篇文章主要介紹了SpringBoot響應(yīng)Json數(shù)據(jù)亂碼通過(guò)配置的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
淺談spring ioc的注入方式及注入不同的數(shù)據(jù)類(lèi)型
這篇文章主要介紹了淺談spring ioc的注入方式及注入不同的數(shù)據(jù)類(lèi)型,具有一定借鑒價(jià)值,需要的朋友可以參考下2017-12-12
SpringSecurity+JWT實(shí)現(xiàn)前后端分離的使用詳解
這篇文章主要介紹了SpringSecurity+JWT實(shí)現(xiàn)前后端分離的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

