fix: 临时菜切换自取报错修复
This commit is contained in:
parent
0a37e4d7c5
commit
c8abded1fb
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue