点餐系统学习日志-订单新建

```java      
@Override
@Transactional
public OrderDTO create(OrderDTO orderDTO) {
    String orderId = KeyUtil.genUniqueKey();
    BigDecimal  Count=new BigDecimal(BigInteger.ZERO);
    List<CartDTO> cartDTOList = new ArrayList<>();

    //1.查询商品
    for (OrderDetail detail:orderDTO.getOrderDetailList()){
        ProductInfo productInfo = productInfoService.findOne(detail.getProductId());
        if(productInfo==null){
            throw  new SellException(ResultEnum.PRODUCT_NOT_EXIST);
        }
        //2.计算总价
        Count= productInfo.getProductPrice().multiply
                (new BigDecimal(detail.getProductQuantity())).add(Count);
        //订单详情入库
        detail.setOrderId(orderId);
        detail.setDetailId(KeyUtil.genUniqueKey());
        detail.setProductName(productInfo.getProductName());
        detail.setProductPrice(productInfo.getProductPrice());
        detail.setProductIcon(productInfo.getProductIcon());
        orderDetailRepository.save(detail);
        CartDTO cartDTO = new CartDTO(detail.getProductId(), detail.getProductQuantity());
        cartDTOList.add(cartDTO);
    }
    //3.写入订单数据库 OrderMaster  OrderDetail
    OrderMaster  orderMaster= new OrderMaster();
    orderDTO.setOrderId(orderId);
    BeanUtils.copyProperties(orderDTO,orderMaster);
    orderMaster.setOrderAmount(Count);
    orderMaster.setOrderStatus(OrderStatusEnum.NEW.getCode());
    orderMaster.setPayStatus(PayStatusEnum.WAIT.getCode());
    orderMaster.setBuyerOpenid("oTgZpwTx-RzW8wIFHVkux4Uc1ROg");
    orderMasterRepository.save(orderMaster);
    //4.扣库存
    //Java8特性写法
    //        List<CartDTO> cartDTOList = orderDTO.getOrderDetailList().stream().map(e ->
    //                new CartDTO(e.getProductId(), e.getProductQuantity())
    //        ).collect(Collectors.toList());

    productInfoService.decreaseStock(cartDTOList);
    return orderDTO;
}

1.查询商品
遍历前端传来的商品集合id(里面只有商品id和商品数量)     
根据前端传来的商品id 和商品数量    
查询出商品 判断商品是否为null   

2.计算商品总价    
遍历时候计算商品总价    

3.订单详情入库      

4.订单入库    

5.减少库存







转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。邮件至 wcfinyourheart@163.com

文章标题:点餐系统学习日志-订单新建

本文作者:wcf

发布时间:2019-12-09, 17:22:23

最后更新:2020-01-26, 10:17:32

原始链接:http://1007638786.github.io/2019/12/09/%E7%82%B9%E9%A4%90%E7%B3%BB%E7%BB%9F%E5%AD%A6%E4%B9%A0%E6%97%A5%E5%BF%97-%E8%AE%A2%E5%8D%95%E6%96%B0%E5%A2%9E%E6%B5%81%E7%A8%8B%E8%AE%B0%E5%BD%95/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏