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;

     }

}

}

二,订单列表(注意此文章只是教大家具体流程如何实现请自行决定)

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。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值