From bc43d57cfb7464ff67d41230ce2a6bd8b5d44c05 Mon Sep 17 00:00:00 2001 From: xxm1995 Date: Tue, 5 Mar 2024 18:29:02 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=AF=B9=E8=B4=A6=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=9C=AA=E8=AE=B0=E5=BD=95=E8=AE=A2=E5=8D=95=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alipay/entity/AliReconcileBillDetail.java | 1 + .../alipay/service/AliPayReconcileService.java | 12 ++++++++++++ .../channel/wechat/entity/WxReconcileBillDetail.java | 1 + .../wechat/service/WechatPayReconcileService.java | 10 ++++++++++ .../dto/order/reconcile/ReconcileDetailDto.java | 6 ++++++ 5 files changed, 30 insertions(+) diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/alipay/entity/AliReconcileBillDetail.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/alipay/entity/AliReconcileBillDetail.java index 453af07f..54957b89 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/alipay/entity/AliReconcileBillDetail.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/alipay/entity/AliReconcileBillDetail.java @@ -36,6 +36,7 @@ public class AliReconcileBillDetail extends MpIdEntity { @Alias("创建时间") @DbColumn(comment = "创建时间") private String createTime; + /** yyyy-MM-dd HH:mm:ss */ @Alias("完成时间") @DbColumn(comment = "完成时间") private String endTime; 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 14cb144a..8057bdb0 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 @@ -1,5 +1,6 @@ package cn.bootx.platform.daxpay.service.core.channel.alipay.service; +import cn.bootx.platform.common.core.util.LocalDateTimeUtil; import cn.bootx.platform.daxpay.code.ReconcileTradeEnum; import cn.bootx.platform.daxpay.exception.pay.PayFailureException; import cn.bootx.platform.daxpay.service.code.AliPayCode; @@ -11,6 +12,7 @@ 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.ReconcileDetail; +import cn.hutool.core.date.DatePattern; import cn.hutool.core.io.IoUtil; import cn.hutool.core.text.csv.CsvReader; import cn.hutool.core.text.csv.CsvUtil; @@ -31,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.InputStreamReader; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -138,6 +141,7 @@ public class AliPayReconcileService { double v = Double.parseDouble(orderAmount) * 100; int amount = Math.abs(((int) v)); + // 默认为支付对账记录 ReconcileDetail reconcileDetail = new ReconcileDetail() .setRecordOrderId(billDetail.getRecordOrderId()) @@ -146,6 +150,14 @@ public class AliPayReconcileService { .setAmount(amount) .setTitle(billDetail.getSubject()) .setGatewayOrderNo(billDetail.getTradeNo()); + + // 时间 + String endTime = billDetail.getEndTime(); + if (StrUtil.isNotBlank(endTime)) { + LocalDateTime time = LocalDateTimeUtil.parse(endTime, DatePattern.NORM_DATETIME_PATTERN); + reconcileDetail.setOrderTime(time); + } + // 退款覆盖更新对应的字段 if (Objects.equals(billDetail.getTradeType(), "退款")){ reconcileDetail.setOrderId(billDetail.getBatchNo()) diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/entity/WxReconcileBillDetail.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/entity/WxReconcileBillDetail.java index 822ce276..7b287355 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/entity/WxReconcileBillDetail.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/entity/WxReconcileBillDetail.java @@ -22,6 +22,7 @@ public class WxReconcileBillDetail extends MpIdEntity { @DbColumn(comment = "关联对账订单ID") private Long recordOrderId; + /** yyyy-MM-dd HH:mm:ss */ @Alias("交易时间") @DbColumn(comment = "交易时间") private String transactionTime; 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 2bf27592..913cd341 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 @@ -1,5 +1,6 @@ package cn.bootx.platform.daxpay.service.core.channel.wechat.service; +import cn.bootx.platform.common.core.util.LocalDateTimeUtil; import cn.bootx.platform.daxpay.code.ReconcileTradeEnum; import cn.bootx.platform.daxpay.exception.pay.PayFailureException; import cn.bootx.platform.daxpay.service.code.WeChatPayCode; @@ -13,6 +14,7 @@ import cn.bootx.platform.daxpay.service.core.channel.wechat.entity.WxReconcileBi import cn.bootx.platform.daxpay.service.core.channel.wechat.entity.WxReconcileFundFlowDetail; import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.ReconcileDetail; import cn.hutool.core.codec.Base64; +import cn.hutool.core.date.DatePattern; import cn.hutool.core.text.csv.CsvReader; import cn.hutool.core.text.csv.CsvUtil; import cn.hutool.core.util.StrUtil; @@ -27,6 +29,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.ByteArrayInputStream; +import java.time.LocalDateTime; import java.util.List; import java.util.Map; import java.util.Objects; @@ -124,6 +127,13 @@ public class WechatPayReconcileService{ .setOrderId(billDetail.getMchOrderNo()) .setTitle(billDetail.getSubject()) .setGatewayOrderNo(billDetail.getWeiXinOrderNo()); + // 交易时间 + String transactionTime = billDetail.getTransactionTime(); + if (StrUtil.isNotBlank(transactionTime)) { + LocalDateTime time = LocalDateTimeUtil.parse(transactionTime, DatePattern.NORM_DATETIME_PATTERN); + reconcileDetail.setOrderTime(time); + } + // 支付 if (Objects.equals(billDetail.getStatus(), "SUCCESS")){ // 金额 diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/ReconcileDetailDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/ReconcileDetailDto.java index 9cd9f557..bd251ddd 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/ReconcileDetailDto.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/reconcile/ReconcileDetailDto.java @@ -6,6 +6,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import java.time.LocalDateTime; + /** * 对账订单详情 * @author xxm @@ -40,4 +42,8 @@ public class ReconcileDetailDto extends BaseDto { /** 网关订单号 - 支付宝/微信的订单号 */ @Schema(description = "网关订单号") private String gatewayOrderNo; + + /** 订单时间 */ + @Schema(description = "订单时间") + private LocalDateTime orderTime; }