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