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

网友投稿 213 2023-06-26


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

本文实例为大家分享了java网上图书商城订单模块的具体代码,供大家参考,具体内容如下

1.我的订单---查

按用户查询订单

分页查询 PageBean



商品信息

金额

订单状态

操作

¥${order.total }



(等待付款)

(准备发货)

(等待确认)

(交易成功)

(已取消)

2.订单模块之生成订单


OrderServlet

public String createOrder(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

/*

* 1. 获取所有购物车条目的id,查询之

*/

String cartItemIds = req.getParameter("cartItemIds");

ListcartItemList = 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 %

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

* 一个CartItem对应一个OrderItem

*/

ListorderItemList = new ArrayList();

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);

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微信小程序中单位rpx和rem的使用
下一篇:java网上图书商城(3)Book模块
相关文章

 发表评论

暂时没有评论,来抢沙发吧~