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;">订单状态</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 Swing SpringLayout弹性布局的实现代码
这篇文章主要介绍了Java Swing SpringLayout弹性布局的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-12-12
Quarkus中ConfigSourceInterceptor的加密配置实现
这篇文章主要为大家介绍Quarkus中ConfigSourceInterceptor加密配置的实现方式,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-02-02
Spring中如何使用@Value注解实现给Bean属性赋值
这篇文章主要介绍了Spring中如何使用@Value注解实现给Bean属性赋值的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-08-08
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 有关版本更新带来的问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-12-12
mybatis配置mapper-locations位置的三种方式小结
这篇文章主要给大家介绍了关于mybatis配置mapper-locations位置的三种方式,Mybatis-Plus的初衷是为了简化开发,而不建议开发者自己写SQL语句的,但是有时客户需求比较复杂,需要的朋友可以参考下2023-08-08


最新评论