天天看點

訂單子產品之添加訂單之 Servlet 層實作| 學習筆記

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

​​

訂單子產品之添加訂單之 Servlet 層實作| 學習筆記

二、使用 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();

訂單子產品之添加訂單之 Servlet 層實作| 學習筆記

三、調用 orderservice 添加訂單

orderService.add(order);

四、儲存 order 到 request 域中,轉發/japa/order/desc.jap

request.setAttribute ( "order", order);

return "/jsps/order/ desc.jsp" ;

}