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