java网上图书商城(7)订单模块2

本文实例为大家分享了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);

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是 java网上图书商城(7)订单模块2 的全部内容, 来源链接: utcz.com/p/211132.html

回到顶部