开发者学堂课程【Java Web项目实战2:图书商城:订单模块之添加订单之 Servlet 层实现】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/35/detail/784
订单模块之添加订单之 Servlet 层实现
内容简介:
一、从 session 中得到 cart。
二、使用 cart 生成 Order 对象。
三、调用 service 方法完成订单。
四、保存 order 到 request 域中,转发 /japa/order/desc.jap
一、从 session 中得到 cart
public String add(HttpservietRequest requst,HttpServietResponse response)
throwa ServletException,IOException{
Cart cart= (cart)request.getSession().getAttribute(“cart”);
把cart转换成order对象,创建order对象,并设置属性
Order order=new Order();
设置编号
order.setOid(CommonUtils.uuid());
设置下单时间
order.setOrdertime(new Date());
设置订单状态为1,表示未付款
order.setState(1);
User user = (User)request.getSession().getAttribute(“session_user”);
设置订单所有者
order.setOwner(user);
设置订单的合计,从cart中获取合计
order.setTotal(cart.getTotal());
二、使用 cart 生成 order 对象
创建订单条目
循环遍历cart中的所有cartItem,使用每一个cartItem对象创建orderItem对象,并添加到集合中
List<orderItem> orderItemList = new ArrayList<orderItem>();
for(CartItem cartItem : cart.getcartItems()) {
创建订单条目
OrderItem oi = new orderItem () ;
设置条目的id
oi.setIid(commonUtils.uuid());
设置条目的数量
oi.setCount(cartItem.getCount ()) ;
设置条目的图书
oi.setBook(cartItem.getBook());
设置条目的小计
oi.setSubtotal(cartItem.getSubtotal());
设置所属订单
oi.setOrder(order);
把订单条目添加到集合中
orderItemList.add(oi);
}
把所有的订单条目添加到订单中
order.setOrderItemList(orderItemList);
清空购物车
cart.clear();
三、调用 orderservice 添加订单
orderService.add(order);
四、保存 order 到 request 域中,转发/japa/order/desc.jap
request.setAttribute ( "order", order);
return "/jsps/order/ desc.jsp" ;
}