diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/AbstractOrderPlacementStrategy.java b/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/AbstractOrderPlacementStrategy.java index ebe2e53..9c90b64 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/AbstractOrderPlacementStrategy.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/AbstractOrderPlacementStrategy.java @@ -31,6 +31,11 @@ abstract class AbstractOrderPlacementStrategy implements OrderPlacementStrategy boolean shouldDeduct = command.isDeductBalance() && service.shouldDeductBalance(context); if (shouldDeduct) { service.validateSufficientBalance(context.getPurchaserBy(), netAmount); + } + + PlayOrderInfoEntity order = service.createOrderRecord(context); + + if (shouldDeduct) { service.deductCustomerBalance( context.getPurchaserBy(), netAmount, @@ -38,8 +43,6 @@ abstract class AbstractOrderPlacementStrategy implements OrderPlacementStrategy context.getOrderId()); } - PlayOrderInfoEntity order = service.createOrderRecord(context); - OrderAmountBreakdown amountBreakdown = breakdown != null ? breakdown : service.fallbackBreakdown(paymentInfo); return OrderPlacementResult.of(order, amountBreakdown);