From 68ec92a00ee59484cebe78b1730301b6bd20e79f Mon Sep 17 00:00:00 2001 From: DaxPay Date: Mon, 9 Dec 2024 19:49:48 +0800 Subject: [PATCH] =?UTF-8?q?refactor(allocation):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E5=88=86=E8=B4=A6=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81=20-=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=86=E8=B4=A6=E9=85=8D=E7=BD=AE=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=20-=20=E9=87=8D=E5=91=BD=E5=90=8D=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E7=B1=BB=E5=92=8C=E6=8E=A5=E5=8F=A3=EF=BC=8C=E4=BD=BF=E5=85=B6?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E6=9B=B4=E5=8A=A0=E6=B8=85=E6=99=B0=E5=92=8C?= =?UTF-8?q?=E7=BB=9F=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-dev.yml | 6 +- ...ultEnum.java => AllocationResultEnum.java} | 2 +- ...tusEnum.java => AllocationStatusEnum.java} | 8 +- ...onParam.java => QueryAllocOrderParam.java} | 2 +- .../AllocDetailResult.java | 2 +- .../AllocOrderResult.java} | 16 +-- .../AllocationResult.java} | 8 +- .../{receiver => }/AllocStartResultBo.java | 2 +- .../allocation/AllocController.java | 52 ++++++++ .../allocation/AllocGroupController.java | 10 +- ...troller.java => AllocOrderController.java} | 18 +-- .../allocation/AllocReceiverController.java | 6 +- .../unipay/UniAllocationController.java | 14 +-- .../allocation/AllocConfigConvert.java | 22 ++++ .../convert/allocation/AllocGroupConvert.java | 6 +- .../allocation/AllocGroupReceiverConvert.java | 6 +- .../convert/allocation/AllocOrderConvert.java | 28 +++++ .../allocation/AllocReceiverConvert.java | 4 +- .../allocation/AllocTransactionConvert.java | 22 ---- ...ionManager.java => AllocOrderManager.java} | 18 +-- ...ctionMapper.java => AllocOrderMapper.java} | 4 +- .../service/dao/config/AllocConfigManger.java | 21 +++- .../service/dao/config/AllocConfigMapper.java | 2 +- .../entity/allocation/AllocConfig.java | 46 ++++++++ .../allocation/receiver/AllocGroup.java | 8 +- .../receiver/AllocGroupReceiver.java | 8 +- .../allocation/receiver/AllocReceiver.java | 6 +- ...tionAndDetail.java => AllocAndDetail.java} | 3 +- .../allocation/transaction/AllocDetail.java | 6 +- ...{AllocTransaction.java => AllocOrder.java} | 18 +-- .../service/entity/config/AllocConfig.java | 33 ------ .../param/allocation/AllocConfigParam.java | 34 ++++++ .../result/allocation/AllocConfigResult.java | 27 +++++ .../allocation/order/AllocDetailVo.java | 68 +++++++++++ .../result/allocation/order/AllocOrderVo.java | 111 ++++++++++++++++++ .../receiver/AllocGroupReceiverVo.java} | 4 +- .../allocation/receiver/AllocGroupVo.java} | 4 +- .../allocation/receiver/AllocReceiverVo.java} | 4 +- .../allocation/AllocConfigService.java | 59 ++++++++++ .../service/allocation/AllocationService.java | 76 ++++++------ .../AllocOrderQueryService.java} | 20 ++-- .../AllocOrderService.java} | 38 +++--- .../AllocationAssistService.java} | 20 ++-- .../receiver/AllocGroupService.java | 14 +-- .../receiver/AllocReceiverService.java | 26 ++-- .../service/develop/DevelopTradeService.java | 2 +- .../strategy/AbsAllocationStrategy.java | 8 +- 47 files changed, 663 insertions(+), 259 deletions(-) rename daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/{AllocTransactionResultEnum.java => AllocationResultEnum.java} (91%) rename daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/{AllocTransactionStatusEnum.java => AllocationStatusEnum.java} (68%) rename daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/param/allocation/transaction/{QueryAllocTransactionParam.java => QueryAllocOrderParam.java} (88%) rename daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/{transaction => order}/AllocDetailResult.java (96%) rename daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/{transaction/AllocTransactionResult.java => order/AllocOrderResult.java} (84%) rename daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/{transaction/AllocResult.java => order/AllocationResult.java} (74%) rename daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/bo/allocation/{receiver => }/AllocStartResultBo.java (81%) create mode 100644 daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocController.java rename daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/{AllocTransactionController.java => AllocOrderController.java} (75%) create mode 100644 daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocConfigConvert.java create mode 100644 daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocOrderConvert.java delete mode 100644 daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocTransactionConvert.java rename daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/allocation/transaction/{AllocTransactionManager.java => AllocOrderManager.java} (67%) rename daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/allocation/transaction/{AllocTransactionMapper.java => AllocOrderMapper.java} (73%) create mode 100644 daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/entity/allocation/AllocConfig.java rename daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/entity/allocation/transaction/{TransactionAndDetail.java => AllocAndDetail.java} (63%) rename daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/entity/allocation/transaction/{AllocTransaction.java => AllocOrder.java} (78%) delete mode 100644 daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/entity/config/AllocConfig.java create mode 100644 daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/param/allocation/AllocConfigParam.java create mode 100644 daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/result/allocation/AllocConfigResult.java create mode 100644 daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/result/allocation/order/AllocDetailVo.java create mode 100644 daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/result/allocation/order/AllocOrderVo.java rename daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/{bo/allocation/receiver/AllocGroupReceiverResultBo.java => result/allocation/receiver/AllocGroupReceiverVo.java} (92%) rename daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/{bo/allocation/receiver/AllocGroupResultBo.java => result/allocation/receiver/AllocGroupVo.java} (87%) rename daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/{bo/allocation/receiver/AllocReceiverResultBo.java => result/allocation/receiver/AllocReceiverVo.java} (92%) create mode 100644 daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/AllocConfigService.java rename daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/{transaction/AllocQueryService.java => order/AllocOrderQueryService.java} (69%) rename daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/{transaction/AllocTransactionService.java => order/AllocOrderService.java} (86%) rename daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/{transaction/AllocAssistService.java => order/AllocationAssistService.java} (91%) diff --git a/daxpay-single-server/src/main/resources/application-dev.yml b/daxpay-single-server/src/main/resources/application-dev.yml index 0b0aef85..7aefbf8d 100644 --- a/daxpay-single-server/src/main/resources/application-dev.yml +++ b/daxpay-single-server/src/main/resources/application-dev.yml @@ -6,14 +6,14 @@ spring: master: # Postgresql连接 driver-class-name: org.postgresql.Driver - url: jdbc:postgresql://127.0.0.1:5432/dax-pay-single?serverTimezone=Asia/Shanghai&autoReconnect=true&reWriteBatchedInserts=true + url: jdbc:postgresql://postgresql:5432/dax-pay-single?serverTimezone=Asia/Shanghai&autoReconnect=true&reWriteBatchedInserts=true username: bootx password: bootx123 # MySQL连接 # driver-class-name: com.mysql.cj.jdbc.Driver -# url: jdbc:mysql://127.0.0.1:3306/dax-pay-single?serverTimezone=GMT%2B8&characterEncoding=utf8&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true +# url: jdbc:mysql://mysql:3306/dax-pay-single?serverTimezone=GMT%2B8&characterEncoding=utf8&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # username: root -# password: root +# password: bootx123 hikari: keepalive-time: 300000 data: diff --git a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/AllocTransactionResultEnum.java b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/AllocationResultEnum.java similarity index 91% rename from daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/AllocTransactionResultEnum.java rename to daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/AllocationResultEnum.java index df3b7fa1..2fe616f4 100644 --- a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/AllocTransactionResultEnum.java +++ b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/AllocationResultEnum.java @@ -10,7 +10,7 @@ import lombok.Getter; */ @Getter @AllArgsConstructor -public enum AllocTransactionResultEnum { +public enum AllocationResultEnum { ALL_PENDING("all_pending", "处理中"), ALL_SUCCESS("all_success", "全部成功"), diff --git a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/AllocTransactionStatusEnum.java b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/AllocationStatusEnum.java similarity index 68% rename from daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/AllocTransactionStatusEnum.java rename to daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/AllocationStatusEnum.java index f69e0241..dfb29d12 100644 --- a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/AllocTransactionStatusEnum.java +++ b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/AllocationStatusEnum.java @@ -10,12 +10,12 @@ import lombok.Getter; */ @Getter @AllArgsConstructor -public enum AllocTransactionStatusEnum { +public enum AllocationStatusEnum { - ALLOC_PROCESSING("alloc_processing", "分账处理中"), - ALLOC_END("alloc_end", "分账完成"), + PROCESSING("processing", "分账处理中"), + ALLOC_END("alloc_end", "分账处理完成"), ALLOC_FAILED("alloc_failed", "分账失败"), - FINISH("finish", "完结"), + FINISH("finish", "分账完结"), FINISH_FAILED("finish_failed", "完结失败"), IGNORE("ignore", "忽略"), ; diff --git a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/param/allocation/transaction/QueryAllocTransactionParam.java b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/param/allocation/transaction/QueryAllocOrderParam.java similarity index 88% rename from daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/param/allocation/transaction/QueryAllocTransactionParam.java rename to daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/param/allocation/transaction/QueryAllocOrderParam.java index b3a8387e..0934b643 100644 --- a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/param/allocation/transaction/QueryAllocTransactionParam.java +++ b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/param/allocation/transaction/QueryAllocOrderParam.java @@ -13,7 +13,7 @@ import org.dromara.daxpay.core.param.PaymentCommonParam; @EqualsAndHashCode(callSuper = true) @Data @Schema(title = "支付订单查询参数") -public class QueryAllocTransactionParam extends PaymentCommonParam { +public class QueryAllocOrderParam extends PaymentCommonParam { @Schema(description = "分账单号") private String allocNo; diff --git a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/transaction/AllocDetailResult.java b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/order/AllocDetailResult.java similarity index 96% rename from daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/transaction/AllocDetailResult.java rename to daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/order/AllocDetailResult.java index bba0c56f..ec3b7c79 100644 --- a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/transaction/AllocDetailResult.java +++ b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/order/AllocDetailResult.java @@ -1,4 +1,4 @@ -package org.dromara.daxpay.core.result.allocation.transaction; +package org.dromara.daxpay.core.result.allocation.order; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/transaction/AllocTransactionResult.java b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/order/AllocOrderResult.java similarity index 84% rename from daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/transaction/AllocTransactionResult.java rename to daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/order/AllocOrderResult.java index a16bb7b9..0e3642e9 100644 --- a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/transaction/AllocTransactionResult.java +++ b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/order/AllocOrderResult.java @@ -1,24 +1,24 @@ -package org.dromara.daxpay.core.result.allocation.transaction; +package org.dromara.daxpay.core.result.allocation.order; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.experimental.Accessors; -import org.dromara.daxpay.core.enums.AllocTransactionResultEnum; -import org.dromara.daxpay.core.enums.AllocTransactionStatusEnum; +import org.dromara.daxpay.core.enums.AllocationResultEnum; +import org.dromara.daxpay.core.enums.AllocationStatusEnum; import org.dromara.daxpay.core.enums.ChannelEnum; import java.time.LocalDateTime; import java.util.List; /** - * 分账订单返回结果 + * 分账订单 * @author xxm * @since 2024/5/21 */ @Data @Accessors(chain = true) -@Schema(title = "分账订单返回结果") -public class AllocTransactionResult { +@Schema(title = "分账订单") +public class AllocOrderResult { /** 分账单号 */ @Schema(description = "分账单号") @@ -73,14 +73,14 @@ public class AllocTransactionResult { /** * 状态 - * @see AllocTransactionStatusEnum + * @see AllocationStatusEnum */ @Schema(description = "状态") private String status; /** * 处理结果 - * @see AllocTransactionResultEnum + * @see AllocationResultEnum */ @Schema(description = "处理结果") private String result; diff --git a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/transaction/AllocResult.java b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/order/AllocationResult.java similarity index 74% rename from daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/transaction/AllocResult.java rename to daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/order/AllocationResult.java index 4ce8b5be..30830348 100644 --- a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/transaction/AllocResult.java +++ b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/result/allocation/order/AllocationResult.java @@ -1,9 +1,9 @@ -package org.dromara.daxpay.core.result.allocation.transaction; +package org.dromara.daxpay.core.result.allocation.order; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.experimental.Accessors; -import org.dromara.daxpay.core.enums.AllocTransactionStatusEnum; +import org.dromara.daxpay.core.enums.AllocationStatusEnum; /** * 分账请求结果 @@ -13,7 +13,7 @@ import org.dromara.daxpay.core.enums.AllocTransactionStatusEnum; @Data @Accessors(chain = true) @Schema(title = "分账请求结果") -public class AllocResult { +public class AllocationResult { /** 分账订单号 */ @Schema(description = "分账订单号") private String allocNo; @@ -24,7 +24,7 @@ public class AllocResult { /** * 分账状态 - * @see AllocTransactionStatusEnum + * @see AllocationStatusEnum */ @Schema(description = "分账状态") private String status; diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/bo/allocation/receiver/AllocStartResultBo.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/bo/allocation/AllocStartResultBo.java similarity index 81% rename from daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/bo/allocation/receiver/AllocStartResultBo.java rename to daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/bo/allocation/AllocStartResultBo.java index cb74da3a..b245f559 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/bo/allocation/receiver/AllocStartResultBo.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/bo/allocation/AllocStartResultBo.java @@ -1,4 +1,4 @@ -package org.dromara.daxpay.service.bo.allocation.receiver; +package org.dromara.daxpay.service.bo.allocation; import lombok.Data; import lombok.experimental.Accessors; diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocController.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocController.java new file mode 100644 index 00000000..1f9a155c --- /dev/null +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocController.java @@ -0,0 +1,52 @@ +package org.dromara.daxpay.service.controller.allocation; + +import cn.bootx.platform.core.annotation.RequestGroup; +import cn.bootx.platform.core.annotation.RequestPath; +import cn.bootx.platform.core.rest.Res; +import cn.bootx.platform.core.rest.result.Result; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.dromara.daxpay.service.param.allocation.AllocConfigParam; +import org.dromara.daxpay.service.result.allocation.AllocConfigResult; +import org.dromara.daxpay.service.service.allocation.AllocConfigService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +/** + * 分账配置 + * @author xxm + * @since 2024/12/9 + */ +@Validated +@Tag(name = "分账配置") +@RestController +@RequestGroup(groupCode = "AllocConfig", groupName = "分账配置", moduleCode = "Alloc", moduleName = "分账管理" ) +@RequestMapping("/allocation/config") +@RequiredArgsConstructor +public class AllocController { + private final AllocConfigService allocConfigService; + + @RequestPath("保存") + @Operation(summary = "修改") + @PostMapping("/save") + public Result add(@Validated @RequestBody AllocConfigParam param) { + allocConfigService.save(param); + return Res.ok(); + } + + @RequestPath("修改") + @Operation(summary = "修改") + @PostMapping("/update") + public Result update(@Validated @RequestBody AllocConfigParam param) { + allocConfigService.update(param); + return Res.ok(); + } + + @RequestPath("根据应用ID查询详情") + @Operation(summary = "根据应用ID查询详情") + @GetMapping("/findByAppId") + public Result findByAppId(String appId) { + return Res.ok(allocConfigService.findByAppId(appId)); + } +} diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocGroupController.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocGroupController.java index 7d45270d..672d3e6a 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocGroupController.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocGroupController.java @@ -10,12 +10,12 @@ import cn.bootx.platform.core.util.ValidationUtil; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; -import org.dromara.daxpay.service.bo.allocation.receiver.AllocGroupResultBo; +import org.dromara.daxpay.service.result.allocation.receiver.AllocGroupVo; import org.dromara.daxpay.service.param.allocation.group.AllocGroupBindParam; import org.dromara.daxpay.service.param.allocation.group.AllocGroupParam; import org.dromara.daxpay.service.param.allocation.group.AllocGroupQuery; import org.dromara.daxpay.service.param.allocation.group.AllocGroupUnbindParam; -import org.dromara.daxpay.service.bo.allocation.receiver.AllocGroupReceiverResultBo; +import org.dromara.daxpay.service.result.allocation.receiver.AllocGroupReceiverVo; import org.dromara.daxpay.service.service.allocation.receiver.AllocGroupService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -40,14 +40,14 @@ public class AllocGroupController { @RequestPath("分页") @Operation(summary = "分页") @GetMapping("/page") - public Result> page(PageParam pageParam, AllocGroupQuery query){ + public Result> page(PageParam pageParam, AllocGroupQuery query){ return Res.ok(allocGroupService.page(pageParam,query)); } @RequestPath("查询详情") @Operation(summary = "查询详情") @GetMapping("/findById") - public Result findById(Long id){ + public Result findById(Long id){ return Res.ok(allocGroupService.findById(id)); } @@ -61,7 +61,7 @@ public class AllocGroupController { @RequestPath("查询分账接收方信息") @Operation(summary = "查询分账接收方信息") @GetMapping("/findReceiversByGroups") - public Result> findReceiversByGroups(Long groupId){ + public Result> findReceiversByGroups(Long groupId){ return Res.ok(allocGroupService.findReceiversByGroups(groupId)); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocTransactionController.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocOrderController.java similarity index 75% rename from daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocTransactionController.java rename to daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocOrderController.java index 41bba169..f57a7c4b 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocTransactionController.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocOrderController.java @@ -1,5 +1,6 @@ package org.dromara.daxpay.service.controller.allocation; +import cn.bootx.platform.core.annotation.RequestGroup; import cn.bootx.platform.core.rest.Res; import cn.bootx.platform.core.rest.param.PageParam; import cn.bootx.platform.core.rest.result.PageResult; @@ -8,11 +9,11 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.dromara.daxpay.core.param.allocation.transaction.AllocFinishParam; -import org.dromara.daxpay.core.result.allocation.transaction.AllocDetailResult; -import org.dromara.daxpay.core.result.allocation.transaction.AllocTransactionResult; +import org.dromara.daxpay.core.result.allocation.order.AllocDetailResult; +import org.dromara.daxpay.core.result.allocation.order.AllocOrderResult; import org.dromara.daxpay.service.param.order.allocation.AllocOrderQuery; import org.dromara.daxpay.service.service.allocation.AllocationService; -import org.dromara.daxpay.service.service.allocation.transaction.AllocQueryService; +import org.dromara.daxpay.service.service.allocation.order.AllocOrderQueryService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -27,17 +28,18 @@ import java.util.List; */ @Tag(name = "分账订单控制器") @RestController -@RequestMapping("/allocation/transaction") +@RequestGroup(groupCode = "AllocOrder", groupName = "分账订单", moduleCode = "Alloc", moduleName = "分账管理" ) +@RequestMapping("/allocation/order") @RequiredArgsConstructor -public class AllocTransactionController { +public class AllocOrderController { - private final AllocQueryService queryService; + private final AllocOrderQueryService queryService; private final AllocationService allocationService; @Operation(summary = "分页") @GetMapping("/page") - public Result> page(PageParam pageParam, AllocOrderQuery param){ + public Result> page(PageParam pageParam, AllocOrderQuery param){ return Res.ok(queryService.page(pageParam,param)); } @@ -49,7 +51,7 @@ public class AllocTransactionController { @Operation(summary = "查询详情") @GetMapping("/findById") - public Result findById(Long id){ + public Result findById(Long id){ return Res.ok(queryService.findById(id)); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocReceiverController.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocReceiverController.java index 88d91f1f..1dbd279b 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocReceiverController.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/allocation/AllocReceiverController.java @@ -14,7 +14,7 @@ import jakarta.validation.constraints.NotBlank; import lombok.RequiredArgsConstructor; import org.dromara.daxpay.core.param.allocation.receiver.AllocReceiverAddParam; import org.dromara.daxpay.core.param.allocation.receiver.AllocReceiverRemoveParam; -import org.dromara.daxpay.service.bo.allocation.receiver.AllocReceiverResultBo; +import org.dromara.daxpay.service.result.allocation.receiver.AllocReceiverVo; import org.dromara.daxpay.service.param.allocation.receiver.AllocReceiverQuery; import org.dromara.daxpay.service.service.allocation.receiver.AllocReceiverService; import org.dromara.daxpay.service.service.assist.PaymentAssistService; @@ -42,14 +42,14 @@ public class AllocReceiverController { @RequestPath("分页") @Operation(summary = "分页") @GetMapping("/page") - public Result> page(PageParam pageParam, AllocReceiverQuery query){ + public Result> page(PageParam pageParam, AllocReceiverQuery query){ return Res.ok(receiverService.page(pageParam, query)); } @RequestPath("查询详情") @Operation(summary = "查询详情") @GetMapping("/findById") - public Result findById(Long id){ + public Result findById(Long id){ return Res.ok(receiverService.findById(id)); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/unipay/UniAllocationController.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/unipay/UniAllocationController.java index 817903cf..7e9f51de 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/unipay/UniAllocationController.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/unipay/UniAllocationController.java @@ -9,11 +9,11 @@ import org.dromara.daxpay.core.param.allocation.receiver.AllocReceiverQueryParam import org.dromara.daxpay.core.param.allocation.receiver.AllocReceiverRemoveParam; import org.dromara.daxpay.core.param.allocation.transaction.AllocFinishParam; import org.dromara.daxpay.core.param.allocation.transaction.AllocationParam; -import org.dromara.daxpay.core.param.allocation.transaction.QueryAllocTransactionParam; +import org.dromara.daxpay.core.param.allocation.transaction.QueryAllocOrderParam; import org.dromara.daxpay.core.result.DaxResult; +import org.dromara.daxpay.core.result.allocation.order.AllocOrderResult; +import org.dromara.daxpay.core.result.allocation.order.AllocationResult; import org.dromara.daxpay.core.result.allocation.receiver.AllocReceiverResult; -import org.dromara.daxpay.core.result.allocation.transaction.AllocResult; -import org.dromara.daxpay.core.result.allocation.transaction.AllocTransactionResult; import org.dromara.daxpay.core.util.DaxRes; import org.dromara.daxpay.service.common.anno.PaymentVerify; import org.dromara.daxpay.service.service.allocation.AllocationService; @@ -40,20 +40,20 @@ public class UniAllocationController { @Operation(summary = "发起分账接口") @PostMapping("/start") - public DaxResult start(@RequestBody AllocationParam param){ + public DaxResult start(@RequestBody AllocationParam param){ return DaxRes.ok(allocationService.allocation(param)); } @Operation(summary = "分账完结接口") @PostMapping("/finish") - public DaxResult finish(AllocFinishParam param){ + public DaxResult finish(AllocFinishParam param){ return DaxRes.ok(allocationService.finish(param)); } @Operation(summary = "分账写你查询接口") @PostMapping("/query") - public DaxResult query(@RequestBody QueryAllocTransactionParam param){ - return DaxRes.ok(allocationService.queryAllocTransaction(param)); + public DaxResult query(@RequestBody QueryAllocOrderParam param){ + return DaxRes.ok(allocationService.queryAllocOrder(param)); } @Operation(summary = "分账接收方查询接口") diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocConfigConvert.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocConfigConvert.java new file mode 100644 index 00000000..e058e556 --- /dev/null +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocConfigConvert.java @@ -0,0 +1,22 @@ +package org.dromara.daxpay.service.convert.allocation; + +import org.dromara.daxpay.service.entity.allocation.AllocConfig; +import org.dromara.daxpay.service.param.allocation.AllocConfigParam; +import org.dromara.daxpay.service.result.allocation.AllocConfigResult; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * 分账配置 + * @author xxm + * @since 2024/12/9 + */ +@Mapper +public interface AllocConfigConvert { + + AllocConfigConvert CONVERT = Mappers.getMapper(AllocConfigConvert.class); + + AllocConfigResult toResult(AllocConfig in); + + AllocConfig toEntity(AllocConfigParam in); +} diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocGroupConvert.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocGroupConvert.java index c597b059..f475d594 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocGroupConvert.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocGroupConvert.java @@ -2,7 +2,7 @@ package org.dromara.daxpay.service.convert.allocation; import org.dromara.daxpay.service.entity.allocation.receiver.AllocGroup; import org.dromara.daxpay.service.param.allocation.group.AllocGroupParam; -import org.dromara.daxpay.service.bo.allocation.receiver.AllocGroupResultBo; +import org.dromara.daxpay.service.result.allocation.receiver.AllocGroupVo; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; @@ -15,7 +15,7 @@ import org.mapstruct.factory.Mappers; public interface AllocGroupConvert { AllocGroupConvert CONVERT = Mappers.getMapper(AllocGroupConvert.class); - AllocGroupResultBo convert(AllocGroup in); + AllocGroupVo toVo(AllocGroup in); - AllocGroup convert(AllocGroupParam in); + AllocGroup toEntity(AllocGroupParam in); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocGroupReceiverConvert.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocGroupReceiverConvert.java index 9ea0e4a4..b00d52d4 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocGroupReceiverConvert.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocGroupReceiverConvert.java @@ -1,6 +1,6 @@ package org.dromara.daxpay.service.convert.allocation; -import org.dromara.daxpay.service.bo.allocation.receiver.AllocGroupReceiverResultBo; +import org.dromara.daxpay.service.result.allocation.receiver.AllocGroupReceiverVo; import org.dromara.daxpay.service.entity.allocation.receiver.AllocGroupReceiver; import org.dromara.daxpay.service.param.allocation.group.AllocGroupReceiverParam; import org.mapstruct.Mapper; @@ -15,7 +15,7 @@ import org.mapstruct.factory.Mappers; public interface AllocGroupReceiverConvert { AllocGroupReceiverConvert CONVERT = Mappers.getMapper(AllocGroupReceiverConvert.class); - AllocGroupReceiverResultBo convert(AllocGroupReceiver in); + AllocGroupReceiverVo toVo(AllocGroupReceiver in); - AllocGroupReceiver convert(AllocGroupReceiverParam in); + AllocGroupReceiver toEntity(AllocGroupReceiverParam in); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocOrderConvert.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocOrderConvert.java new file mode 100644 index 00000000..926ddf66 --- /dev/null +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocOrderConvert.java @@ -0,0 +1,28 @@ +package org.dromara.daxpay.service.convert.allocation; + +import org.dromara.daxpay.core.result.allocation.order.AllocDetailResult; +import org.dromara.daxpay.core.result.allocation.order.AllocOrderResult; +import org.dromara.daxpay.service.entity.allocation.transaction.AllocDetail; +import org.dromara.daxpay.service.entity.allocation.transaction.AllocOrder; +import org.dromara.daxpay.service.result.allocation.order.AllocDetailVo; +import org.dromara.daxpay.service.result.allocation.order.AllocOrderVo; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * + * @author xxm + * @since 2024/11/15 + */ +@Mapper +public interface AllocOrderConvert { + AllocOrderConvert CONVERT = Mappers.getMapper(AllocOrderConvert.class); + + AllocOrderResult toResult(AllocOrder in); + + AllocDetailResult toResult(AllocDetail in); + + AllocOrderVo toVo(AllocOrder in); + + AllocDetailVo toVo(AllocDetail in); +} diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocReceiverConvert.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocReceiverConvert.java index fa1fb673..19f13f1f 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocReceiverConvert.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocReceiverConvert.java @@ -2,7 +2,7 @@ package org.dromara.daxpay.service.convert.allocation; import org.dromara.daxpay.core.param.allocation.receiver.AllocReceiverAddParam; import org.dromara.daxpay.core.result.allocation.receiver.AllocReceiverResult; -import org.dromara.daxpay.service.bo.allocation.receiver.AllocReceiverResultBo; +import org.dromara.daxpay.service.result.allocation.receiver.AllocReceiverVo; import org.dromara.daxpay.service.entity.allocation.receiver.AllocReceiver; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; @@ -20,7 +20,7 @@ public interface AllocReceiverConvert { AllocReceiver convert(AllocReceiverAddParam in); - AllocReceiverResultBo toBo(AllocReceiver in); + AllocReceiverVo toBo(AllocReceiver in); AllocReceiverResult toResult(AllocReceiver in); diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocTransactionConvert.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocTransactionConvert.java deleted file mode 100644 index 098d4afd..00000000 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/convert/allocation/AllocTransactionConvert.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.dromara.daxpay.service.convert.allocation; - -import org.dromara.daxpay.core.result.allocation.transaction.AllocDetailResult; -import org.dromara.daxpay.core.result.allocation.transaction.AllocTransactionResult; -import org.dromara.daxpay.service.entity.allocation.transaction.AllocDetail; -import org.dromara.daxpay.service.entity.allocation.transaction.AllocTransaction; -import org.mapstruct.Mapper; -import org.mapstruct.factory.Mappers; - -/** - * - * @author xxm - * @since 2024/11/15 - */ -@Mapper -public interface AllocTransactionConvert { - AllocTransactionConvert CONVERT = Mappers.getMapper(AllocTransactionConvert.class); - - AllocTransactionResult toResult(AllocTransaction in); - - AllocDetailResult toResult(AllocDetail in); -} diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/allocation/transaction/AllocTransactionManager.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/allocation/transaction/AllocOrderManager.java similarity index 67% rename from daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/allocation/transaction/AllocTransactionManager.java rename to daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/allocation/transaction/AllocOrderManager.java index a8e47974..94e1a308 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/allocation/transaction/AllocTransactionManager.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/allocation/transaction/AllocOrderManager.java @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.daxpay.service.common.entity.MchAppBaseEntity; -import org.dromara.daxpay.service.entity.allocation.transaction.AllocTransaction; +import org.dromara.daxpay.service.entity.allocation.transaction.AllocOrder; import org.dromara.daxpay.service.param.order.allocation.AllocOrderQuery; import org.springframework.stereotype.Repository; @@ -23,23 +23,23 @@ import java.util.Optional; @Slf4j @Repository @RequiredArgsConstructor -public class AllocTransactionManager extends BaseManager { +public class AllocOrderManager extends BaseManager { /** * 分页 */ - public Page page(PageParam pageParam, AllocOrderQuery param){ - Page mpPage = MpUtil.getMpPage(pageParam, AllocTransaction.class); - QueryWrapper generator = QueryGenerator.generator(param); + public Page page(PageParam pageParam, AllocOrderQuery param){ + Page mpPage = MpUtil.getMpPage(pageParam, AllocOrder.class); + QueryWrapper generator = QueryGenerator.generator(param); return this.page(mpPage, generator); } /** * 根据商户分账单号查询数据 */ - public Optional findByBizAllocNo(String bizAllocNo, String appId) { + public Optional findByBizAllocNo(String bizAllocNo, String appId) { return lambdaQuery() - .eq(AllocTransaction::getBizAllocNo, bizAllocNo) + .eq(AllocOrder::getBizAllocNo, bizAllocNo) .eq(MchAppBaseEntity::getAppId, appId) .oneOpt(); } @@ -47,9 +47,9 @@ public class AllocTransactionManager extends BaseManager findByAllocNo(String allocNo, String appId) { + public Optional findByAllocNo(String allocNo, String appId) { return lambdaQuery() - .eq(AllocTransaction::getAllocNo, allocNo) + .eq(AllocOrder::getAllocNo, allocNo) .eq(MchAppBaseEntity::getAppId, appId) .oneOpt(); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/allocation/transaction/AllocTransactionMapper.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/allocation/transaction/AllocOrderMapper.java similarity index 73% rename from daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/allocation/transaction/AllocTransactionMapper.java rename to daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/allocation/transaction/AllocOrderMapper.java index 0f393414..714b5a54 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/allocation/transaction/AllocTransactionMapper.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/allocation/transaction/AllocOrderMapper.java @@ -2,7 +2,7 @@ package org.dromara.daxpay.service.dao.allocation.transaction; import com.github.yulichang.base.MPJBaseMapper; import org.apache.ibatis.annotations.Mapper; -import org.dromara.daxpay.service.entity.allocation.transaction.AllocTransaction; +import org.dromara.daxpay.service.entity.allocation.transaction.AllocOrder; /** * @@ -10,5 +10,5 @@ import org.dromara.daxpay.service.entity.allocation.transaction.AllocTransaction * @since 2024/11/14 */ @Mapper -public interface AllocTransactionMapper extends MPJBaseMapper { +public interface AllocOrderMapper extends MPJBaseMapper { } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/config/AllocConfigManger.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/config/AllocConfigManger.java index bbd9eab5..8eff1c12 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/config/AllocConfigManger.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/config/AllocConfigManger.java @@ -3,11 +3,14 @@ package org.dromara.daxpay.service.dao.config; import cn.bootx.platform.common.mybatisplus.impl.BaseManager; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.dromara.daxpay.service.entity.config.AllocConfig; +import org.dromara.daxpay.service.common.entity.MchAppBaseEntity; +import org.dromara.daxpay.service.entity.allocation.AllocConfig; import org.springframework.stereotype.Repository; +import java.util.Optional; + /** - * + * 分账配置 * @author xxm * @since 2024/10/6 */ @@ -15,4 +18,18 @@ import org.springframework.stereotype.Repository; @Repository @RequiredArgsConstructor public class AllocConfigManger extends BaseManager { + + /** + * 判断是都已经存在数据 + */ + public boolean existsByAppId(String appId) { + return existedByField(MchAppBaseEntity::getAppId, appId); + } + + /** + * 根据应用ID进行查询 + */ + public Optional findByAppId(String appId) { + return findByField(MchAppBaseEntity::getAppId, appId); + } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/config/AllocConfigMapper.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/config/AllocConfigMapper.java index 743640e8..fb60cdf3 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/config/AllocConfigMapper.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/config/AllocConfigMapper.java @@ -2,7 +2,7 @@ package org.dromara.daxpay.service.dao.config; import com.github.yulichang.base.MPJBaseMapper; import org.apache.ibatis.annotations.Mapper; -import org.dromara.daxpay.service.entity.config.AllocConfig; +import org.dromara.daxpay.service.entity.allocation.AllocConfig; /** * diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/entity/allocation/AllocConfig.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/entity/allocation/AllocConfig.java new file mode 100644 index 00000000..6ed19b71 --- /dev/null +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/entity/allocation/AllocConfig.java @@ -0,0 +1,46 @@ +package org.dromara.daxpay.service.entity.allocation; + +import cn.bootx.platform.common.mybatisplus.function.ToResult; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.dromara.daxpay.service.common.entity.MchAppBaseEntity; +import org.dromara.daxpay.service.convert.allocation.AllocConfigConvert; +import org.dromara.daxpay.service.param.allocation.AllocConfigParam; +import org.dromara.daxpay.service.result.allocation.AllocConfigResult; + +import java.math.BigDecimal; + +/** + * 分账配置 + * @author xxm + * @since 2024/10/6 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@Accessors(chain = true) +@TableName("pay_alloc_config") +public class AllocConfig extends MchAppBaseEntity implements ToResult { + + /** 是否自动分账 */ + private Boolean autoAlloc; + + /** 分账起始额 */ + private BigDecimal minAmount; + + + /** + * 创建对象 + */ + public static AllocConfig init(AllocConfigParam param) { + return AllocConfigConvert.CONVERT.toEntity(param); + } + /** + * 转换 + */ + @Override + public AllocConfigResult toResult() { + return AllocConfigConvert.CONVERT.toResult(this); + } +} diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/entity/allocation/receiver/AllocGroup.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/entity/allocation/receiver/AllocGroup.java index ac1ef380..d77c7863 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/entity/allocation/receiver/AllocGroup.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/entity/allocation/receiver/AllocGroup.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; -import org.dromara.daxpay.service.bo.allocation.receiver.AllocGroupResultBo; +import org.dromara.daxpay.service.result.allocation.receiver.AllocGroupVo; import org.dromara.daxpay.service.common.entity.MchAppBaseEntity; import org.dromara.daxpay.service.convert.allocation.AllocGroupConvert; @@ -22,7 +22,7 @@ import java.math.BigDecimal; @Data @Accessors(chain = true) @TableName("pay_alloc_group") -public class AllocGroup extends MchAppBaseEntity implements ToResult { +public class AllocGroup extends MchAppBaseEntity implements ToResult { /** 分账组编码 */ private String groupNo; @@ -44,7 +44,7 @@ public class AllocGroup extends MchAppBaseEntity implements ToResult { +public class AllocGroupReceiver extends MchAppBaseEntity implements ToResult { /** 分账组ID */ private Long groupId; @@ -32,7 +32,7 @@ public class AllocGroupReceiver extends MchAppBaseEntity implements ToResult { +public class AllocReceiver extends MchAppBaseEntity implements ToResult { /** 分账接收方编号, 需要保证唯一 */ private String receiverNo; @@ -58,7 +58,7 @@ public class AllocReceiver extends MchAppBaseEntity implements ToResult details) {} +public record AllocAndDetail(AllocOrder transaction, List details) {} diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/entity/allocation/transaction/AllocDetail.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/entity/allocation/transaction/AllocDetail.java index 90fa9ebf..e8b766aa 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/entity/allocation/transaction/AllocDetail.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/entity/allocation/transaction/AllocDetail.java @@ -7,9 +7,9 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.dromara.daxpay.core.enums.AllocDetailResultEnum; import org.dromara.daxpay.core.enums.AllocReceiverTypeEnum; -import org.dromara.daxpay.core.result.allocation.transaction.AllocDetailResult; +import org.dromara.daxpay.core.result.allocation.order.AllocDetailResult; import org.dromara.daxpay.service.common.entity.MchAppBaseEntity; -import org.dromara.daxpay.service.convert.allocation.AllocTransactionConvert; +import org.dromara.daxpay.service.convert.allocation.AllocOrderConvert; import java.math.BigDecimal; import java.time.LocalDateTime; @@ -72,6 +72,6 @@ public class AllocDetail extends MchAppBaseEntity implements ToResult { +public class AllocOrder extends MchAppBaseEntity implements ToResult { /** 分账单号 */ private String allocNo; @@ -70,13 +70,13 @@ public class AllocTransaction extends MchAppBaseEntity implements ToResult details; + +} diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/bo/allocation/receiver/AllocGroupReceiverResultBo.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/result/allocation/receiver/AllocGroupReceiverVo.java similarity index 92% rename from daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/bo/allocation/receiver/AllocGroupReceiverResultBo.java rename to daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/result/allocation/receiver/AllocGroupReceiverVo.java index a4b7414c..4a3918f7 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/bo/allocation/receiver/AllocGroupReceiverResultBo.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/result/allocation/receiver/AllocGroupReceiverVo.java @@ -1,4 +1,4 @@ -package org.dromara.daxpay.service.bo.allocation.receiver; +package org.dromara.daxpay.service.result.allocation.receiver; import cn.bootx.platform.common.jackson.sensitive.SensitiveInfo; import io.swagger.v3.oas.annotations.media.Schema; @@ -19,7 +19,7 @@ import java.math.BigDecimal; @Data @Accessors(chain = true) @Schema(title = "分账组接收方信息") -public class AllocGroupReceiverResultBo extends MchAppResult { +public class AllocGroupReceiverVo extends MchAppResult { @Schema(description = "接收方ID") private Long receiverId; diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/bo/allocation/receiver/AllocGroupResultBo.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/result/allocation/receiver/AllocGroupVo.java similarity index 87% rename from daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/bo/allocation/receiver/AllocGroupResultBo.java rename to daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/result/allocation/receiver/AllocGroupVo.java index e9dff491..3d3eec50 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/bo/allocation/receiver/AllocGroupResultBo.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/result/allocation/receiver/AllocGroupVo.java @@ -1,4 +1,4 @@ -package org.dromara.daxpay.service.bo.allocation.receiver; +package org.dromara.daxpay.service.result.allocation.receiver; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -17,7 +17,7 @@ import java.math.BigDecimal; @Data @Accessors(chain = true) @Schema(title = "分账组") -public class AllocGroupResultBo extends MchAppResult { +public class AllocGroupVo extends MchAppResult { @Schema(description = "分账组编号") private String groupNo; diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/bo/allocation/receiver/AllocReceiverResultBo.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/result/allocation/receiver/AllocReceiverVo.java similarity index 92% rename from daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/bo/allocation/receiver/AllocReceiverResultBo.java rename to daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/result/allocation/receiver/AllocReceiverVo.java index 679a4d05..7774b416 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/bo/allocation/receiver/AllocReceiverResultBo.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/result/allocation/receiver/AllocReceiverVo.java @@ -1,4 +1,4 @@ -package org.dromara.daxpay.service.bo.allocation.receiver; +package org.dromara.daxpay.service.result.allocation.receiver; import cn.bootx.platform.common.jackson.sensitive.SensitiveInfo; import io.swagger.v3.oas.annotations.media.Schema; @@ -17,7 +17,7 @@ import org.dromara.daxpay.core.result.MchAppResult; @Data @Accessors(chain = true) @Schema(title = "分账接收方") -public class AllocReceiverResultBo extends MchAppResult { +public class AllocReceiverVo extends MchAppResult { @Schema(description = "接收方编号") private String receiverNo; diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/AllocConfigService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/AllocConfigService.java new file mode 100644 index 00000000..bc1bf750 --- /dev/null +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/AllocConfigService.java @@ -0,0 +1,59 @@ +package org.dromara.daxpay.service.service.allocation; + +import cn.bootx.platform.core.exception.DataNotExistException; +import cn.bootx.platform.core.exception.RepetitiveOperationException; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.daxpay.service.convert.allocation.AllocConfigConvert; +import org.dromara.daxpay.service.dao.config.AllocConfigManger; +import org.dromara.daxpay.service.entity.allocation.AllocConfig; +import org.dromara.daxpay.service.param.allocation.AllocConfigParam; +import org.dromara.daxpay.service.result.allocation.AllocConfigResult; +import org.springframework.stereotype.Service; + +/** + * 分账配置 + * @author xxm + * @since 2024/12/9 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class AllocConfigService { + private final AllocConfigManger allocConfigManger; + + /** + * 新增 + */ + public void save(AllocConfigParam param) { + // 判断是否已经存在 + if (allocConfigManger.existsByAppId(param.getAppId())){ + throw new RepetitiveOperationException("该应用已存在收银台配置"); + } + + AllocConfig entity = AllocConfigConvert.CONVERT.toEntity(param); + allocConfigManger.save(entity); + } + + /** + * 修改 + */ + public void update(AllocConfigParam param) { + AllocConfig config = allocConfigManger.findById(param.getId()) + .orElseThrow(() -> new DataNotExistException("分账配置不存在")); + BeanUtil.copyProperties(config, param, CopyOptions.create().ignoreNullValue()); + allocConfigManger.updateById(config); + } + + /** + * 根据AppId查询 + */ + public AllocConfigResult findByAppId(String appId) { + return allocConfigManger.findByAppId(appId).map(AllocConfig::toResult) + .orElse(new AllocConfigResult().setAutoAlloc(false)); + } + + +} diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/AllocationService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/AllocationService.java index baf14f91..2e2db826 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/AllocationService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/AllocationService.java @@ -6,24 +6,24 @@ import com.baomidou.lock.LockInfo; import com.baomidou.lock.LockTemplate; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.dromara.daxpay.core.enums.AllocTransactionResultEnum; -import org.dromara.daxpay.core.enums.AllocTransactionStatusEnum; +import org.dromara.daxpay.core.enums.AllocationResultEnum; +import org.dromara.daxpay.core.enums.AllocationStatusEnum; import org.dromara.daxpay.core.exception.DataErrorException; import org.dromara.daxpay.core.exception.TradeStatusErrorException; import org.dromara.daxpay.core.param.allocation.transaction.AllocFinishParam; import org.dromara.daxpay.core.param.allocation.transaction.AllocationParam; -import org.dromara.daxpay.core.param.allocation.transaction.QueryAllocTransactionParam; -import org.dromara.daxpay.core.result.allocation.transaction.AllocResult; -import org.dromara.daxpay.core.result.allocation.transaction.AllocTransactionResult; -import org.dromara.daxpay.service.bo.allocation.receiver.AllocStartResultBo; -import org.dromara.daxpay.service.convert.allocation.AllocTransactionConvert; +import org.dromara.daxpay.core.param.allocation.transaction.QueryAllocOrderParam; +import org.dromara.daxpay.core.result.allocation.order.AllocOrderResult; +import org.dromara.daxpay.core.result.allocation.order.AllocationResult; +import org.dromara.daxpay.service.bo.allocation.AllocStartResultBo; +import org.dromara.daxpay.service.convert.allocation.AllocOrderConvert; import org.dromara.daxpay.service.dao.allocation.transaction.AllocDetailManager; -import org.dromara.daxpay.service.dao.allocation.transaction.AllocTransactionManager; +import org.dromara.daxpay.service.dao.allocation.transaction.AllocOrderManager; import org.dromara.daxpay.service.entity.allocation.transaction.AllocDetail; -import org.dromara.daxpay.service.entity.allocation.transaction.AllocTransaction; -import org.dromara.daxpay.service.entity.allocation.transaction.TransactionAndDetail; +import org.dromara.daxpay.service.entity.allocation.transaction.AllocOrder; +import org.dromara.daxpay.service.entity.allocation.transaction.AllocAndDetail; import org.dromara.daxpay.service.entity.order.pay.PayOrder; -import org.dromara.daxpay.service.service.allocation.transaction.AllocAssistService; +import org.dromara.daxpay.service.service.allocation.order.AllocationAssistService; import org.dromara.daxpay.service.strategy.AbsAllocationStrategy; import org.dromara.daxpay.service.util.PaymentStrategyFactory; import org.springframework.stereotype.Service; @@ -34,8 +34,8 @@ import java.util.List; import java.util.Objects; import java.util.stream.Collectors; -import static org.dromara.daxpay.core.enums.AllocTransactionStatusEnum.ALLOC_END; -import static org.dromara.daxpay.core.enums.AllocTransactionStatusEnum.FINISH_FAILED; +import static org.dromara.daxpay.core.enums.AllocationStatusEnum.ALLOC_END; +import static org.dromara.daxpay.core.enums.AllocationStatusEnum.FINISH_FAILED; /** * 分账处理 @@ -47,11 +47,11 @@ import static org.dromara.daxpay.core.enums.AllocTransactionStatusEnum.FINISH_FA @RequiredArgsConstructor public class AllocationService { - private final AllocTransactionManager allocationOrderManager; + private final AllocOrderManager allocationOrderManager; private final AllocDetailManager allocOrderDetailManager; - private final AllocAssistService allocationAssistService; + private final AllocationAssistService allocationAssistService; private final LockTemplate lockTemplate; @@ -59,7 +59,7 @@ public class AllocationService { * 开启分账 多次请求只会分账一次 * 优先级 分账接收方列表 > 分账组编号 > 默认分账组 */ - public AllocResult allocation(AllocationParam param) { + public AllocationResult allocation(AllocationParam param) { // 判断是否已经有分账订单 var allocOrder = allocationOrderManager.findByBizAllocNo(param.getBizAllocNo(), param.getAppId()).orElse(null); if (Objects.nonNull(allocOrder)){ @@ -75,20 +75,20 @@ public class AllocationService { /** * 开启分账 优先级 分账接收方列表 > 分账组编号 > 默认分账组 */ - public AllocResult allocation(AllocationParam param, PayOrder payOrder) { + public AllocationResult allocation(AllocationParam param, PayOrder payOrder) { LockInfo lock = lockTemplate.lock("payment:allocation:" + payOrder.getId(),10000,200); if (Objects.isNull(lock)){ throw new RepetitiveOperationException("分账发起处理中,请勿重复操作"); } try { // 构建分账订单相关信息 - TransactionAndDetail orderAndDetail = allocationAssistService.checkAndCreateAlloc(param, payOrder); + AllocAndDetail orderAndDetail = allocationAssistService.checkAndCreateAlloc(param, payOrder); // 检查是否需要进行分账 var order = orderAndDetail.transaction(); List details = orderAndDetail.details(); // 无需进行分账, - if (Objects.equals(order.getStatus(), AllocTransactionStatusEnum.IGNORE.getCode())){ - return new AllocResult() + if (Objects.equals(order.getStatus(), AllocationStatusEnum.IGNORE.getCode())){ + return new AllocationResult() .setAllocNo(order.getAllocNo()) .setBizAllocNo(order.getBizAllocNo()) .setStatus(order.getStatus()); @@ -102,19 +102,19 @@ public class AllocationService { // 分账处理 AllocStartResultBo result = allocationStrategy.start(); // 执行中 - order.setStatus(AllocTransactionStatusEnum.ALLOC_PROCESSING.getCode()) - .setResult(AllocTransactionResultEnum.ALL_PENDING.getCode()) + order.setStatus(AllocationStatusEnum.PROCESSING.getCode()) + .setResult(AllocationResultEnum.ALL_PENDING.getCode()) .setOutAllocNo(result.getOutAllocNo()) .setErrorMsg(null); } catch (Exception e) { log.error("分账出现错误:", e); // 失败 - order.setStatus(AllocTransactionStatusEnum.ALLOC_FAILED.getCode()) + order.setStatus(AllocationStatusEnum.ALLOC_FAILED.getCode()) .setErrorMsg(e.getMessage()); // TODO 返回异常处理 } allocationOrderManager.updateById(order); - return new AllocResult() + return new AllocationResult() .setAllocNo(order.getAllocNo()) .setBizAllocNo(order.getBizAllocNo()) .setStatus(order.getStatus()); @@ -126,7 +126,7 @@ public class AllocationService { /** * 重新分账 */ - private AllocResult retryAlloc(AllocationParam param, AllocTransaction order){ + private AllocationResult retryAlloc(AllocationParam param, AllocOrder order){ LockInfo lock = lockTemplate.lock("payment:allocation:" + order.getOrderId(),10000,200); if (Objects.isNull(lock)){ throw new RepetitiveOperationException("分账发起处理中,请勿重复操作"); @@ -134,8 +134,8 @@ public class AllocationService { try { // 需要是分账中分账中或者完成状态才能重新分账 List list = Arrays.asList(ALLOC_END.getCode(), - AllocTransactionStatusEnum.ALLOC_FAILED.getCode(), - AllocTransactionStatusEnum.ALLOC_PROCESSING.getCode()); + AllocationStatusEnum.ALLOC_FAILED.getCode(), + AllocationStatusEnum.PROCESSING.getCode()); if (!list.contains(order.getStatus())){ throw new TradeStatusErrorException("分账单状态错误,无法重试"); } @@ -150,16 +150,16 @@ public class AllocationService { try { // 重复分账处理 allocationStrategy.start(); - order.setStatus(AllocTransactionStatusEnum.ALLOC_PROCESSING.getCode()) + order.setStatus(AllocationStatusEnum.PROCESSING.getCode()) .setErrorMsg(null); } catch (Exception e) { log.error("重新分账出现错误:", e); - order.setStatus(AllocTransactionStatusEnum.ALLOC_FAILED.getCode()) + order.setStatus(AllocationStatusEnum.ALLOC_FAILED.getCode()) .setErrorMsg(e.getMessage()); } allocationOrderManager.updateById(order); - return new AllocResult() + return new AllocationResult() .setAllocNo(order.getAllocNo()) .setBizAllocNo(order.getBizAllocNo()) .setStatus(order.getStatus()); @@ -171,8 +171,8 @@ public class AllocationService { /** * 分账完结 */ - public AllocResult finish(AllocFinishParam param) { - AllocTransaction allocOrder; + public AllocationResult finish(AllocFinishParam param) { + AllocOrder allocOrder; if (Objects.nonNull(param.getAllocNo())){ allocOrder = allocationOrderManager.findByAllocNo(param.getAllocNo(), param.getAppId()) .orElseThrow(() -> new DataNotExistException("未查询到分账单信息")); @@ -186,7 +186,7 @@ public class AllocationService { /** * 分账完结 */ - public AllocResult finish(AllocTransaction allocOrder) { + public AllocationResult finish(AllocOrder allocOrder) { // 只有分账结束后才可以完结 if (!Arrays.asList(ALLOC_END.getCode(),FINISH_FAILED.getCode()).contains(allocOrder.getStatus())) { throw new TradeStatusErrorException("分账单状态错误"); @@ -203,7 +203,7 @@ public class AllocationService { // 完结处理 allocationStrategy.finish(); // 完结状态 - allocOrder.setStatus(AllocTransactionStatusEnum.FINISH.getCode()) + allocOrder.setStatus(AllocationStatusEnum.FINISH.getCode()) .setFinishTime(LocalDateTime.now()) .setErrorMsg(null); } catch (Exception e) { @@ -213,7 +213,7 @@ public class AllocationService { .setErrorMsg(e.getMessage()); } allocationOrderManager.updateById(allocOrder); - return new AllocResult() + return new AllocationResult() .setAllocNo(allocOrder.getAllocNo()) .setBizAllocNo(allocOrder.getBizAllocNo()) .setStatus(allocOrder.getStatus()); @@ -223,14 +223,14 @@ public class AllocationService { /** * 查询分账结果 */ - public AllocTransactionResult queryAllocTransaction(QueryAllocTransactionParam param) { + public AllocOrderResult queryAllocOrder(QueryAllocOrderParam param) { // 查询分账单 var allocOrder = allocationOrderManager.findByAllocNo(param.getAllocNo(), param.getAppId()) .orElseThrow(() -> new DataErrorException("分账单不存在")); - var result = AllocTransactionConvert.CONVERT.toResult(allocOrder); + var result = AllocOrderConvert.CONVERT.toResult(allocOrder); // 查询分账单明细 var details = allocOrderDetailManager.findAllByOrderId(allocOrder.getId()).stream() - .map(AllocTransactionConvert.CONVERT::toResult) + .map(AllocOrderConvert.CONVERT::toResult) .collect(Collectors.toList()); result.setDetails(details); return result; diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/transaction/AllocQueryService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/order/AllocOrderQueryService.java similarity index 69% rename from daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/transaction/AllocQueryService.java rename to daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/order/AllocOrderQueryService.java index 26accb55..684eb239 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/transaction/AllocQueryService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/order/AllocOrderQueryService.java @@ -1,4 +1,4 @@ -package org.dromara.daxpay.service.service.allocation.transaction; +package org.dromara.daxpay.service.service.allocation.order; import cn.bootx.platform.common.mybatisplus.util.MpUtil; import cn.bootx.platform.core.exception.DataNotExistException; @@ -6,12 +6,12 @@ import cn.bootx.platform.core.rest.param.PageParam; import cn.bootx.platform.core.rest.result.PageResult; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.dromara.daxpay.core.result.allocation.transaction.AllocDetailResult; -import org.dromara.daxpay.core.result.allocation.transaction.AllocTransactionResult; +import org.dromara.daxpay.core.result.allocation.order.AllocDetailResult; +import org.dromara.daxpay.core.result.allocation.order.AllocOrderResult; import org.dromara.daxpay.service.dao.allocation.transaction.AllocDetailManager; -import org.dromara.daxpay.service.dao.allocation.transaction.AllocTransactionManager; +import org.dromara.daxpay.service.dao.allocation.transaction.AllocOrderManager; import org.dromara.daxpay.service.entity.allocation.transaction.AllocDetail; -import org.dromara.daxpay.service.entity.allocation.transaction.AllocTransaction; +import org.dromara.daxpay.service.entity.allocation.transaction.AllocOrder; import org.dromara.daxpay.service.param.order.allocation.AllocOrderQuery; import org.springframework.stereotype.Service; @@ -25,24 +25,24 @@ import java.util.List; @Slf4j @Service @RequiredArgsConstructor -public class AllocQueryService { +public class AllocOrderQueryService { private final AllocDetailManager allocOrderDetailManager; - private final AllocTransactionManager allocationOrderManager; + private final AllocOrderManager allocationOrderManager; /** * 分页查询 */ - public PageResult page(PageParam pageParam, AllocOrderQuery param){ + public PageResult page(PageParam pageParam, AllocOrderQuery param){ return MpUtil.toPageResult(allocationOrderManager.page(pageParam, param)); } /** * 查询详情 */ - public AllocTransactionResult findById(Long id) { - return allocationOrderManager.findById(id).map(AllocTransaction::toResult).orElseThrow(() -> new DataNotExistException("分账订单不存在")); + public AllocOrderResult findById(Long id) { + return allocationOrderManager.findById(id).map(AllocOrder::toResult).orElseThrow(() -> new DataNotExistException("分账订单不存在")); } /** diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/transaction/AllocTransactionService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/order/AllocOrderService.java similarity index 86% rename from daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/transaction/AllocTransactionService.java rename to daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/order/AllocOrderService.java index ad5cce38..c0ecfcf5 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/transaction/AllocTransactionService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/order/AllocOrderService.java @@ -1,4 +1,4 @@ -package org.dromara.daxpay.service.service.allocation.transaction; +package org.dromara.daxpay.service.service.allocation.order; import cn.bootx.platform.core.exception.ValidationFailedException; import cn.bootx.platform.core.util.BigDecimalUtil; @@ -6,20 +6,20 @@ import cn.hutool.core.util.IdUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.daxpay.core.enums.AllocDetailResultEnum; -import org.dromara.daxpay.core.enums.AllocTransactionResultEnum; -import org.dromara.daxpay.core.enums.AllocTransactionStatusEnum; +import org.dromara.daxpay.core.enums.AllocationResultEnum; +import org.dromara.daxpay.core.enums.AllocationStatusEnum; import org.dromara.daxpay.core.enums.PayAllocStatusEnum; import org.dromara.daxpay.core.param.allocation.transaction.ReceiverParam; import org.dromara.daxpay.core.param.allocation.transaction.AllocationParam; import org.dromara.daxpay.core.util.TradeNoGenerateUtil; -import org.dromara.daxpay.service.bo.allocation.receiver.AllocGroupReceiverResultBo; +import org.dromara.daxpay.service.entity.allocation.transaction.AllocDetail; +import org.dromara.daxpay.service.entity.allocation.transaction.AllocOrder; +import org.dromara.daxpay.service.result.allocation.receiver.AllocGroupReceiverVo; import org.dromara.daxpay.service.dao.allocation.receiver.AllocReceiverManager; import org.dromara.daxpay.service.dao.allocation.transaction.AllocDetailManager; -import org.dromara.daxpay.service.dao.allocation.transaction.AllocTransactionManager; +import org.dromara.daxpay.service.dao.allocation.transaction.AllocOrderManager; import org.dromara.daxpay.service.dao.order.pay.PayOrderManager; -import org.dromara.daxpay.service.entity.allocation.transaction.AllocTransaction; -import org.dromara.daxpay.service.entity.allocation.transaction.AllocDetail; -import org.dromara.daxpay.service.entity.allocation.transaction.TransactionAndDetail; +import org.dromara.daxpay.service.entity.allocation.transaction.AllocAndDetail; import org.dromara.daxpay.service.entity.order.pay.PayOrder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -39,11 +39,11 @@ import java.util.stream.Collectors; @Slf4j @Service @RequiredArgsConstructor -public class AllocTransactionService { +public class AllocOrderService { private final AllocReceiverManager receiverManager; - private final AllocTransactionManager transactionManager; + private final AllocOrderManager transactionManager; private final AllocDetailManager transactionDetailManager; @@ -53,7 +53,7 @@ public class AllocTransactionService { * 生成分账订单, 根据分账组创建 */ @Transactional(rollbackFor = Exception.class) - public TransactionAndDetail createAndUpdate(AllocationParam param, PayOrder payOrder, List receiversByGroups) { + public AllocAndDetail createAndUpdate(AllocationParam param, PayOrder payOrder, List receiversByGroups) { // 订单明细 List details = receiversByGroups.stream() .map(o -> { @@ -88,7 +88,7 @@ public class AllocTransactionService { * 生成分账订单, 通过传入的分账方创建 */ @Transactional(rollbackFor = Exception.class) - public TransactionAndDetail createAndUpdate(AllocationParam param, PayOrder payOrder) { + public AllocAndDetail createAndUpdate(AllocationParam param, PayOrder payOrder) { List receiverNos = param.getReceivers() .stream() .map(ReceiverParam::getReceiverNo) @@ -140,7 +140,7 @@ public class AllocTransactionService { /** * 保存分账相关订单信息 */ - private TransactionAndDetail saveAllocOrder(AllocationParam param, PayOrder payOrder, List details) { + private AllocAndDetail saveAllocOrder(AllocationParam param, PayOrder payOrder, List details) { long allocId = IdUtil.getSnowflakeNextId(); // 分账明细设置ID details.forEach(o -> o.setAllocationId(allocId)); @@ -149,7 +149,7 @@ public class AllocTransactionService { .map(AllocDetail::getAmount) .reduce(BigDecimal.ZERO, BigDecimal::add); // 分账订单 - var allocOrder = new AllocTransaction() + var allocOrder = new AllocOrder() .setOrderId(payOrder.getId()) .setOrderNo(payOrder.getOrderNo()) .setBizOrderNo(payOrder.getBizOrderNo()) @@ -159,17 +159,17 @@ public class AllocTransactionService { .setBizAllocNo(param.getBizAllocNo()) .setChannel(payOrder.getChannel()) .setDescription(param.getDescription()) - .setStatus(AllocTransactionStatusEnum.ALLOC_PROCESSING.getCode()) - .setResult(AllocTransactionResultEnum.ALL_PENDING.getCode()) + .setStatus(AllocationStatusEnum.PROCESSING.getCode()) + .setResult(AllocationResultEnum.ALL_PENDING.getCode()) .setAmount(sumAmount) .setNotifyUrl(param.getNotifyUrl()) .setAttach(param.getAttach()) .setClientIp(param.getClientIp()); // 如果分账订单金额为0, 设置为忽略状态 if (BigDecimalUtil.isEqual(sumAmount, BigDecimal.ZERO)) { - allocOrder.setStatus(AllocTransactionStatusEnum.IGNORE.getCode()) + allocOrder.setStatus(AllocationStatusEnum.IGNORE.getCode()) .setFinishTime(LocalDateTime.now()) - .setResult(AllocTransactionStatusEnum.ALLOC_FAILED.getCode()) + .setResult(AllocationStatusEnum.ALLOC_FAILED.getCode()) .setErrorMsg("分账比例有误或金额太小, 无法进行分账"); } @@ -179,7 +179,7 @@ public class AllocTransactionService { payOrderManager.updateById(payOrder); transactionDetailManager.saveAll(details); transactionManager.save(allocOrder); - return new TransactionAndDetail(allocOrder,details); + return new AllocAndDetail(allocOrder,details); } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/transaction/AllocAssistService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/order/AllocationAssistService.java similarity index 91% rename from daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/transaction/AllocAssistService.java rename to daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/order/AllocationAssistService.java index da8a1f73..98273dde 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/transaction/AllocAssistService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/order/AllocationAssistService.java @@ -1,4 +1,4 @@ -package org.dromara.daxpay.service.service.allocation.transaction; +package org.dromara.daxpay.service.service.allocation.order; import cn.bootx.platform.core.exception.ValidationFailedException; import cn.hutool.core.collection.CollUtil; @@ -13,11 +13,11 @@ import org.dromara.daxpay.core.exception.TradeStatusErrorException; import org.dromara.daxpay.core.param.allocation.transaction.AllocationParam; import org.dromara.daxpay.service.dao.allocation.receiver.AllocGroupManager; import org.dromara.daxpay.service.dao.allocation.transaction.AllocDetailManager; -import org.dromara.daxpay.service.dao.allocation.transaction.AllocTransactionManager; +import org.dromara.daxpay.service.dao.allocation.transaction.AllocOrderManager; import org.dromara.daxpay.service.entity.allocation.receiver.AllocGroup; +import org.dromara.daxpay.service.entity.allocation.transaction.AllocOrder; import org.dromara.daxpay.service.entity.allocation.transaction.AllocDetail; -import org.dromara.daxpay.service.entity.allocation.transaction.AllocTransaction; -import org.dromara.daxpay.service.entity.allocation.transaction.TransactionAndDetail; +import org.dromara.daxpay.service.entity.allocation.transaction.AllocAndDetail; import org.dromara.daxpay.service.entity.order.pay.PayOrder; import org.dromara.daxpay.service.service.allocation.receiver.AllocGroupService; import org.dromara.daxpay.service.service.order.pay.PayOrderQueryService; @@ -36,9 +36,9 @@ import java.util.stream.Collectors; @Slf4j @Service @RequiredArgsConstructor -public class AllocAssistService { +public class AllocationAssistService { - private final AllocTransactionManager transactionManager; + private final AllocOrderManager transactionManager; private final PayOrderQueryService payOrderQueryService; @@ -46,7 +46,7 @@ public class AllocAssistService { private final AllocGroupService allocationGroupService; - private final AllocTransactionService allocOrderService; + private final AllocOrderService allocOrderService; private final AllocDetailManager allocOrderDetailManager; @@ -55,7 +55,7 @@ public class AllocAssistService { * 根据新传入的分账订单更新订单信息 */ @Transactional(rollbackFor = Exception.class) - public void updateOrder(AllocationParam allocationParam, AllocTransaction orderExtra) { + public void updateOrder(AllocationParam allocationParam, AllocOrder orderExtra) { // 扩展信息 orderExtra.setClientIp(allocationParam.getClientIp()) .setNotifyUrl(allocationParam.getNotifyUrl()) @@ -85,9 +85,9 @@ public class AllocAssistService { /** * 构建分账订单相关信息 */ - public TransactionAndDetail checkAndCreateAlloc(AllocationParam param, PayOrder payOrder){ + public AllocAndDetail checkAndCreateAlloc(AllocationParam param, PayOrder payOrder){ // 创建分账单和明细并保存, 同时更新支付订单状态 使用事务 - TransactionAndDetail orderAndDetail; + AllocAndDetail orderAndDetail; // 判断是否传输了分账接收方列表 if (CollUtil.isNotEmpty(param.getReceivers())) { orderAndDetail = allocOrderService.createAndUpdate(param, payOrder); diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/receiver/AllocGroupService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/receiver/AllocGroupService.java index 6575d671..40e3a974 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/receiver/AllocGroupService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/receiver/AllocGroupService.java @@ -10,7 +10,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.dromara.daxpay.service.bo.allocation.receiver.AllocGroupReceiverResultBo; +import org.dromara.daxpay.service.result.allocation.receiver.AllocGroupReceiverVo; import org.dromara.daxpay.service.convert.allocation.AllocGroupConvert; import org.dromara.daxpay.service.dao.allocation.receiver.AllocGroupManager; import org.dromara.daxpay.service.dao.allocation.receiver.AllocGroupReceiverManager; @@ -19,7 +19,7 @@ import org.dromara.daxpay.service.entity.allocation.receiver.AllocGroup; import org.dromara.daxpay.service.entity.allocation.receiver.AllocGroupReceiver; import org.dromara.daxpay.service.entity.allocation.receiver.AllocReceiver; import org.dromara.daxpay.service.param.allocation.group.*; -import org.dromara.daxpay.service.bo.allocation.receiver.AllocGroupResultBo; +import org.dromara.daxpay.service.result.allocation.receiver.AllocGroupVo; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -46,21 +46,21 @@ public class AllocGroupService { /** * 分页 */ - public PageResult page(PageParam pageParam, AllocGroupQuery query){ + public PageResult page(PageParam pageParam, AllocGroupQuery query){ return MpUtil.toPageResult(groupManager.page(pageParam, query)); } /** * 查询详情 */ - public AllocGroupResultBo findById(Long id){ + public AllocGroupVo findById(Long id){ return groupManager.findById(id).map(AllocGroup::toResult).orElseThrow(()->new DataNotExistException("分账组不存在")); } /** * 查询分账接收方 */ - public List findReceiversByGroups(Long groupId){ + public List findReceiversByGroups(Long groupId){ List groupReceivers = groupReceiverManager.findByGroupId(groupId); List receiverIds = groupReceivers.stream() .map(AllocGroupReceiver::getReceiverId) @@ -73,7 +73,7 @@ public class AllocGroupService { return groupReceivers.stream() .map(o -> { AllocReceiver receiver = receiverMap.get(o.getReceiverId()); - AllocGroupReceiverResultBo result = new AllocGroupReceiverResultBo() + AllocGroupReceiverVo result = new AllocGroupReceiverVo() .setReceiverId(receiver.getId()) .setReceiverNo(receiver.getReceiverNo()) .setReceiverAccount(receiver.getReceiverAccount()) @@ -92,7 +92,7 @@ public class AllocGroupService { * 创建分账组 */ public void create(AllocGroupParam param){ - AllocGroup group = AllocGroupConvert.CONVERT.convert(param); + AllocGroup group = AllocGroupConvert.CONVERT.toEntity(param); group.setTotalRate(BigDecimal.ZERO); groupManager.save(group); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/receiver/AllocReceiverService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/receiver/AllocReceiverService.java index aee595fd..009e4a65 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/receiver/AllocReceiverService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/allocation/receiver/AllocReceiverService.java @@ -1,6 +1,5 @@ package org.dromara.daxpay.service.service.allocation.receiver; -import cn.bootx.platform.baseapi.service.dict.DictionaryItemService; import cn.bootx.platform.common.mybatisplus.util.MpUtil; import cn.bootx.platform.core.exception.DataNotExistException; import cn.bootx.platform.core.exception.ValidationFailedException; @@ -8,7 +7,6 @@ import cn.bootx.platform.core.rest.dto.LabelValue; import cn.bootx.platform.core.rest.param.PageParam; import cn.bootx.platform.core.rest.result.PageResult; import cn.hutool.core.util.IdUtil; -import cn.hutool.extra.spring.SpringUtil; import com.baomidou.lock.LockInfo; import com.baomidou.lock.LockTemplate; import lombok.RequiredArgsConstructor; @@ -20,14 +18,15 @@ import org.dromara.daxpay.core.param.allocation.receiver.AllocReceiverAddParam; import org.dromara.daxpay.core.param.allocation.receiver.AllocReceiverQueryParam; import org.dromara.daxpay.core.param.allocation.receiver.AllocReceiverRemoveParam; import org.dromara.daxpay.core.result.allocation.receiver.AllocReceiverResult; -import org.dromara.daxpay.service.bo.allocation.receiver.AllocReceiverResultBo; import org.dromara.daxpay.service.convert.allocation.AllocReceiverConvert; import org.dromara.daxpay.service.dao.allocation.receiver.AllocGroupReceiverManager; import org.dromara.daxpay.service.dao.allocation.receiver.AllocReceiverManager; +import org.dromara.daxpay.service.dao.constant.ChannelConstManager; import org.dromara.daxpay.service.entity.allocation.receiver.AllocReceiver; +import org.dromara.daxpay.service.entity.constant.ChannelConst; import org.dromara.daxpay.service.param.allocation.receiver.AllocReceiverQuery; +import org.dromara.daxpay.service.result.allocation.receiver.AllocReceiverVo; import org.dromara.daxpay.service.strategy.AbsAllocReceiverStrategy; -import org.dromara.daxpay.service.strategy.PaymentStrategy; import org.dromara.daxpay.service.util.PaymentStrategyFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -50,20 +49,21 @@ public class AllocReceiverService { private final AllocReceiverManager allocReceiverManager; + private final ChannelConstManager channelConstManager; + private final LockTemplate lockTemplate; - private final DictionaryItemService dictionaryItemService; /** * 分页 */ - public PageResult page(PageParam pageParam, AllocReceiverQuery query) { + public PageResult page(PageParam pageParam, AllocReceiverQuery query) { return MpUtil.toPageResult(allocReceiverManager.page(pageParam, query)); } /** * 查询详情 */ - public AllocReceiverResultBo findById(Long id) { + public AllocReceiverVo findById(Long id) { return allocReceiverManager.findById(id) .map(AllocReceiver::toResult) .orElseThrow(() -> new DataNotExistException("分账接收方不存在")); @@ -156,15 +156,9 @@ public class AllocReceiverService { * 可分账的通道列表 */ public List findChannels() { - // 先查询策略, 然后查询通道并进行过滤 - List channelCodes = SpringUtil.getBeansOfType(AbsAllocReceiverStrategy.class) - .values() - .stream() - .map(PaymentStrategy::getChannel) - .toList(); - return dictionaryItemService.findEnableByDictCode("channel").stream() - .filter(item -> channelCodes.contains(item.getCode())) - .map(item -> new LabelValue(item.getName(), item.getCode())) + return channelConstManager.findAllByEnable().stream() + .filter(ChannelConst::isAllocatable) + .map(item->new LabelValue(item.getName(), item.getCode())) .toList(); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/develop/DevelopTradeService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/develop/DevelopTradeService.java index f35594cd..6608b32e 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/develop/DevelopTradeService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/develop/DevelopTradeService.java @@ -82,6 +82,6 @@ public class DevelopTradeService { paymentAssistService.initMchApp(param.getAppId()); // 签名校验 paymentAssistService.signVerify(param); - return checkoutService.creat(param); + return checkoutService.create(param); } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/strategy/AbsAllocationStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/strategy/AbsAllocationStrategy.java index 0f3d2ce1..cf88cbc6 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/strategy/AbsAllocationStrategy.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/strategy/AbsAllocationStrategy.java @@ -3,9 +3,9 @@ package org.dromara.daxpay.service.strategy; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.dromara.daxpay.service.bo.allocation.receiver.AllocStartResultBo; -import org.dromara.daxpay.service.entity.allocation.transaction.AllocTransaction; +import org.dromara.daxpay.service.bo.allocation.AllocStartResultBo; import org.dromara.daxpay.service.entity.allocation.transaction.AllocDetail; +import org.dromara.daxpay.service.entity.allocation.transaction.AllocOrder; import java.util.List; @@ -18,14 +18,14 @@ import java.util.List; @Getter @Setter public abstract class AbsAllocationStrategy implements PaymentStrategy{ - private AllocTransaction transaction; + private AllocOrder transaction; private List details; /** * 初始化参数 */ - public void initParam(AllocTransaction transaction, List details) { + public void initParam(AllocOrder transaction, List details) { this.transaction = transaction; this.details = details; }