订单流程很简单,认真看就明白了。
一,生成订单
电商网站大多数是在购物车中开始生成订单的,当然也有一键生成订单,这里我们就说一下购物车中生成订单的流程。
第一步:查看购物车;
第二步:确认收货地址;
第三步:生成订单;
虽然看起来像废话,但这个其实是三个接口。
上期讲到了查看购物车,现在说一下确认收货地址:
@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;
}
}
}
二,订单列表(注意此文章只是教大家具体流程如何实现请自行决定)
1.买家订单列表
买家订单状态分这几种:待付款10,待发货20,待收货30,待评价40,完成60,取消0
所以非常的简单,只需要知道订单分几个状态就行:
@RequestMapping(value = "/xxx/xxx/order")
public void order(HttpServletRequest request, HttpServletResponse response, String currentPage, String order_id, String beginTime, String endTime, String order_status){
//先确保用户登陆
Map<String, Object> map = new HashMap<String,Object>();
OrderFormQueryObject obj = new OrderFormQueryObject(currentPage,map."addTime","desc");//依然使用自己设计好的分页
//这里用用户的id去查订单表,然后设置好排序分页
if(order_status != null && !order_status.equals("")){//这里就把order_status当作条件去查数据库了}
//最后返回查询好的数据就可以了
returnData(response,getArray(pList));
}
卖家查询也是怎么个流程,区别在于:状态为,10已经提交,20已经付款,30已经发货,40已经收货,50买家评价,60完成
只有一个订单表,不过状态针对不同的用户会有不同的意思,基本没什么难度的
下次讲订单提交后的流程了233。