Java开发中的一些常用手段

xiaoxiao2025-04-10  15

用 BeanUtils应注意的事项:

引用:

import org.springframework.beans.BeanUtils;

参考格式:

BeanUtils.copyProperties(productInfo, orderDetail);//记住先拷贝 后赋值,因为null值也会覆盖的//所有相同名字的字段都会覆盖 BeanUtils.copyProperties(productInfo, orderDetail);//记住先拷贝 后赋值,因为null值也会覆盖的 orderDetail.setDetailId(KeyUtil.getUniqueKey());//orderDetail里面productInfo传过来 没有DetailId orderDetail.setOrderId(orderId); //orderDetail里面productInfo传过来 没有OrderId

 

贴上参考的结构和代码:

1.订单内部传输对象

@Override @Transactional public OrderDTO create(OrderDTO orderDTO) {//创建订单 买家信息和订单详情对象 String orderId = KeyUtil.getUniqueKey();//创建一个唯一的订单id BigDecimal orderAmount=new BigDecimal(BigInteger.ZERO);//订单总价 List<CartDTO> cartDTOList=new ArrayList<>();//购物车 //1.查询数据库中商品的信息(数量 价格),关键数据不能从前端取 for (OrderDetail orderDetail:orderDTO.getOrderDetailList()){//遍历订单详情列表 ProductInfo productInfo = productService.findOne(orderDetail.getProductId());//每个详情的商品信息(订单信息[查商品数据库单价]) if (productInfo==null){//查询数据库没有该商品信息 抛商品找不到异常 throw new SellException(ResultEnum.PRODUCT_NOT_EXIST); } //2.计算订单总价 orderAmount = productInfo.getProductPrice() .multiply(new BigDecimal(orderDetail.getProductQuantity()))//单价*数量 .add(orderAmount);//每次循环总价累加 //订单详情写进库 BeanUtils.copyProperties(productInfo, orderDetail);//记住先拷贝 后赋值,因为null值也会覆盖的 orderDetail.setDetailId(KeyUtil.getUniqueKey());//orderDetail里面productInfo传过来 没有DetailId orderDetail.setOrderId(orderId); //orderDetail里面productInfo传过来 没有OrderId orderDetailRepository.save(orderDetail); CartDTO cartDTO=new CartDTO(orderDetail.getProductId(),orderDetail.getProductQuantity()); cartDTOList.add(cartDTO); }

 

转载请注明原文地址: https://www.6miu.com/read-5027906.html

最新回复(0)