From 554aa7e123281bf1bf4422f5020ab17455dc2fdd Mon Sep 17 00:00:00 2001 From: bootx Date: Tue, 3 Dec 2024 22:10:58 +0800 Subject: [PATCH] =?UTF-8?q?perf=20=E4=BC=98=E5=8C=96=E6=94=B6=E9=93=B6?= =?UTF-8?q?=E5=8F=B0=E6=94=AF=E4=BB=98=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/enums/CheckoutCallTypeEnum.java | 2 +- .../checkout/CheckoutGroupConfigResult.java | 3 --- .../CheckoutOrderAndConfigResult.java | 3 +-- .../result/checkout/CheckoutPayResult.java | 27 ------------------- .../controller/unipay/CheckoutController.java | 3 +-- .../checkout/CheckoutAssistService.java | 4 +++ .../service/checkout/CheckoutService.java | 17 ++++++------ 7 files changed, 15 insertions(+), 44 deletions(-) delete mode 100644 daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/checkout/CheckoutPayResult.java diff --git a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/CheckoutCallTypeEnum.java b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/CheckoutCallTypeEnum.java index 0fe7b721a..5146b505e 100644 --- a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/CheckoutCallTypeEnum.java +++ b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/CheckoutCallTypeEnum.java @@ -20,7 +20,7 @@ public enum CheckoutCallTypeEnum { QR_CODE("qr_code", "扫码支付"), BAR_CODE("bar_code", "条码支付"), LINK("link", "跳转链接"), - MINI_APP("mini_app", "小程序支付"), + JSAPI("jsapi", "JSAPI"), AGGREGATE("aggregate", "聚合支付"), APP("app", "APP支付"), ; diff --git a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/checkout/CheckoutGroupConfigResult.java b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/checkout/CheckoutGroupConfigResult.java index d1e3eca04..886322983 100644 --- a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/checkout/CheckoutGroupConfigResult.java +++ b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/checkout/CheckoutGroupConfigResult.java @@ -17,9 +17,6 @@ import java.util.List; @Schema(title = "收银台分类配置") public class CheckoutGroupConfigResult{ - @Schema(description = "主键") - private Long id; - /** * 类型 web/h5/小程序 * @see CheckoutTypeEnum diff --git a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/checkout/CheckoutOrderAndConfigResult.java b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/checkout/CheckoutOrderAndConfigResult.java index 240d86eb5..0bc78015d 100644 --- a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/checkout/CheckoutOrderAndConfigResult.java +++ b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/checkout/CheckoutOrderAndConfigResult.java @@ -21,11 +21,10 @@ public class CheckoutOrderAndConfigResult { private CheckoutOrderResult order; /** 收银台配置信息 */ - @Schema(description = "配置信息") + @Schema(description = "收银台配置信息") private CheckoutConfigResult config; /** 收银台分类配置信息 */ @Schema(description = "分类配置信息") private List groupConfigs; - } diff --git a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/checkout/CheckoutPayResult.java b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/checkout/CheckoutPayResult.java deleted file mode 100644 index 4a574fbbf..000000000 --- a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/checkout/CheckoutPayResult.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.dromara.daxpay.core.result.checkout; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.experimental.Accessors; -import org.dromara.daxpay.core.enums.PayStatusEnum; - -/** - * 收银台支付结果 - * @author xxm - * @since 2024/11/29 - */ -@Data -@Accessors(chain = true) -@Schema(title = "收银台支付结果") -public class CheckoutPayResult { - - /** 链接 */ - private String url; - - /** - * 支付状态 - * @see PayStatusEnum - */ - @Schema(description = "支付结果") - private String payStatus; -} diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/unipay/CheckoutController.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/unipay/CheckoutController.java index f993ee1ca..0944bfa57 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/unipay/CheckoutController.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/unipay/CheckoutController.java @@ -12,7 +12,6 @@ import org.dromara.daxpay.core.result.DaxResult; import org.dromara.daxpay.core.result.assist.AuthResult; import org.dromara.daxpay.core.result.checkout.CheckoutAggregateOrderAndConfigResult; import org.dromara.daxpay.core.result.checkout.CheckoutOrderAndConfigResult; -import org.dromara.daxpay.core.result.checkout.CheckoutPayResult; import org.dromara.daxpay.core.result.checkout.CheckoutUrlResult; import org.dromara.daxpay.core.result.trade.pay.PayResult; import org.dromara.daxpay.core.util.DaxRes; @@ -71,7 +70,7 @@ public class CheckoutController { @Operation(summary = "发起支付(普通)") @PostMapping("/pay") - public Result pay(@RequestBody CheckoutPayParam param){ + public Result pay(@RequestBody CheckoutPayParam param){ ValidationUtil.validateParam(param); return Res.ok(checkoutService.pay(param)); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/checkout/CheckoutAssistService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/checkout/CheckoutAssistService.java index ef8dc4018..c95ebab37 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/checkout/CheckoutAssistService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/checkout/CheckoutAssistService.java @@ -78,6 +78,10 @@ public class CheckoutAssistService { if (Objects.equals(payOrder.getRefundStatus(), PayRefundStatusEnum.REFUNDING.getCode())) { throw new TradeStatusErrorException("该订单处于退款状态"); } + // 待支付和支付中返回订单对象 + if (List.of(PayStatusEnum.WAIT.getCode(), PayStatusEnum.PROGRESS.getCode()).contains(payOrder.getStatus())){ + return payOrder; + } // 其他状态直接抛出兜底异常 throw new TradeStatusErrorException("订单不是待支付状态,请重新确认订单状态"); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/checkout/CheckoutService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/checkout/CheckoutService.java index 24b038688..4d7ade206 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/checkout/CheckoutService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/checkout/CheckoutService.java @@ -17,7 +17,6 @@ import org.dromara.daxpay.core.param.assist.AuthCodeParam; import org.dromara.daxpay.core.param.checkout.*; import org.dromara.daxpay.core.param.trade.pay.PayParam; import org.dromara.daxpay.core.result.assist.AuthResult; -import org.dromara.daxpay.core.result.checkout.CheckoutPayResult; import org.dromara.daxpay.core.result.checkout.CheckoutUrlResult; import org.dromara.daxpay.core.result.trade.pay.PayResult; import org.dromara.daxpay.service.dao.config.checkout.CheckoutAggregateConfigManager; @@ -114,7 +113,7 @@ public class CheckoutService { /** * 支付调用 */ - public CheckoutPayResult pay(CheckoutPayParam param){ + public PayResult pay(CheckoutPayParam param){ // 订单信息 PayOrder payOrder = checkoutAssistService.getOrderAndCheck(param.getOrderNo()); paymentAssistService.initMchApp(payOrder.getAppId()); @@ -124,14 +123,17 @@ public class CheckoutService { // 判断支付调用类型 CheckoutCallTypeEnum callTypeEnum = CheckoutCallTypeEnum.findBuyCode(itemConfig.getCallType()); switch (callTypeEnum) { - case QR_CODE, LINK, BAR_CODE -> { + case QR_CODE, LINK, BAR_CODE,JSAPI -> { return this.checkoutPay(param, payOrder); } case AGGREGATE -> { PlatformConfig config = platformConfigService.getConfig(); // 直接返回手机端的聚合收银台链接 String url = StrUtil.format("{}/aggregate/{}", config.getGatewayPcUrl(), payOrder.getOrderNo()); - return new CheckoutPayResult().setUrl(url).setPayStatus(PayStatusEnum.WAIT.getCode()); + PayResult payResult = new PayResult(); + payResult.setPayBody(url); + payResult.setStatus(PayStatusEnum.WAIT.getCode()); + return payResult; } default -> throw new UnsupportedAbilityException("不支持的支付调用类型"); } @@ -140,7 +142,7 @@ public class CheckoutService { /** * 处理参数使用通用支付接口调起支付 */ - private CheckoutPayResult checkoutPay(CheckoutPayParam param, PayOrder payOrder){ + private PayResult checkoutPay(CheckoutPayParam param, PayOrder payOrder){ // 查询配置 CheckoutItemConfig itemConfig = checkoutItemConfigManager.findByIdAndAppId(param.getItemId(),payOrder.getAppId()) .orElseThrow(() -> new TradeProcessingException("支付配置项不存在")); @@ -159,10 +161,7 @@ public class CheckoutService { // 进行参数预处理 cashierStrategy.handlePayParam(param, payParam); // 发起支付 - PayResult payResult = payService.pay(payParam, payOrder); - return new CheckoutPayResult() - .setUrl(payResult.getPayBody()) - .setPayStatus(payResult.getStatus()); + return payService.pay(payParam, payOrder); } /**