解决商品不存在时的扣减出错问题

This commit is contained in:
liyj 2025-11-07 17:42:04 +08:00
parent 38a1ce0c66
commit 2e7612ac93

View File

@ -5321,18 +5321,17 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
if (Arrays.asList(1001, 1002).contains(order_item_inventory_lock)) { if (Arrays.asList(1001, 1002).contains(order_item_inventory_lock)) {
Long item_id = order_item_row.getItem_id(); Long item_id = order_item_row.getItem_id();
ShopProductItem shopProductItem = shopProductItemService.get(item_id); ShopProductItem shopProductItem = shopProductItemService.get(item_id);
if (shopProductItem == null) { if (shopProductItem != null) {
throw new ApiException(I18nUtil._("无法获取订单中的商品,请检查!")); logger.info("无法获取订单中的商品,请检查!");//商品存在才执行库存扣减
} // throw new ApiException(I18nUtil._("无法获取订单中的商品,请检查!"));
Integer item_quantity_frozen = shopProductItem.getItem_quantity_frozen(); Integer item_quantity_frozen = shopProductItem.getItem_quantity_frozen();
int quantity_frozen = item_quantity_frozen - order_item_quantity; int quantity_frozen = item_quantity_frozen - order_item_quantity;
shopProductItem.setItem_quantity_frozen(quantity_frozen > 0 ? quantity_frozen : 0); shopProductItem.setItem_quantity_frozen(quantity_frozen > 0 ? quantity_frozen : 0);
if (!shopProductItemService.edit(shopProductItem)) { if (!shopProductItemService.edit(shopProductItem)) {
throw new ApiException(I18nUtil._("修改商品冻结库存失败!")); throw new ApiException(I18nUtil._("修改商品冻结库存失败!"));
} }
} }
}
// 退还礼包活动 // 退还礼包活动
if (order_item_row.getActivity_type_id().equals(StateCode.ACTIVITY_TYPE_GIFTPACK)) { if (order_item_row.getActivity_type_id().equals(StateCode.ACTIVITY_TYPE_GIFTPACK)) {