fix: 临时菜切换自取报错修复

This commit is contained in:
张松 2024-12-04 09:39:00 +08:00
parent 0a37e4d7c5
commit c8abded1fb
1 changed files with 20 additions and 13 deletions

View File

@ -2744,34 +2744,41 @@ public class TbShopTableServiceImpl implements TbShopTableService {
if (OrderUseTypeEnum.TAKEOUT.getValue().equals(choseModelDTO.getUseType())) { if (OrderUseTypeEnum.TAKEOUT.getValue().equals(choseModelDTO.getUseType())) {
ArrayList<Integer> productIds = new ArrayList<>(); ArrayList<Integer> productIds = new ArrayList<>();
cashierCarts.forEach(item -> { cashierCarts.forEach(item -> {
productIds.add(Integer.valueOf(item.getProductId())); if (item.getProductId() != null) {
productIds.add(Integer.valueOf(item.getProductId()));
}
}); });
List<TbProduct> productList = productMapper.selectBatchIds(productIds);
Map<String, TbProduct> productMap = productList.stream() Map<String, TbProduct> productMap = new HashMap<>();
.collect(Collectors.toMap(product -> String.valueOf(product.getId()), product -> product)); if (!productIds.isEmpty()) {
cashierCarts.forEach(item -> { List<TbProduct> productList = productMapper.selectBatchIds(productIds);
TbProduct product = productMap.get(item.getProductId()); productMap = productList.stream()
.collect(Collectors.toMap(product -> String.valueOf(product.getId()), product -> product));
}
for (TbCashierCart cashierCart : cashierCarts) {
TbProduct product = productMap.get(cashierCart.getProductId());
// 设置打包费 // 设置打包费
mpCashierCartService.update(new LambdaUpdateWrapper<TbCashierCart>() mpCashierCartService.update(new LambdaUpdateWrapper<TbCashierCart>()
.eq(TbCashierCart::getId, item.getId()) .eq(TbCashierCart::getId, cashierCart.getId())
.set(TbCashierCart::getPackFee, product.getPackFee() != null ? .set(TbCashierCart::getPackFee, product != null && product.getPackFee() != null ?
product.getPackFee().multiply(item.getNumber()) : BigDecimal.ZERO) product.getPackFee().multiply(cashierCart.getNumber()) : BigDecimal.ZERO)
.set(TbCashierCart::getTableId, null) .set(TbCashierCart::getTableId, null)
.set(TbCashierCart::getUseType, OrderUseTypeEnum.TAKEOUT.getValue()) .set(TbCashierCart::getUseType, OrderUseTypeEnum.TAKEOUT.getValue())
.set(TbCashierCart::getIsPack, "true")); .set(TbCashierCart::getIsPack, "true"));
}); }
List<TbOrderDetail> detailList = orderDetailMapper.selectList(new LambdaQueryWrapper<TbOrderDetail>() List<TbOrderDetail> detailList = orderDetailMapper.selectList(new LambdaQueryWrapper<TbOrderDetail>()
.in(TbOrderDetail::getCartId, choseModelDTO.getCartIds()) .in(TbOrderDetail::getCartId, choseModelDTO.getCartIds())
.eq(TbOrderDetail::getShopId, choseModelDTO.getShopId())); .eq(TbOrderDetail::getShopId, choseModelDTO.getShopId()));
detailList.forEach(item -> { for (TbOrderDetail item : detailList) {
item.setUseType(OrderUseTypeEnum.TAKEOUT.getValue()); item.setUseType(OrderUseTypeEnum.TAKEOUT.getValue());
TbProduct product = productMap.get(item.getProductId().toString()); TbProduct product = productMap.get(item.getProductId().toString());
// 设置打包费 // 设置打包费
item.setPackAmount(product.getPackFee() != null ? item.setPackAmount(product != null && product.getPackFee() != null ?
product.getPackFee().multiply(item.getNum()) : BigDecimal.ZERO); product.getPackFee().multiply(item.getNum()) : BigDecimal.ZERO);
}); }
if (!detailList.isEmpty()) { if (!detailList.isEmpty()) {
mpOrderDetailService.updateBatchById(detailList); mpOrderDetailService.updateBatchById(detailList);