From 816ea8ecf3f4b812484a2c9cc9e0d4a6de52a734 Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Sun, 13 Sep 2026 18:07:17 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=80=E6=AC=BE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/order/HardOrderServiceImpl.java | 55 ++++++++++++------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java index 35e2a959b..9f657e741 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java @@ -4647,6 +4647,9 @@ public class HardOrderServiceImpl extends ServiceImpl inventorySnapshot = new LinkedHashMap<>(); @@ -4655,8 +4658,9 @@ public class HardOrderServiceImpl extends ServiceImpl> menuResult = remoteDailyMenuService.getCanteenList( - mealDate.toString(), hourType, null, order.getMerchantId()); + R> menuResult = onlineChannel + ? remoteDailyMenuService.listForOrderValidate(mealDate.toString(), hourType, order.getMerchantId()) + : remoteDailyMenuService.getCanteenList(mealDate.toString(), hourType, null, order.getMerchantId()); if (menuResult == null || !menuResult.isOk() || menuResult.getData() == null) { throw new I18nBizException(menuResult == null ? ErrorCodes.HARD_CANTEEN_STOCK_NO_RESP : ErrorCodes.HARD_CANTEEN_STOCK_QUERY_FAIL); @@ -4670,13 +4674,21 @@ public class HardOrderServiceImpl extends ServiceImpl stockChanges, + /** 每日菜谱分池:按 ONLINE/OFFLINE 改写 daily_menu.*_sold(配额不动)。 */ + private void applyCanteenDailyChannelInventoryChange(Map stockChanges, Map inventorySnapshot, String inventoryBizId, String operation, Long merchantId, - LocalDate mealDate, Integer hourType) { + LocalDate mealDate, Integer hourType, String stockChannel) { CanteenSpuUpdateStockReqDTO dto = new CanteenSpuUpdateStockReqDTO(); dto.setBizId(inventoryBizId); dto.setOperation(operation); - dto.setStockChannel("OFFLINE"); + dto.setStockChannel(stockChannel); dto.setMerchantId(merchantId); dto.setItems(stockChanges.entrySet().stream().map(entry -> { CanteenSpuUpdateStockReqDTO.Item item = new CanteenSpuUpdateStockReqDTO.Item(); @@ -4829,14 +4842,15 @@ public class HardOrderServiceImpl extends ServiceImpl stockChanges, + private void registerCanteenDailyChannelInventoryRollback(Map stockChanges, Map inventorySnapshot, String inventoryBizId, Long merchantId, LocalDate mealDate, - Integer hourType) { + Integer hourType, String stockChannel) { if (!TransactionSynchronizationManager.isSynchronizationActive()) { throw new I18nBizException(ErrorCodes.HARD_STOCK_TX_STATE_BAD); } Map rollbackChanges = Map.copyOf(stockChanges); Map rollbackSnapshot = Map.copyOf(inventorySnapshot); + String channel = stockChannel; TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() { @Override public void afterCompletion(int status) { @@ -4844,11 +4858,12 @@ public class HardOrderServiceImpl extends ServiceImpl