上一篇博文我们已经介绍了购物车的原理及实现, 那么购物车再往后就是提交订单了, 订单的实现方式是怎么样的呢? 那么下面就让我们来一起学习下.
提交订单有几个关键点:
1, 用户必须登录
2, 购物车必须要有购物项
3, 购物车中购物项库存必须小于库存
4, 结算成功, 清理购物车(这个只清理购物车中已经结算的购物项)
接下来我们再来看下订单相关的两张表的设计:
订单表
订单详情表
在这里我们可以发现 订单表和 我们的购物车很像, 订单详情表和我们的购物车中的购物项很像. 明白了这些原理后我们就来看下代码的具体实现.
我们来先写Service层的方法: CartServiceImpl.java
1 @Autowired 2 private OrderDao orderDao; 3 @Autowired 4 private DetailDao detailDao; 5 //保存订单 6 public void insertOrder(Order order, String username){ 7 //订单ID 8 Long id = jedis.incr("oid"); 9 order.setId(id);10 //用户id11 String buyerId = jedis.get(username);12 order.setBuyerId(Long.parseLong(buyerId));13