From d7d4d0d3590ebabdd2cf0a743887c21300e5159f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Sun, 31 Aug 2025 00:20:23 +0800 Subject: [PATCH] =?UTF-8?q?feat(order):=20=E6=B7=BB=E5=8A=A0=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E4=BF=A1=E6=81=AF=E9=85=8D=E7=BD=AE=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=B5=8B=E8=AF=95=E8=B4=A6=E5=8F=B7=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 OrderConfigProperties 中添加 ErrorMessages 类,用于配置订单相关的错误信息- 在 OrderBusinessService 中增加测试账号的判断逻辑,测试账号可跳过金额验证 --- .../shop/config/OrderConfigProperties.java | 38 +++++++++++++++++++ .../shop/service/OrderBusinessService.java | 12 ++++++ 2 files changed, 50 insertions(+) diff --git a/src/main/java/com/gxwebsoft/shop/config/OrderConfigProperties.java b/src/main/java/com/gxwebsoft/shop/config/OrderConfigProperties.java index 9426e5f..887db88 100644 --- a/src/main/java/com/gxwebsoft/shop/config/OrderConfigProperties.java +++ b/src/main/java/com/gxwebsoft/shop/config/OrderConfigProperties.java @@ -38,6 +38,11 @@ public class OrderConfigProperties { */ private AutoCancel autoCancel = new AutoCancel(); + /** + * 错误信息配置 + */ + private ErrorMessages errorMessages = new ErrorMessages(); + @Data public static class TestAccount { /** @@ -194,4 +199,37 @@ public class OrderConfigProperties { .findFirst() .orElse(null); } + + @Data + public static class ErrorMessages { + /** + * 订单金额计算错误信息 + */ + private String amountCalculationError = "订单金额计算错误,请刷新重试"; + + /** + * 商品不存在错误信息 + */ + private String goodsNotFound = "商品不存在"; + + /** + * 商品已下架错误信息 + */ + private String goodsOffline = "商品已下架"; + + /** + * 库存不足错误信息 + */ + private String stockInsufficient = "商品库存不足"; + + /** + * 购买数量超限错误信息 + */ + private String quantityExceeded = "商品购买数量超过限制"; + + /** + * 商品价格异常错误信息 + */ + private String priceAbnormal = "商品价格异常"; + } } diff --git a/src/main/java/com/gxwebsoft/shop/service/OrderBusinessService.java b/src/main/java/com/gxwebsoft/shop/service/OrderBusinessService.java index eb949eb..cf2fb7e 100644 --- a/src/main/java/com/gxwebsoft/shop/service/OrderBusinessService.java +++ b/src/main/java/com/gxwebsoft/shop/service/OrderBusinessService.java @@ -104,6 +104,18 @@ public class OrderBusinessService { throw new BusinessException("用户未登录"); } + // 检查是否为测试账号 + boolean isTestAccount = orderConfig.isTestAccount(loginUser.getPhone()); + + if (isTestAccount) { + // 测试账号:直接使用测试金额,跳过金额验证 + BigDecimal testAmount = orderConfig.getTestAccount().getTestPayAmount(); + request.setTotalPrice(testAmount); + log.info("测试账号订单,用户:{},使用测试金额:{}", loginUser.getPhone(), testAmount); + return; // 测试账号跳过后续验证 + } + + // 非测试账号:正常验证流程 // 验证商品信息并计算总金额 BigDecimal calculatedTotal = validateAndCalculateTotal(request);