这里有新鲜出炉的Java并发编程示例,程序狗速度看过来!
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
这篇文章主要为大家详细介绍了java网上图书商城,订单模块第二篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
1.我的订单---查
按用户查询订单
分页查询 PageBean
- <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);
- }
来源: http://www.phperz.com/article/17/1203/359249.html