fix 对账明细未记录订单时间

This commit is contained in:
xxm1995
2024-03-05 18:29:02 +08:00
parent 7a3ae9bf63
commit bc43d57cfb
5 changed files with 30 additions and 0 deletions

View File

@@ -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;

View File

@@ -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())

View File

@@ -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;

View File

@@ -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")){
// 金额

View File

@@ -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;
}