開發者學堂課程【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" ;
}