1. 程式人生 > >spring+springmvc+hibernate製作一個簡單的電商網站(4) 生成訂單

spring+springmvc+hibernate製作一個簡單的電商網站(4) 生成訂單

  訂單流程很簡單,認真看就明白了。

一,生成訂單

電商網站大多數是在購物車中開始生成訂單的,當然也有一鍵生成訂單,這裡我們就說一下購物車中生成訂單的流程。

第一步:檢視購物車;

第二步:確認收貨地址;

第三步:生成訂單;

雖然看起來像廢話,但這個其實是三個介面。

上期講到了檢視購物車,現在說一下確認收貨地址:

@RequestMapping(value = "/xxx/xxx/goods_cart2")

public void goods_cart2(HttpServletRequest request, HttpServletResponse response, String store_id){

//這個介面中沒什麼特別注意的:首先需要使用者登陸,在查詢使用者填寫的預設地址,Address表,然後返回給前端就可以了。

}

下面的生成訂單比較主要

@RequestMapping(value = "/xxx/xxx/goods_cart3")

public void goods_cart3(HttpServletRequest request, HttpServletResponse response, String store_id, String addr_id){

//檢視使用者登陸時購物車裡面的資訊如果不為空

OrderForm of = new OrderForm();

//獲取到前端傳過來的資訊,生成訂單

of.setAddTime(new Date());

of.setOrder_id(user.getId() + Commutil.formatTime("yyyyMMddHHmmss", new Date()));//這裡使用的是使用者id + 自定義的時間格式當訂單號

Address addr = this.addressService.getObjById(Long.paserLong(addr_id));

of.setAddr(addr);

of.setOrder_status(10); //這裡要注意:需要確定訂單狀態,用不同的數字去表示,生成訂單10,待支付訂單20,支付成功的訂單20,賣家發貨的訂單30,買家收貨的訂單40,買家評價的訂單50,大概這些。

of.setUser(user);

of.setStore(this.storeService.getObjById(Long.paserLong(store_id));

of.setTotalPrice(//計算好數量與總價);

this.orderFormService.save(of);

//下面要注意,因為購物車中商品有的生成訂單了我們需要更新購物車了

GoodsCart gc;

for(StoreCart sc : cart //這個cart就是獲取的購物車資訊){

     if(sc.getStore().getId().toString().equals(store_id)){

         for(Iterator localIterator2 = sc.getGcs().iterator(); localIterator2.hasNext(); ){

              gc = (GoodsCart)localIteratore2.next();

              gc.setOf(of);

               this.goodsCartService.update(gc);

           }

           sc.setUser(user);

           sc.setSc_status(1);

            this.storeCartService.update(sc);

           break;

     }

}

}

明天補上訂單列表