//创建订单
public ServerResponse createOrder(Integer userId,Integer shippingId){
//从购物车中获取已经被勾选的商品
List cartList = cartMapper.selectCheckedCartByUserId(userId);
//校验并封装一下
ServerResponse serverResponse = this.getCartOrderItem(userId,cartList);
if(!serverResponse.isSuccess())
return serverResponse;
List orderItemList = (List)serverResponse.getData();
//计算这个订单的总价
BigDecimal payment = this.getOrderTotalPrice(orderItemList);
//生成订单
Order order = this.assembleOrder(userId,shippingId,payment);
if(order == null)
return ServerResponse.createByErrorMessage("生成订单错误");
if(CollectionUtils.isEmpty(orderItemList))
return ServerResponse.createByErrorMessage("购物车为空");
//每一项都生成订单号
for(OrderItem orderItem : orderItemList)
//设置订单号
orderItem.setOrderNo(order.getOrderNo());
//mybatis 批量插入
orderItemMapper.batchInsert(orderItemList);
//生成成功,我们要减少我们产品的库存
this.reduceProductStock(orderItemList);
//清空一下购物车
this.cleanCart(cartList);
//返回给前端数据
OrderVo orderVo = assembleOrderVo(order,orderItemList);
return ServerResponse.createBySuccess(orderVo);
}
//校验并且封装一下
private ServerResponse getCartOrderItem(Integer userId,List cartList){