From fbcabac2ac7cde561f9cefd2650b01d5a2203a3d Mon Sep 17 00:00:00 2001 From: bootx Date: Sun, 3 Mar 2024 23:20:24 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E5=AF=B9=E8=B4=A6=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../daxpay/demo/service/AggregateService.java | 1 - ...ler.java => ReconcileOrderController.java} | 42 ++-- .../common/context/ReconcileLocal.java | 4 +- .../service/AliPayReconcileService.java | 12 +- .../service/WechatPayReconcileService.java | 14 +- .../reconcile/conver/PayReconcileConvert.java | 22 --- .../reconcile/conver/ReconcileConvert.java | 26 +++ .../dao/PayReconcileDiffRecordManager.java | 18 -- ...nager.java => ReconcileDetailManager.java} | 14 +- ...Mapper.java => ReconcileDetailMapper.java} | 4 +- .../dao/ReconcileDiffRecordManager.java | 33 ++++ ...er.java => ReconcileDiffRecordMapper.java} | 4 +- ...anager.java => ReconcileOrderManager.java} | 10 +- ...rMapper.java => ReconcileOrderMapper.java} | 4 +- ...oncileDetail.java => ReconcileDetail.java} | 10 +- ...ffRecord.java => ReconcileDiffRecord.java} | 22 ++- ...econcileOrder.java => ReconcileOrder.java} | 10 +- .../PayReconcileDiffRecordService.java | 20 -- .../service/ReconcileDiffService.java | 49 +++++ ...ervice.java => ReconcileOrderService.java} | 12 +- ...ervice.java => ReconcileQueryService.java} | 30 +-- .../reconcile/domain/ReconcileDiff.java | 14 ++ ...ory.java => ReconcileStrategyFactory.java} | 2 +- ...cileService.java => ReconcileService.java} | 179 ++++++++++-------- .../strategy/AlipayReconcileStrategy.java | 1 - .../strategy/WechatPayReconcileStrategy.java | 1 - ...DetailDto.java => ReconcileDetailDto.java} | 2 +- .../reconcile/ReconcileDiffRecordDto.java | 19 ++ ...leOrderDto.java => ReconcileOrderDto.java} | 2 +- .../service/func/AbsReconcileStrategy.java | 8 +- .../param/reconcile/ReconcileDiffQuery.java | 19 ++ ...yReconcileTask.java => ReconcileTask.java} | 6 +- ...Service.java => ReconcileTaskService.java} | 10 +- 33 files changed, 388 insertions(+), 236 deletions(-) rename daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/{PayReconcileOrderController.java => ReconcileOrderController.java} (59%) delete mode 100644 daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/conver/PayReconcileConvert.java create mode 100644 daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/conver/ReconcileConvert.java delete mode 100644 daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileDiffRecordManager.java rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/{PayReconcileDetailManager.java => ReconcileDetailManager.java} (63%) rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/{PayReconcileDetailMapper.java => ReconcileDetailMapper.java} (73%) create mode 100644 daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileDiffRecordManager.java rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/{PayReconcileDiffRecordMapper.java => ReconcileDiffRecordMapper.java} (72%) rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/{PayReconcileOrderManager.java => ReconcileOrderManager.java} (69%) rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/{PayReconcileOrderMapper.java => ReconcileOrderMapper.java} (73%) rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/{PayReconcileDetail.java => ReconcileDetail.java} (84%) rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/{PayReconcileDiffRecord.java => ReconcileDiffRecord.java} (64%) rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/{PayReconcileOrder.java => ReconcileOrder.java} (83%) delete mode 100644 daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/PayReconcileDiffRecordService.java create mode 100644 daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/ReconcileDiffService.java rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/{PayReconcileOrderService.java => ReconcileOrderService.java} (79%) rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/{PayReconcileQueryService.java => ReconcileQueryService.java} (62%) rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/factory/{PayReconcileStrategyFactory.java => ReconcileStrategyFactory.java} (96%) rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/service/{PayReconcileService.java => ReconcileService.java} (50%) rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/{PayReconcileDetailDto.java => ReconcileDetailDto.java} (95%) create mode 100644 daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/ReconcileDiffRecordDto.java rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/{PayReconcileOrderDto.java => ReconcileOrderDto.java} (94%) create mode 100644 daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/reconcile/ReconcileDiffQuery.java rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/task/{PayReconcileTask.java => ReconcileTask.java} (85%) rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/task/service/{PayReconcileTaskService.java => ReconcileTaskService.java} (79%) diff --git a/daxpay-single-demo/src/main/java/cn/bootx/platform/daxpay/demo/service/AggregateService.java b/daxpay-single-demo/src/main/java/cn/bootx/platform/daxpay/demo/service/AggregateService.java index 18c96fb8..ed0c3c96 100644 --- a/daxpay-single-demo/src/main/java/cn/bootx/platform/daxpay/demo/service/AggregateService.java +++ b/daxpay-single-demo/src/main/java/cn/bootx/platform/daxpay/demo/service/AggregateService.java @@ -261,7 +261,6 @@ public class AggregateService { } } - /** * 获取微信OpenId */ diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/PayReconcileOrderController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/ReconcileOrderController.java similarity index 59% rename from daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/PayReconcileOrderController.java rename to daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/ReconcileOrderController.java index a581a859..dc1a04a7 100644 --- a/daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/PayReconcileOrderController.java +++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/ReconcileOrderController.java @@ -5,11 +5,14 @@ import cn.bootx.platform.common.core.rest.Res; import cn.bootx.platform.common.core.rest.ResResult; import cn.bootx.platform.common.core.rest.param.PageParam; import cn.bootx.platform.common.core.util.ValidationUtil; -import cn.bootx.platform.daxpay.service.core.order.reconcile.service.PayReconcileQueryService; -import cn.bootx.platform.daxpay.service.core.payment.reconcile.service.PayReconcileService; -import cn.bootx.platform.daxpay.service.dto.order.reconcile.PayReconcileDetailDto; -import cn.bootx.platform.daxpay.service.dto.order.reconcile.PayReconcileOrderDto; +import cn.bootx.platform.daxpay.service.core.order.reconcile.service.ReconcileDiffService; +import cn.bootx.platform.daxpay.service.core.order.reconcile.service.ReconcileQueryService; +import cn.bootx.platform.daxpay.service.core.payment.reconcile.service.ReconcileService; +import cn.bootx.platform.daxpay.service.dto.order.reconcile.ReconcileDetailDto; +import cn.bootx.platform.daxpay.service.dto.order.reconcile.ReconcileDiffRecordDto; +import cn.bootx.platform.daxpay.service.dto.order.reconcile.ReconcileOrderDto; import cn.bootx.platform.daxpay.service.param.reconcile.ReconcileDetailQuery; +import cn.bootx.platform.daxpay.service.param.reconcile.ReconcileDiffQuery; import cn.bootx.platform.daxpay.service.param.reconcile.ReconcileOrderCreate; import cn.bootx.platform.daxpay.service.param.reconcile.ReconcileOrderQuery; import io.swagger.v3.oas.annotations.Operation; @@ -26,9 +29,10 @@ import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/order/reconcile") @RequiredArgsConstructor -public class PayReconcileOrderController { - private final PayReconcileService reconcileService; - private final PayReconcileQueryService reconcileQueryService; +public class ReconcileOrderController { + private final ReconcileService reconcileService; + private final ReconcileQueryService reconcileQueryService; + private final ReconcileDiffService reconcileDiffService; @Operation(summary = "手动创建支付对账订单") @PostMapping("/create") @@ -54,25 +58,37 @@ public class PayReconcileOrderController { @Operation(summary = "订单分页") @GetMapping("/page") - public ResResult> page(PageParam pageParam, ReconcileOrderQuery query){ + public ResResult> page(PageParam pageParam, ReconcileOrderQuery query){ return Res.ok(reconcileQueryService.page(pageParam, query)); } @Operation(summary = "订单详情") @GetMapping("/findById") - public ResResult findById(Long id){ + public ResResult findById(Long id){ return Res.ok(reconcileQueryService.findById(id)); } @Operation(summary = "对账明细分页") - @GetMapping("/pageDetail") - public ResResult> pageDetail(PageParam pageParam, ReconcileDetailQuery query){ + @GetMapping("/detail/page") + public ResResult> pageDetail(PageParam pageParam, ReconcileDetailQuery query){ return Res.ok(reconcileQueryService.pageDetail(pageParam, query)); } @Operation(summary = "对账明细详情") - @GetMapping("/findDetailById") - public ResResult findDetailById(Long id){ + @GetMapping("/detail/findById") + public ResResult findDetailById(Long id){ return Res.ok(reconcileQueryService.findDetailById(id)); } + + @Operation(summary = "对账差异分页") + @GetMapping("/diff/page") + public ResResult> pageDiff(PageParam pageParam, ReconcileDiffQuery query){ + return Res.ok(reconcileDiffService.page(pageParam, query)); + } + + @Operation(summary = "对账差异详情") + @GetMapping("/diff/findById") + public ResResult findDiffById(Long id){ + return Res.ok(reconcileDiffService.findById(id)); + } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/common/context/ReconcileLocal.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/common/context/ReconcileLocal.java index f1d73d6d..31afc8a5 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/common/context/ReconcileLocal.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/common/context/ReconcileLocal.java @@ -1,6 +1,6 @@ package cn.bootx.platform.daxpay.service.common.context; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileDetail; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileDetail; import lombok.Data; import lombok.experimental.Accessors; @@ -16,6 +16,6 @@ import java.util.List; public class ReconcileLocal { /** 通用支付对账记录 */ - private List reconcileDetails; + private List reconcileDetails; } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/alipay/service/AliPayReconcileService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/alipay/service/AliPayReconcileService.java index 8b74a290..14cb144a 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/alipay/service/AliPayReconcileService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/alipay/service/AliPayReconcileService.java @@ -10,7 +10,7 @@ import cn.bootx.platform.daxpay.service.core.channel.alipay.dao.AliReconcileBill import cn.bootx.platform.daxpay.service.core.channel.alipay.entity.AliPayConfig; import cn.bootx.platform.daxpay.service.core.channel.alipay.entity.AliReconcileBillDetail; import cn.bootx.platform.daxpay.service.core.channel.alipay.entity.AliReconcileBillTotal; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileDetail; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileDetail; import cn.hutool.core.io.IoUtil; import cn.hutool.core.text.csv.CsvReader; import cn.hutool.core.text.csv.CsvUtil; @@ -122,7 +122,7 @@ public class AliPayReconcileService { * 转换为通用对账记录对象 */ private void convertAndSave(List billDetails){ - List collect = billDetails.stream() + List collect = billDetails.stream() .map(this::convert) .collect(Collectors.toList()); // 写入到上下文中 @@ -132,14 +132,14 @@ public class AliPayReconcileService { /** * 转换为通用对账记录对象 */ - private PayReconcileDetail convert(AliReconcileBillDetail billDetail){ + private ReconcileDetail convert(AliReconcileBillDetail billDetail){ // 金额 String orderAmount = billDetail.getOrderAmount(); double v = Double.parseDouble(orderAmount) * 100; int amount = Math.abs(((int) v)); // 默认为支付对账记录 - PayReconcileDetail payReconcileDetail = new PayReconcileDetail() + ReconcileDetail reconcileDetail = new ReconcileDetail() .setRecordOrderId(billDetail.getRecordOrderId()) .setOrderId(billDetail.getOutTradeNo()) .setType(ReconcileTradeEnum.PAY.getCode()) @@ -148,11 +148,11 @@ public class AliPayReconcileService { .setGatewayOrderNo(billDetail.getTradeNo()); // 退款覆盖更新对应的字段 if (Objects.equals(billDetail.getTradeType(), "退款")){ - payReconcileDetail.setOrderId(billDetail.getBatchNo()) + reconcileDetail.setOrderId(billDetail.getBatchNo()) .setType(ReconcileTradeEnum.REFUND.getCode()); } - return payReconcileDetail; + return reconcileDetail; } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/service/WechatPayReconcileService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/service/WechatPayReconcileService.java index 7aa36a27..2bf27592 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/service/WechatPayReconcileService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/service/WechatPayReconcileService.java @@ -11,7 +11,7 @@ import cn.bootx.platform.daxpay.service.core.channel.wechat.entity.WeChatPayConf import cn.bootx.platform.daxpay.service.core.channel.wechat.entity.WxReconcileBillDetail; import cn.bootx.platform.daxpay.service.core.channel.wechat.entity.WxReconcileBillTotal; import cn.bootx.platform.daxpay.service.core.channel.wechat.entity.WxReconcileFundFlowDetail; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileDetail; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileDetail; import cn.hutool.core.codec.Base64; import cn.hutool.core.text.csv.CsvReader; import cn.hutool.core.text.csv.CsvUtil; @@ -107,7 +107,7 @@ public class WechatPayReconcileService{ * 转换为通用对账记录对象 */ public void convertAndSave(List billDetails){ - List collect = billDetails.stream() + List collect = billDetails.stream() .map(this::convert) .collect(Collectors.toList()); // 写入到上下文中 @@ -117,9 +117,9 @@ public class WechatPayReconcileService{ /** * 转换为通用对账记录对象 */ - public PayReconcileDetail convert(WxReconcileBillDetail billDetail){ + public ReconcileDetail convert(WxReconcileBillDetail billDetail){ // 默认为支付对账记录 - PayReconcileDetail payReconcileDetail = new PayReconcileDetail() + ReconcileDetail reconcileDetail = new ReconcileDetail() .setRecordOrderId(billDetail.getRecordOrderId()) .setOrderId(billDetail.getMchOrderNo()) .setTitle(billDetail.getSubject()) @@ -130,7 +130,7 @@ public class WechatPayReconcileService{ String orderAmount = billDetail.getOrderAmount(); double v = Double.parseDouble(orderAmount) * 100; int amount = Math.abs(((int) v)); - payReconcileDetail.setType(ReconcileTradeEnum.PAY.getCode()) + reconcileDetail.setType(ReconcileTradeEnum.PAY.getCode()) .setAmount(amount); } // 退款 @@ -139,7 +139,7 @@ public class WechatPayReconcileService{ String refundAmount = billDetail.getApplyRefundAmount(); double v = Double.parseDouble(refundAmount) * 100; int amount = Math.abs(((int) v)); - payReconcileDetail.setType(ReconcileTradeEnum.REFUND.getCode()) + reconcileDetail.setType(ReconcileTradeEnum.REFUND.getCode()) .setAmount(amount) .setOrderId(billDetail.getMchRefundNo()); } @@ -147,7 +147,7 @@ public class WechatPayReconcileService{ if (Objects.equals(billDetail.getStatus(), "REVOKED")){ log.warn("对账出现已撤销记录, 后续进行处理"); } - return payReconcileDetail; + return reconcileDetail; } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/conver/PayReconcileConvert.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/conver/PayReconcileConvert.java deleted file mode 100644 index 2eee966e..00000000 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/conver/PayReconcileConvert.java +++ /dev/null @@ -1,22 +0,0 @@ -package cn.bootx.platform.daxpay.service.core.order.reconcile.conver; - -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileDetail; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileOrder; -import cn.bootx.platform.daxpay.service.dto.order.reconcile.PayReconcileDetailDto; -import cn.bootx.platform.daxpay.service.dto.order.reconcile.PayReconcileOrderDto; -import org.mapstruct.Mapper; -import org.mapstruct.factory.Mappers; - -/** - * - * @author xxm - * @since 2024/1/22 - */ -@Mapper -public interface PayReconcileConvert { - PayReconcileConvert CONVERT = Mappers.getMapper(PayReconcileConvert.class); - - PayReconcileDetailDto convert(PayReconcileDetail in); - - PayReconcileOrderDto convert(PayReconcileOrder in); -} diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/conver/ReconcileConvert.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/conver/ReconcileConvert.java new file mode 100644 index 00000000..bfe5a0ef --- /dev/null +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/conver/ReconcileConvert.java @@ -0,0 +1,26 @@ +package cn.bootx.platform.daxpay.service.core.order.reconcile.conver; + +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileDetail; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileDiffRecord; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileOrder; +import cn.bootx.platform.daxpay.service.dto.order.reconcile.ReconcileDetailDto; +import cn.bootx.platform.daxpay.service.dto.order.reconcile.ReconcileDiffRecordDto; +import cn.bootx.platform.daxpay.service.dto.order.reconcile.ReconcileOrderDto; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * + * @author xxm + * @since 2024/1/22 + */ +@Mapper +public interface ReconcileConvert { + ReconcileConvert CONVERT = Mappers.getMapper(ReconcileConvert.class); + + ReconcileDetailDto convert(ReconcileDetail in); + + ReconcileDiffRecordDto convert(ReconcileDiffRecord in); + + ReconcileOrderDto convert(ReconcileOrder in); +} diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileDiffRecordManager.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileDiffRecordManager.java deleted file mode 100644 index 4277e7c1..00000000 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileDiffRecordManager.java +++ /dev/null @@ -1,18 +0,0 @@ -package cn.bootx.platform.daxpay.service.core.order.reconcile.dao; - -import cn.bootx.platform.common.mybatisplus.impl.BaseManager; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileDiffRecord; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Repository; - -/** - * - * @author xxm - * @since 2024/2/28 - */ -@Slf4j -@Repository -@RequiredArgsConstructor -public class PayReconcileDiffRecordManager extends BaseManager { -} diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileDetailManager.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileDetailManager.java similarity index 63% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileDetailManager.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileDetailManager.java index 243bec26..d440c860 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileDetailManager.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileDetailManager.java @@ -4,7 +4,7 @@ import cn.bootx.platform.common.core.rest.param.PageParam; import cn.bootx.platform.common.mybatisplus.impl.BaseManager; import cn.bootx.platform.common.mybatisplus.util.MpUtil; import cn.bootx.platform.common.query.generator.QueryGenerator; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileDetail; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileDetail; import cn.bootx.platform.daxpay.service.param.reconcile.ReconcileDetailQuery; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -22,22 +22,22 @@ import java.util.List; @Slf4j @Repository @RequiredArgsConstructor -public class PayReconcileDetailManager extends BaseManager { +public class ReconcileDetailManager extends BaseManager { /** * 根据订单id查询 */ - public List findAllByOrderId(Long orderId){ - return this.findAllByField(PayReconcileDetail::getRecordOrderId, orderId); + public List findAllByOrderId(Long orderId){ + return this.findAllByField(ReconcileDetail::getRecordOrderId, orderId); } /** * 分页 */ - public Page page(PageParam pageParam, ReconcileDetailQuery query){ - Page mpPage = MpUtil.getMpPage(pageParam, PayReconcileDetail.class); - QueryWrapper generator = QueryGenerator.generator(query); + public Page page(PageParam pageParam, ReconcileDetailQuery query){ + Page mpPage = MpUtil.getMpPage(pageParam, ReconcileDetail.class); + QueryWrapper generator = QueryGenerator.generator(query); return this.page(mpPage,generator); } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileDetailMapper.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileDetailMapper.java similarity index 73% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileDetailMapper.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileDetailMapper.java index fa86df1d..5b4860ce 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileDetailMapper.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileDetailMapper.java @@ -1,6 +1,6 @@ package cn.bootx.platform.daxpay.service.core.order.reconcile.dao; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileDetail; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileDetail; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -10,5 +10,5 @@ import org.apache.ibatis.annotations.Mapper; * @since 2024/1/20 */ @Mapper -public interface PayReconcileDetailMapper extends BaseMapper { +public interface ReconcileDetailMapper extends BaseMapper { } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileDiffRecordManager.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileDiffRecordManager.java new file mode 100644 index 00000000..972e6f11 --- /dev/null +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileDiffRecordManager.java @@ -0,0 +1,33 @@ +package cn.bootx.platform.daxpay.service.core.order.reconcile.dao; + +import cn.bootx.platform.common.core.rest.param.PageParam; +import cn.bootx.platform.common.mybatisplus.impl.BaseManager; +import cn.bootx.platform.common.mybatisplus.util.MpUtil; +import cn.bootx.platform.common.query.generator.QueryGenerator; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileDiffRecord; +import cn.bootx.platform.daxpay.service.param.reconcile.ReconcileDiffQuery; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +/** + * + * @author xxm + * @since 2024/2/28 + */ +@Slf4j +@Repository +@RequiredArgsConstructor +public class ReconcileDiffRecordManager extends BaseManager { + + /** + * 分页 + */ + public Page page(PageParam pageParam, ReconcileDiffQuery query){ + Page mpPage = MpUtil.getMpPage(pageParam, ReconcileDiffRecord.class); + QueryWrapper generator = QueryGenerator.generator(query); + return this.page(mpPage,generator); + } +} diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileDiffRecordMapper.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileDiffRecordMapper.java similarity index 72% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileDiffRecordMapper.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileDiffRecordMapper.java index 1fec857d..6a86148d 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileDiffRecordMapper.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileDiffRecordMapper.java @@ -1,6 +1,6 @@ package cn.bootx.platform.daxpay.service.core.order.reconcile.dao; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileDiffRecord; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileDiffRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -10,5 +10,5 @@ import org.apache.ibatis.annotations.Mapper; * @since 2024/2/28 */ @Mapper -public interface PayReconcileDiffRecordMapper extends BaseMapper { +public interface ReconcileDiffRecordMapper extends BaseMapper { } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileOrderManager.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileOrderManager.java similarity index 69% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileOrderManager.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileOrderManager.java index 958a74b8..0e8acfc5 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileOrderManager.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileOrderManager.java @@ -4,7 +4,7 @@ import cn.bootx.platform.common.core.rest.param.PageParam; import cn.bootx.platform.common.mybatisplus.impl.BaseManager; import cn.bootx.platform.common.mybatisplus.util.MpUtil; import cn.bootx.platform.common.query.generator.QueryGenerator; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileOrder; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileOrder; import cn.bootx.platform.daxpay.service.param.reconcile.ReconcileOrderQuery; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -20,14 +20,14 @@ import org.springframework.stereotype.Repository; @Slf4j @Repository @RequiredArgsConstructor -public class PayReconcileOrderManager extends BaseManager { +public class ReconcileOrderManager extends BaseManager { /** * 分页 */ - public Page page(PageParam pageParam, ReconcileOrderQuery query){ - Page mpPage = MpUtil.getMpPage(pageParam, PayReconcileOrder.class); - QueryWrapper generator = QueryGenerator.generator(query); + public Page page(PageParam pageParam, ReconcileOrderQuery query){ + Page mpPage = MpUtil.getMpPage(pageParam, ReconcileOrder.class); + QueryWrapper generator = QueryGenerator.generator(query); return this.page(mpPage,generator); } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileOrderMapper.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileOrderMapper.java similarity index 73% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileOrderMapper.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileOrderMapper.java index 041e4506..51222b3c 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/PayReconcileOrderMapper.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/dao/ReconcileOrderMapper.java @@ -1,6 +1,6 @@ package cn.bootx.platform.daxpay.service.core.order.reconcile.dao; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileOrder; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileOrder; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -10,5 +10,5 @@ import org.apache.ibatis.annotations.Mapper; * @since 2024/1/18 */ @Mapper -public interface PayReconcileOrderMapper extends BaseMapper { +public interface ReconcileOrderMapper extends BaseMapper { } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/PayReconcileDetail.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/ReconcileDetail.java similarity index 84% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/PayReconcileDetail.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/ReconcileDetail.java index b0d32226..bf30cb57 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/PayReconcileDetail.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/ReconcileDetail.java @@ -3,8 +3,8 @@ package cn.bootx.platform.daxpay.service.core.order.reconcile.entity; import cn.bootx.platform.common.core.function.EntityBaseFunction; import cn.bootx.platform.common.mybatisplus.base.MpCreateEntity; import cn.bootx.platform.daxpay.code.ReconcileTradeEnum; -import cn.bootx.platform.daxpay.service.core.order.reconcile.conver.PayReconcileConvert; -import cn.bootx.platform.daxpay.service.dto.order.reconcile.PayReconcileDetailDto; +import cn.bootx.platform.daxpay.service.core.order.reconcile.conver.ReconcileConvert; +import cn.bootx.platform.daxpay.service.dto.order.reconcile.ReconcileDetailDto; import cn.bootx.table.modify.annotation.DbColumn; import cn.bootx.table.modify.annotation.DbTable; import com.baomidou.mybatisplus.annotation.TableName; @@ -24,7 +24,7 @@ import java.time.LocalDateTime; @Accessors(chain = true) @DbTable(comment = "支付对账记录") @TableName("pay_reconcile_detail") -public class PayReconcileDetail extends MpCreateEntity implements EntityBaseFunction { +public class ReconcileDetail extends MpCreateEntity implements EntityBaseFunction { /** 关联对账订单ID */ @DbColumn(comment = "关联对账订单ID") @@ -67,7 +67,7 @@ public class PayReconcileDetail extends MpCreateEntity implements EntityBaseFunc @Override - public PayReconcileDetailDto toDto() { - return PayReconcileConvert.CONVERT.convert(this); + public ReconcileDetailDto toDto() { + return ReconcileConvert.CONVERT.convert(this); } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/PayReconcileDiffRecord.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/ReconcileDiffRecord.java similarity index 64% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/PayReconcileDiffRecord.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/ReconcileDiffRecord.java index ef1216b0..c47a8d9f 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/PayReconcileDiffRecord.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/ReconcileDiffRecord.java @@ -1,7 +1,12 @@ package cn.bootx.platform.daxpay.service.core.order.reconcile.entity; +import cn.bootx.platform.common.core.function.EntityBaseFunction; import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity; import cn.bootx.platform.daxpay.code.ReconcileTradeEnum; +import cn.bootx.platform.daxpay.service.code.ReconcileDiffTypeEnum; +import cn.bootx.platform.daxpay.service.core.order.reconcile.conver.ReconcileConvert; +import cn.bootx.platform.daxpay.service.core.payment.reconcile.domain.ReconcileDiff; +import cn.bootx.platform.daxpay.service.dto.order.reconcile.ReconcileDiffRecordDto; import cn.bootx.table.modify.annotation.DbColumn; import cn.bootx.table.modify.annotation.DbTable; import com.baomidou.mybatisplus.annotation.TableName; @@ -21,7 +26,7 @@ import java.time.LocalDateTime; @Accessors(chain = true) @DbTable(comment = "对账差异单") @TableName("pay_reconcile_diff_record") -public class PayReconcileDiffRecord extends MpBaseEntity { +public class ReconcileDiffRecord extends MpBaseEntity implements EntityBaseFunction { /** 对账单ID */ @DbColumn(comment = "对账单ID") @@ -48,11 +53,19 @@ public class PayReconcileDiffRecord extends MpBaseEntity { /** * 差异类型 - * + * @see ReconcileDiffTypeEnum */ @DbColumn(comment = "差异类型") private String diffType; + /** + * 差异内容, 存储json字符串, 格式为 + * {属性: '标题', 本地字段值:'标题1', 网关字段值: '标题2'} + * @see ReconcileDiff + */ + @DbColumn(comment = "差异内容") + private String diffContent; + /** 网关订单号 */ @DbColumn(comment = "网关订单号") private String gatewayOrderNo; @@ -64,4 +77,9 @@ public class PayReconcileDiffRecord extends MpBaseEntity { /** 订单时间 */ @DbColumn(comment = "订单时间") private LocalDateTime orderTime; + + @Override + public ReconcileDiffRecordDto toDto() { + return ReconcileConvert.CONVERT.convert(this); + } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/PayReconcileOrder.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/ReconcileOrder.java similarity index 83% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/PayReconcileOrder.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/ReconcileOrder.java index 33aa0616..8de3a057 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/PayReconcileOrder.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/ReconcileOrder.java @@ -2,8 +2,8 @@ package cn.bootx.platform.daxpay.service.core.order.reconcile.entity; import cn.bootx.platform.common.core.function.EntityBaseFunction; import cn.bootx.platform.common.mybatisplus.base.MpCreateEntity; -import cn.bootx.platform.daxpay.service.core.order.reconcile.conver.PayReconcileConvert; -import cn.bootx.platform.daxpay.service.dto.order.reconcile.PayReconcileOrderDto; +import cn.bootx.platform.daxpay.service.core.order.reconcile.conver.ReconcileConvert; +import cn.bootx.platform.daxpay.service.dto.order.reconcile.ReconcileOrderDto; import cn.bootx.table.modify.annotation.DbColumn; import cn.bootx.table.modify.annotation.DbTable; import cn.bootx.table.modify.mysql.annotation.DbMySqlIndex; @@ -24,7 +24,7 @@ import java.time.LocalDate; @Accessors(chain = true) @DbTable(comment = "支付对账单订单") @TableName("pay_reconcile_order") -public class PayReconcileOrder extends MpCreateEntity implements EntityBaseFunction { +public class ReconcileOrder extends MpCreateEntity implements EntityBaseFunction { /** * 批次号 @@ -56,7 +56,7 @@ public class PayReconcileOrder extends MpCreateEntity implements EntityBaseFunct private String errorMsg; @Override - public PayReconcileOrderDto toDto() { - return PayReconcileConvert.CONVERT.convert(this); + public ReconcileOrderDto toDto() { + return ReconcileConvert.CONVERT.convert(this); } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/PayReconcileDiffRecordService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/PayReconcileDiffRecordService.java deleted file mode 100644 index 5cf6131c..00000000 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/PayReconcileDiffRecordService.java +++ /dev/null @@ -1,20 +0,0 @@ -package cn.bootx.platform.daxpay.service.core.order.reconcile.service; - -import cn.bootx.platform.daxpay.service.core.order.reconcile.dao.PayReconcileDiffRecordManager; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -/** - * - * @author xxm - * @since 2024/2/29 - */ -@Slf4j -@Service -@RequiredArgsConstructor -public class PayReconcileDiffRecordService { - private final PayReconcileDiffRecordManager recordManager; - - -} diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/ReconcileDiffService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/ReconcileDiffService.java new file mode 100644 index 00000000..ff1a96f9 --- /dev/null +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/ReconcileDiffService.java @@ -0,0 +1,49 @@ +package cn.bootx.platform.daxpay.service.core.order.reconcile.service; + +import cn.bootx.platform.common.core.exception.DataNotExistException; +import cn.bootx.platform.common.core.rest.PageResult; +import cn.bootx.platform.common.core.rest.param.PageParam; +import cn.bootx.platform.common.mybatisplus.util.MpUtil; +import cn.bootx.platform.daxpay.service.core.order.reconcile.dao.ReconcileDiffRecordManager; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileDiffRecord; +import cn.bootx.platform.daxpay.service.dto.order.reconcile.ReconcileDiffRecordDto; +import cn.bootx.platform.daxpay.service.param.reconcile.ReconcileDiffQuery; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 对账差异单服务 + * @author xxm + * @since 2024/2/29 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class ReconcileDiffService { + private final ReconcileDiffRecordManager recordManager; + + + /** + * 批量保存 + */ + public void saveAll(List diffRecords) { + recordManager.saveAll(diffRecords); + } + + /** + * 分页查询 + */ + public PageResult page(PageParam pageParam, ReconcileDiffQuery query) { + return MpUtil.convert2DtoPageResult(recordManager.page(pageParam, query)); + } + + /** + * 详情查询 + */ + public ReconcileDiffRecordDto findById(Long id) { + return recordManager.findById(id).map(ReconcileDiffRecord::toDto).orElseThrow(() -> new DataNotExistException("不存在的对账差异单")); + } +} diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/PayReconcileOrderService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/ReconcileOrderService.java similarity index 79% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/PayReconcileOrderService.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/ReconcileOrderService.java index 915f789c..c4b02d31 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/PayReconcileOrderService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/ReconcileOrderService.java @@ -1,8 +1,8 @@ package cn.bootx.platform.daxpay.service.core.order.reconcile.service; import cn.bootx.platform.common.sequence.func.Sequence; -import cn.bootx.platform.daxpay.service.core.order.reconcile.dao.PayReconcileOrderManager; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileOrder; +import cn.bootx.platform.daxpay.service.core.order.reconcile.dao.ReconcileOrderManager; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileOrder; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -19,22 +19,22 @@ import java.util.Optional; @Slf4j @Service @RequiredArgsConstructor -public class PayReconcileOrderService { - private final PayReconcileOrderManager reconcileOrderManager; +public class ReconcileOrderService { + private final ReconcileOrderManager reconcileOrderManager; private final Sequence sequence; /** * 更新, 开启一个新事务进行更新 */ @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) - public void update(PayReconcileOrder order){ + public void update(ReconcileOrder order){ reconcileOrderManager.updateById(order); } /** * 根据Id查询 */ - public Optional findById(Long id){ + public Optional findById(Long id){ return reconcileOrderManager.findById(id); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/PayReconcileQueryService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/ReconcileQueryService.java similarity index 62% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/PayReconcileQueryService.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/ReconcileQueryService.java index e74f51f3..d435dcce 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/PayReconcileQueryService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/service/ReconcileQueryService.java @@ -4,12 +4,12 @@ import cn.bootx.platform.common.core.exception.DataNotExistException; import cn.bootx.platform.common.core.rest.PageResult; import cn.bootx.platform.common.core.rest.param.PageParam; import cn.bootx.platform.common.mybatisplus.util.MpUtil; -import cn.bootx.platform.daxpay.service.core.order.reconcile.dao.PayReconcileDetailManager; -import cn.bootx.platform.daxpay.service.core.order.reconcile.dao.PayReconcileOrderManager; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileDetail; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileOrder; -import cn.bootx.platform.daxpay.service.dto.order.reconcile.PayReconcileDetailDto; -import cn.bootx.platform.daxpay.service.dto.order.reconcile.PayReconcileOrderDto; +import cn.bootx.platform.daxpay.service.core.order.reconcile.dao.ReconcileDetailManager; +import cn.bootx.platform.daxpay.service.core.order.reconcile.dao.ReconcileOrderManager; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileDetail; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileOrder; +import cn.bootx.platform.daxpay.service.dto.order.reconcile.ReconcileDetailDto; +import cn.bootx.platform.daxpay.service.dto.order.reconcile.ReconcileOrderDto; import cn.bootx.platform.daxpay.service.param.reconcile.ReconcileDetailQuery; import cn.bootx.platform.daxpay.service.param.reconcile.ReconcileOrderQuery; import lombok.RequiredArgsConstructor; @@ -24,37 +24,37 @@ import org.springframework.stereotype.Service; @Slf4j @Service @RequiredArgsConstructor -public class PayReconcileQueryService { - private final PayReconcileOrderManager orderManager; - private final PayReconcileDetailManager detailManager; +public class ReconcileQueryService { + private final ReconcileOrderManager orderManager; + private final ReconcileDetailManager detailManager; /** * 分页 */ - public PageResult page(PageParam pageParam, ReconcileOrderQuery query){ + public PageResult page(PageParam pageParam, ReconcileOrderQuery query){ return MpUtil.convert2DtoPageResult(orderManager.page(pageParam, query)); } /** * 对账订单 */ - public PayReconcileOrderDto findById(Long id){ - return orderManager.findById(id).map(PayReconcileOrder::toDto) + public ReconcileOrderDto findById(Long id){ + return orderManager.findById(id).map(ReconcileOrder::toDto) .orElseThrow(()->new DataNotExistException("对账订单不存在")); } /** * 明细分页 */ - public PageResult pageDetail(PageParam pageParam, ReconcileDetailQuery query){ + public PageResult pageDetail(PageParam pageParam, ReconcileDetailQuery query){ return MpUtil.convert2DtoPageResult(detailManager.page(pageParam, query)); } /** * 明细详情 */ - public PayReconcileDetailDto findDetailById(Long id){ - return detailManager.findById(id).map(PayReconcileDetail::toDto) + public ReconcileDetailDto findDetailById(Long id){ + return detailManager.findById(id).map(ReconcileDetail::toDto) .orElseThrow(()->new DataNotExistException("对账详情不存在")); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/domain/ReconcileDiff.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/domain/ReconcileDiff.java index 2d85a6dc..1dbeda55 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/domain/ReconcileDiff.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/domain/ReconcileDiff.java @@ -1,9 +1,23 @@ package cn.bootx.platform.daxpay.service.core.payment.reconcile.domain; +import lombok.Data; +import lombok.experimental.Accessors; + /** * 对账差异内容 * @author xxm * @since 2024/3/1 */ +@Data +@Accessors(chain = true) public class ReconcileDiff { + + /** 字段名 */ + private String fieldName; + + /** 本地订单字段值 */ + private String localValue; + + /** 网关订单字段值 */ + private String gatewayValue; } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/factory/PayReconcileStrategyFactory.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/factory/ReconcileStrategyFactory.java similarity index 96% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/factory/PayReconcileStrategyFactory.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/factory/ReconcileStrategyFactory.java index d4e839c4..c9479b42 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/factory/PayReconcileStrategyFactory.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/factory/ReconcileStrategyFactory.java @@ -17,7 +17,7 @@ import java.util.Objects; * @since 2024/1/18 */ @UtilityClass -public class PayReconcileStrategyFactory { +public class ReconcileStrategyFactory { /** * 根据传入的支付类型批量创建策略 diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/service/PayReconcileService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/service/ReconcileService.java similarity index 50% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/service/PayReconcileService.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/service/ReconcileService.java index c9401f6e..0ad52f3b 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/service/PayReconcileService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/service/ReconcileService.java @@ -9,15 +9,16 @@ import cn.bootx.platform.daxpay.exception.pay.PayFailureException; import cn.bootx.platform.daxpay.service.code.AliPayRecordTypeEnum; import cn.bootx.platform.daxpay.service.code.ReconcileDiffTypeEnum; import cn.bootx.platform.daxpay.service.common.local.PaymentContextLocal; -import cn.bootx.platform.daxpay.service.core.order.reconcile.dao.PayReconcileDetailManager; -import cn.bootx.platform.daxpay.service.core.order.reconcile.dao.PayReconcileOrderManager; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileDetail; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileDiffRecord; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileOrder; -import cn.bootx.platform.daxpay.service.core.order.reconcile.service.PayReconcileDiffRecordService; -import cn.bootx.platform.daxpay.service.core.order.reconcile.service.PayReconcileOrderService; +import cn.bootx.platform.daxpay.service.core.order.reconcile.dao.ReconcileDetailManager; +import cn.bootx.platform.daxpay.service.core.order.reconcile.dao.ReconcileOrderManager; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileDetail; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileDiffRecord; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileOrder; +import cn.bootx.platform.daxpay.service.core.order.reconcile.service.ReconcileDiffService; +import cn.bootx.platform.daxpay.service.core.order.reconcile.service.ReconcileOrderService; import cn.bootx.platform.daxpay.service.core.payment.reconcile.domain.GeneralReconcileRecord; -import cn.bootx.platform.daxpay.service.core.payment.reconcile.factory.PayReconcileStrategyFactory; +import cn.bootx.platform.daxpay.service.core.payment.reconcile.domain.ReconcileDiff; +import cn.bootx.platform.daxpay.service.core.payment.reconcile.factory.ReconcileStrategyFactory; import cn.bootx.platform.daxpay.service.func.AbsReconcileStrategy; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -34,26 +35,26 @@ import java.util.function.Function; import java.util.stream.Collectors; /** - * 支付对账单下载服务 + * 对账服务 * @author xxm * @since 2024/1/17 */ @Slf4j @Service @RequiredArgsConstructor -public class PayReconcileService { - private final PayReconcileOrderService reconcileOrderService; +public class ReconcileService { + private final ReconcileOrderService reconcileOrderService; - private final PayReconcileDiffRecordService reconcileDiffRecordService; + private final ReconcileDiffService reconcileDiffService; - private final PayReconcileOrderManager reconcileOrderManager; - private final PayReconcileDetailManager reconcileDetailManager; + private final ReconcileOrderManager reconcileOrderManager; + private final ReconcileDetailManager reconcileDetailManager; /** * 创建对账订单 */ @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) - public PayReconcileOrder create(LocalDate date, String channel) { + public ReconcileOrder create(LocalDate date, String channel) { // 获取通道枚举 PayChannelEnum channelEnum = PayChannelEnum.findByCode(channel); @@ -62,12 +63,12 @@ public class PayReconcileService { throw new PayFailureException("不支持对账的通道, 请检查"); } // 构建对账策略 - AbsReconcileStrategy reconcileStrategy = PayReconcileStrategyFactory.create(channel); + AbsReconcileStrategy reconcileStrategy = ReconcileStrategyFactory.create(channel); // 生成批次号 String seqNo = reconcileStrategy.generateSequence(date); - PayReconcileOrder order = new PayReconcileOrder() + ReconcileOrder order = new ReconcileOrder() .setBatchNo(seqNo) .setChannel(channel) .setDate(date); @@ -79,17 +80,17 @@ public class PayReconcileService { * 下载对账单并进行保存 */ public void downAndSave(Long reconcileOrderId) { - PayReconcileOrder payReconcileOrder = reconcileOrderService.findById(reconcileOrderId) + ReconcileOrder reconcileOrder = reconcileOrderService.findById(reconcileOrderId) .orElseThrow(() -> new DataNotExistException("未找到对账订单")); - this.downAndSave(payReconcileOrder); + this.downAndSave(reconcileOrder); } /** * 下载对账单并进行保存 */ - public void downAndSave(PayReconcileOrder reconcileOrder) { + public void downAndSave(ReconcileOrder reconcileOrder) { // 构建对账策略 - AbsReconcileStrategy reconcileStrategy = PayReconcileStrategyFactory.create(reconcileOrder.getChannel()); + AbsReconcileStrategy reconcileStrategy = ReconcileStrategyFactory.create(reconcileOrder.getChannel()); reconcileStrategy.setRecordOrder(reconcileOrder); reconcileStrategy.doBeforeHandler(); try { @@ -103,7 +104,7 @@ public class PayReconcileService { throw new RuntimeException(e); } // 保存转换后的通用结构对账单 - List reconcileDetails = PaymentContextLocal.get() + List reconcileDetails = PaymentContextLocal.get() .getReconcileInfo() .getReconcileDetails(); reconcileDetailManager.saveAll(reconcileDetails); @@ -113,22 +114,22 @@ public class PayReconcileService { * 对账单比对 */ public void compare(Long reconcileOrderId){ - PayReconcileOrder payReconcileOrder = reconcileOrderService.findById(reconcileOrderId) + ReconcileOrder reconcileOrder = reconcileOrderService.findById(reconcileOrderId) .orElseThrow(() -> new DataNotExistException("未找到对账订单")); - this.compare(payReconcileOrder); + this.compare(reconcileOrder); } /** * 对账单比对 */ - public void compare(PayReconcileOrder reconcileOrder){ + public void compare(ReconcileOrder reconcileOrder){ // 判断是否已经下载了对账单明细 if (!reconcileOrder.isDown()){ throw new PayFailureException("请先下载对账单"); } // 查询对账单 - List reconcileDetails = reconcileDetailManager.findAllByOrderId(reconcileOrder.getId()); + List reconcileDetails = reconcileDetailManager.findAllByOrderId(reconcileOrder.getId()); // 获取通道枚举 if (!PayChannelEnum.ASYNC_TYPE_CODE.contains(reconcileOrder.getChannel())){ log.error("不支持对账的通道, 请检查, 对账订单ID: {}", reconcileOrder.getId()); @@ -136,16 +137,17 @@ public class PayReconcileService { } // 判断是否为为异步通道 // 构建对账策略 - AbsReconcileStrategy reconcileStrategy = PayReconcileStrategyFactory.create(reconcileOrder.getChannel()); + AbsReconcileStrategy reconcileStrategy = ReconcileStrategyFactory.create(reconcileOrder.getChannel()); // 初始化参数 reconcileStrategy.setRecordOrder(reconcileOrder); reconcileStrategy.setReconcileDetails(reconcileDetails); try { - // 执行比对任务, 获取对账差异记录 + // 执行比对任务, 获取对账差异记录并保存 List generalReconcileRecord = reconcileStrategy.getGeneralReconcileRecord(); - List diffRecords = this.generateDiffRecord(generalReconcileRecord,reconcileDetails); -// reconcileOrder.setCompare(true); -// reconcileOrderService.update(reconcileOrder); + List diffRecords = this.generateDiffRecord(reconcileOrder,generalReconcileRecord,reconcileDetails); + reconcileOrder.setCompare(true); + reconcileOrderService.update(reconcileOrder); + reconcileDiffService.saveAll(diffRecords); } catch (Exception e) { log.error("比对对账单异常", e); reconcileOrder.setErrorMsg("原因: " + e.getMessage()); @@ -156,77 +158,74 @@ public class PayReconcileService { /** * 比对生成对账差异单 - * 1. 远程有, 本地无 补单(追加回订单/记录差异表) - * 2. 远程无, 本地有 记录差错表 - * 3. 远程有, 本地有, 但状态不一致 记录差错表 + * 1. 远程有, 本地无 + * 2. 远程无, 本地有 + * 3. 远程有, 本地有, 但状态不一致 * */ - private List generateDiffRecord(List records, List details){ - if (CollUtil.isEmpty(details)){ + private List generateDiffRecord(ReconcileOrder reconcileOrder, List gatewayRecords, List localDetails){ + if (CollUtil.isEmpty(localDetails)){ return new ArrayList<>(); } - Map detailMap = details.stream() - .collect(Collectors.toMap(PayReconcileDetail::getOrderId, Function.identity(), CollectorsFunction::retainLatest)); + Map detailMap = localDetails.stream() + .collect(Collectors.toMap(ReconcileDetail::getOrderId, Function.identity(), CollectorsFunction::retainLatest)); - List diffRecords = new ArrayList<>(); - - Map recordMap = records.stream() + // 差异内容 + List diffRecords = new ArrayList<>(); + Map recordMap = gatewayRecords.stream() .collect(Collectors.toMap(GeneralReconcileRecord::getOrderId, Function.identity(), CollectorsFunction::retainLatest)); - // 对账与流水比对 - for (PayReconcileDetail detail : details) { + for (ReconcileDetail detail : localDetails) { // 判断本地流水有没有记录, 流水没有记录查询本地订单 GeneralReconcileRecord record = recordMap.get(Long.valueOf(detail.getOrderId())); if (Objects.isNull(record)){ log.info("本地订单不存在: {}", detail.getOrderId()); - PayReconcileDiffRecord diffRecord = new PayReconcileDiffRecord() + ReconcileDiffRecord diffRecord = new ReconcileDiffRecord() .setDiffType(ReconcileDiffTypeEnum.LOCAL_NOT_EXISTS.getCode()) .setOrderId(Long.valueOf(detail.getOrderId())) .setDetailId(detail.getId()) - .setRecordId(detail.getRecordOrderId()) + .setRecordId(reconcileOrder.getId()) .setTitle(detail.getTitle()) - .setDiffType(detail.getType()) + .setOrderType(detail.getType()) .setGatewayOrderNo(detail.getGatewayOrderNo()) .setAmount(detail.getAmount()) .setOrderTime(detail.getOrderTime()); diffRecords.add(diffRecord); continue; } - // 交易类型 支付/退款 - if (Objects.equals(detail.getType(), ReconcileTradeEnum.PAY.getCode())){ - // 判断类型是否存在差异 - if (!Objects.equals(record.getType(), AliPayRecordTypeEnum.PAY.getCode())){ - PayReconcileDiffRecord diffRecord = new PayReconcileDiffRecord() - .setDiffType(ReconcileDiffTypeEnum.NOT_MATCH.getCode()) - .setOrderId(Long.valueOf(detail.getOrderId())) - .setDetailId(detail.getId()) - .setRecordId(detail.getRecordOrderId()) - .setTitle(detail.getTitle()) - .setDiffType(detail.getType()) - .setGatewayOrderNo(detail.getGatewayOrderNo()) - .setAmount(detail.getAmount()) - .setOrderTime(detail.getOrderTime()); - diffRecords.add(diffRecord); - continue; - } - } else { - // 判断类型是否存在差异 - if (!Objects.equals(record.getType(), AliPayRecordTypeEnum.REFUND.getCode())) { - log.info("本地订单类型不正常: {}", detail.getOrderId()); - continue; - } - } - // 判断是否存在差异 金额, 状态 - if (!Objects.equals(record.getAmount(), detail.getAmount())){ - log.info("本地订单金额不正常: {}", detail.getOrderId()); - continue; + // 如果远程和本地都存在, 比对差异 + List reconcileDiffs = this.reconcileDiff(detail, record); + if (CollUtil.isNotEmpty(reconcileDiffs)) { + ReconcileDiffRecord diffRecord = new ReconcileDiffRecord() + .setDiffType(ReconcileDiffTypeEnum.NOT_MATCH.getCode()) + .setOrderId(Long.valueOf(detail.getOrderId())) + .setDetailId(detail.getId()) + .setRecordId(reconcileOrder.getId()) + .setTitle(detail.getTitle()) + .setOrderType(detail.getType()) + .setGatewayOrderNo(detail.getGatewayOrderNo()) + .setAmount(detail.getAmount()) + .setOrderTime(detail.getOrderTime()); + diffRecords.add(diffRecord); } } // 流水与对账单比对, 找出本地有, 远程没有的记录 - for (GeneralReconcileRecord record : records) { - PayReconcileDetail detail = detailMap.get(String.valueOf(record.getOrderId())); + for (GeneralReconcileRecord gateway : gatewayRecords) { + ReconcileDetail detail = detailMap.get(String.valueOf(gateway.getOrderId())); if (Objects.isNull(detail)){ - log.info("远程订单不存在: {}", record.getOrderId()); + ReconcileDiffRecord diffRecord = new ReconcileDiffRecord() + .setDiffType(ReconcileDiffTypeEnum.LOCAL_NOT_EXISTS.getCode()) + .setOrderId(gateway.getOrderId()) + .setRecordId(reconcileOrder.getId()) + .setDetailId(null) + .setTitle(gateway.getTitle()) + .setDiffType(gateway.getType()) + .setOrderType(gateway.getType()) + .setGatewayOrderNo(gateway.getGatewayOrderNo()) + .setAmount(gateway.getAmount()) + .setOrderTime(gateway.getGatewayTime()); + diffRecords.add(diffRecord); + log.info("远程订单不存在: {}", gateway.getOrderId()); continue; } } @@ -234,9 +233,31 @@ public class PayReconcileService { } /** - * 判断订单之间是否存在差异 + * 判断订单之间存在哪些差异 */ - public void reconcileDiff(GeneralReconcileRecord record, PayReconcileDetail detail){ + public List reconcileDiff(ReconcileDetail detail, GeneralReconcileRecord record){ + List diffs = new ArrayList<>(); + // 判断类型是否相同 + if (!(Objects.equals(detail.getType(), ReconcileTradeEnum.PAY.getCode()) + && Objects.equals(record.getType(), AliPayRecordTypeEnum.PAY.getCode()))){ + log.warn("订单类型不一致: {},{}", detail.getType(), record.getType()); + diffs.add(new ReconcileDiff().setFieldName("订单类型").setLocalValue(detail.getType()).setGatewayValue(record.getType())); + } + + // 判断名称是否一致 + if (!Objects.equals(detail.getTitle(), record.getTitle())){ + log.warn("订单名称不一致: {},{}", detail.getTitle(), record.getTitle()); + diffs.add(new ReconcileDiff().setFieldName("订单名称").setLocalValue(detail.getTitle()).setGatewayValue(record.getTitle())); + } + + // 判断金额是否一致 + if (!Objects.equals(detail.getAmount(), record.getAmount())){ + log.warn("订单金额不一致: {},{}", detail.getAmount(), record.getAmount()); + diffs.add(new ReconcileDiff().setFieldName("订单金额") + .setLocalValue(String.valueOf(detail.getAmount())) + .setGatewayValue(String.valueOf(record.getAmount()))); + } + return diffs; } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/strategy/AlipayReconcileStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/strategy/AlipayReconcileStrategy.java index b2bfb315..59755524 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/strategy/AlipayReconcileStrategy.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/strategy/AlipayReconcileStrategy.java @@ -9,7 +9,6 @@ import cn.bootx.platform.daxpay.service.core.channel.alipay.entity.AliPayConfig; import cn.bootx.platform.daxpay.service.core.channel.alipay.entity.AliPayRecord; import cn.bootx.platform.daxpay.service.core.channel.alipay.service.AliPayConfigService; import cn.bootx.platform.daxpay.service.core.channel.alipay.service.AliPayReconcileService; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileDiffRecord; import cn.bootx.platform.daxpay.service.core.payment.reconcile.domain.GeneralReconcileRecord; import cn.bootx.platform.daxpay.service.func.AbsReconcileStrategy; import cn.hutool.core.date.DatePattern; diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/strategy/WechatPayReconcileStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/strategy/WechatPayReconcileStrategy.java index b973208a..85bf0415 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/strategy/WechatPayReconcileStrategy.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/reconcile/strategy/WechatPayReconcileStrategy.java @@ -9,7 +9,6 @@ import cn.bootx.platform.daxpay.service.core.channel.wechat.entity.WeChatPayConf import cn.bootx.platform.daxpay.service.core.channel.wechat.entity.WeChatPayRecord; import cn.bootx.platform.daxpay.service.core.channel.wechat.service.WeChatPayConfigService; import cn.bootx.platform.daxpay.service.core.channel.wechat.service.WechatPayReconcileService; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileDiffRecord; import cn.bootx.platform.daxpay.service.core.payment.reconcile.domain.GeneralReconcileRecord; import cn.bootx.platform.daxpay.service.func.AbsReconcileStrategy; import cn.hutool.core.date.DatePattern; diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/PayReconcileDetailDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/ReconcileDetailDto.java similarity index 95% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/PayReconcileDetailDto.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/ReconcileDetailDto.java index 4a577e13..dbdff4cd 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/PayReconcileDetailDto.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/ReconcileDetailDto.java @@ -15,7 +15,7 @@ import lombok.experimental.Accessors; @Data @Accessors(chain = true) @Schema(title = "对账订单详情") -public class PayReconcileDetailDto extends BaseDto { +public class ReconcileDetailDto extends BaseDto { /** 关联对账订单ID */ @Schema(description = "关联对账订单ID") diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/ReconcileDiffRecordDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/ReconcileDiffRecordDto.java new file mode 100644 index 00000000..773354c5 --- /dev/null +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/ReconcileDiffRecordDto.java @@ -0,0 +1,19 @@ +package cn.bootx.platform.daxpay.service.dto.order.reconcile; + +import cn.bootx.platform.common.core.rest.dto.BaseDto; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 对账差异单 + * @author xxm + * @since 2024/3/3 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@Accessors(chain = true) +@Schema(title = "对账差异单") +public class ReconcileDiffRecordDto extends BaseDto { +} diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/PayReconcileOrderDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/ReconcileOrderDto.java similarity index 94% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/PayReconcileOrderDto.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/ReconcileOrderDto.java index d4b298f5..9b4f0427 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/PayReconcileOrderDto.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/ReconcileOrderDto.java @@ -17,7 +17,7 @@ import java.time.LocalDate; @Data @Accessors(chain = true) @Schema(title = "对账订单") -public class PayReconcileOrderDto extends BaseDto { +public class ReconcileOrderDto extends BaseDto { @Schema(description = "日期") private LocalDate date; diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/func/AbsReconcileStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/func/AbsReconcileStrategy.java index e9860f90..9c0e6c31 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/func/AbsReconcileStrategy.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/func/AbsReconcileStrategy.java @@ -1,7 +1,7 @@ package cn.bootx.platform.daxpay.service.func; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileDetail; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileOrder; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileDetail; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileOrder; import cn.bootx.platform.daxpay.service.core.payment.reconcile.domain.GeneralReconcileRecord; import lombok.Getter; import lombok.Setter; @@ -19,10 +19,10 @@ import java.util.List; public abstract class AbsReconcileStrategy implements PayStrategy { /** 对账订单 */ - private PayReconcileOrder recordOrder; + private ReconcileOrder recordOrder; /** 对账订单明细 */ - private List reconcileDetails; + private List reconcileDetails; /** diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/reconcile/ReconcileDiffQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/reconcile/ReconcileDiffQuery.java new file mode 100644 index 00000000..eb75aadb --- /dev/null +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/reconcile/ReconcileDiffQuery.java @@ -0,0 +1,19 @@ +package cn.bootx.platform.daxpay.service.param.reconcile; + +import cn.bootx.platform.common.core.rest.param.QueryOrder; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 对账差异查询参数 + * @author xxm + * @since 2024/3/3 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@Accessors(chain = true) +@Schema(title = "对账差异查询参数") +public class ReconcileDiffQuery extends QueryOrder { +} diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/task/PayReconcileTask.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/task/ReconcileTask.java similarity index 85% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/task/PayReconcileTask.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/task/ReconcileTask.java index bcd4f34e..bf47846b 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/task/PayReconcileTask.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/task/ReconcileTask.java @@ -1,6 +1,6 @@ package cn.bootx.platform.daxpay.service.task; -import cn.bootx.platform.daxpay.service.task.service.PayReconcileTaskService; +import cn.bootx.platform.daxpay.service.task.service.ReconcileTaskService; import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.extern.slf4j.Slf4j; @@ -20,8 +20,8 @@ import java.util.Objects; @DisallowConcurrentExecution @PersistJobDataAfterExecution @RequiredArgsConstructor -public class PayReconcileTask implements Job { - private final PayReconcileTaskService reconcileTaskService; +public class ReconcileTask implements Job { + private final ReconcileTaskService reconcileTaskService; /** * 要同步的通道 diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/task/service/PayReconcileTaskService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/task/service/ReconcileTaskService.java similarity index 79% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/task/service/PayReconcileTaskService.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/task/service/ReconcileTaskService.java index 9bd94c70..017a2448 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/task/service/PayReconcileTaskService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/task/service/ReconcileTaskService.java @@ -1,7 +1,7 @@ package cn.bootx.platform.daxpay.service.task.service; -import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileOrder; -import cn.bootx.platform.daxpay.service.core.payment.reconcile.service.PayReconcileService; +import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileOrder; +import cn.bootx.platform.daxpay.service.core.payment.reconcile.service.ReconcileService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -16,8 +16,8 @@ import java.time.LocalDate; @Slf4j @Service @RequiredArgsConstructor -public class PayReconcileTaskService { - private final PayReconcileService reconcileService; +public class ReconcileTaskService { + private final ReconcileService reconcileService; /** * 执行任务 @@ -25,7 +25,7 @@ public class PayReconcileTaskService { public void reconcileTask(LocalDate date, String channel){ // 1. 查询需要定时对账的通道, 创建出来对账订单 - PayReconcileOrder reconcileOrder = reconcileService.create(date, channel); + ReconcileOrder reconcileOrder = reconcileService.create(date, channel); // 2. 执行对账任务, 下载对账单并解析, 分别存储为原始数据和通用对账数据 reconcileService.downAndSave(reconcileOrder);