Required request body is missing
来源:8-4 创建订单-状态枚举与自测
sa1tedFish
2022-05-09 15:42:53
@PostMapping("order/create") @ApiOperation("创建订单") public ApiRestResponse create(@RequestBody @Valid CreateOrderReq createOrderReq) { String orderNo = orderService.create(createOrderReq); return ApiRestResponse.success(orderNo); }
@Override public String create(CreateOrderReq createOrderReq) { //1.拿到用户ID Integer userId = UserFilter.currentUser.getId(); //2.从购物车查找已经勾选的商品 List<CartVO> cartVOList = cartService.list(userId); ArrayList<CartVO> cartVOListTemp = new ArrayList<>(); for (int i = 0; i < cartVOList.size(); i++) { CartVO cartVO = cartVOList.get(i); if (cartVO.getSelected().equals(Constant.CartStatus.CHECKED)) { cartVOListTemp.add(cartVO); } } cartVOList = cartVOListTemp; //3.如果购物车已勾选的为空,报错 if (CollectionUtils.isEmpty(cartVOList)) { throw new ImoocMallException(ImoocMallExceptionEnum.CART_EMPTY); } //4.判断商品的否存在,上下架状态,库存 validSaleStatusAndStock(cartVOList); //5.把购物车对象转为订单item对象 List<OrderItem> orderItemList = cartVOListToOrderItemList(cartVOList); //6.扣库存 for (int i = 0; i < orderItemList.size(); i++) { OrderItem orderItem = orderItemList.get(i); Product product = productMapper.selectByPrimaryKey(orderItem.getProductId()); int stock = product.getStock() - orderItem.getQuantity(); if (stock < 0) { throw new ImoocMallException(ImoocMallExceptionEnum.NOT_ENOUGH); } product.setStock(stock); productMapper.updateByPrimaryKeySelective(product); } //7.把购物车中已勾选的商品删除 cleanCart(cartVOList); //8.生成订单 Order order = new Order(); //9.生成订单号(有独立规则) String orderNo = OrderCodeFactory.getOrderCode(Long.valueOf(userId)); //订单数据赋值 order.setOrderNo(orderNo); order.setUserId(userId); order.setTotalPrice(totalPrice(orderItemList)); order.setReceiverName(createOrderReq.getReceiverName()); order.setReceiverMobile(createOrderReq.getReceiverMobile()); order.setReceiverAddress(createOrderReq.getReceiverAddress()); order.setOrderStatus(Constant.OrderStatusEnum.NOT_PAY.getCode()); order.setPostage(0); order.setPaymentType(1); //插入到Order表中 orderMapper.insertSelective(order); //10.循环保存每个商品到order_item表 for (int i = 0; i < orderItemList.size(); i++) { OrderItem orderItem = orderItemList.get(i); orderItem.setOrderNo(order.getOrderNo()); orderItemMapper.insertSelective(orderItem); } //11.返回结果 return orderNo; }
没有代码错误,请问这是什么原因呢:public com.imooc.mall.common.ApiRestResponse com.imooc.mall.controller.OrderController.create(com.imooc.mall.model.request.CreateOrderReq)
1回答
好帮手慕小尤
2022-05-09
同学你好,1、在课程源码中测试,并未发现问题,建议同学查看是否是导入的包出现问题,同学可以与课程源码进行对比。
2、如果还存在问题,建议同学将全部的异常信息反馈到问答区,便于老师定位问题。
祝学习愉快!
相似问题