feat 对账差异单

This commit is contained in:
bootx
2024-02-29 23:14:42 +08:00
parent 045193cf43
commit 01b5c7f29d
5 changed files with 45 additions and 7 deletions

View File

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

View File

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

View File

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

View File

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

View File

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