mirror of
https://gitee.com/dromara/dax-pay.git
synced 2025-09-07 21:17:42 +00:00
feat 对账差异单
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
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;
|
||||
|
||||
|
||||
}
|
@@ -7,7 +7,9 @@ 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.payment.reconcile.factory.PayReconcileStrategyFactory;
|
||||
import cn.bootx.platform.daxpay.service.func.AbsReconcileStrategy;
|
||||
@@ -29,8 +31,11 @@ import java.util.List;
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class PayReconcileService {
|
||||
private final PayReconcileOrderManager reconcileOrderManager;
|
||||
private final PayReconcileOrderService reconcileOrderService;
|
||||
|
||||
private final PayReconcileDiffRecordService reconcileDiffRecordService;
|
||||
|
||||
private final PayReconcileOrderManager reconcileOrderManager;
|
||||
private final PayReconcileDetailManager reconcileDetailManager;
|
||||
|
||||
/**
|
||||
@@ -125,8 +130,8 @@ public class PayReconcileService {
|
||||
reconcileStrategy.setRecordOrder(reconcileOrder);
|
||||
reconcileStrategy.setReconcileDetails(reconcileDetails);
|
||||
try {
|
||||
// 执行比对任务
|
||||
reconcileStrategy.compare();
|
||||
// 执行比对任务, 获取对账差异记录
|
||||
List<PayReconcileDiffRecord> diffRecords = reconcileStrategy.generateDiffRecord();
|
||||
// reconcileOrder.setCompare(true);
|
||||
// reconcileOrderService.update(reconcileOrder);
|
||||
} catch (Exception e) {
|
||||
|
@@ -13,6 +13,7 @@ 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.PayReconcileDetail;
|
||||
import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileDiffRecord;
|
||||
import cn.bootx.platform.daxpay.service.func.AbsReconcileStrategy;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import lombok.Getter;
|
||||
@@ -24,6 +25,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
@@ -104,11 +106,15 @@ public class AlipayReconcileStrategy extends AbsReconcileStrategy {
|
||||
* 3. 远程有, 本地有, 但状态不一致 记录差错表
|
||||
*/
|
||||
@Override
|
||||
public void compare() {
|
||||
public List<PayReconcileDiffRecord> generateDiffRecord() {
|
||||
List<PayReconcileDetail> details = this.getReconcileDetails();
|
||||
if (CollUtil.isEmpty(details)){
|
||||
return;
|
||||
return new ArrayList<>(0);
|
||||
}
|
||||
|
||||
// 差异单列表
|
||||
List<PayReconcileDiffRecord> diffRecords = new ArrayList<>();
|
||||
|
||||
Map<String, PayReconcileDetail> detailMap = details.stream()
|
||||
.collect(Collectors.toMap(PayReconcileDetail::getOrderId, Function.identity(), CollectorsFunction::retainLatest));
|
||||
|
||||
@@ -160,5 +166,6 @@ public class AlipayReconcileStrategy extends AbsReconcileStrategy {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
return diffRecords;
|
||||
}
|
||||
}
|
||||
|
@@ -13,6 +13,7 @@ import cn.bootx.platform.daxpay.service.core.channel.wechat.entity.WeChatPayReco
|
||||
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.PayReconcileDetail;
|
||||
import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileDiffRecord;
|
||||
import cn.bootx.platform.daxpay.service.func.AbsReconcileStrategy;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -99,9 +100,11 @@ public class WechatPayReconcileStrategy extends AbsReconcileStrategy {
|
||||
* 1. 远程有, 本地无 补单(追加回订单/记录差异表)
|
||||
* 2. 远程无, 本地有 记录差错表
|
||||
* 3. 远程有, 本地有, 但状态不一致 记录差错表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void compare() {
|
||||
public List<PayReconcileDiffRecord> generateDiffRecord() {
|
||||
List<PayReconcileDetail> details = this.getReconcileDetails();
|
||||
if (CollUtil.isEmpty(details)){
|
||||
return;
|
||||
|
@@ -1,6 +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.PayReconcileDiffRecord;
|
||||
import cn.bootx.platform.daxpay.service.core.order.reconcile.entity.PayReconcileOrder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@@ -45,7 +46,9 @@ public abstract class AbsReconcileStrategy implements PayStrategy {
|
||||
* 1. 远程有, 本地无 补单(追加回订单/记录差异表)
|
||||
* 2. 远程无, 本地有 记录差错表
|
||||
* 3. 远程有, 本地有, 但状态不一致 记录差错表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public abstract void compare();
|
||||
public abstract List<PayReconcileDiffRecord> generateDiffRecord();
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user