:feat: 替换paymentId

This commit is contained in:
re-aoharu
2024-04-16 11:01:25 +08:00
parent 650505a6d4
commit bd3bb82dbd
16 changed files with 57 additions and 22 deletions

View File

@@ -32,8 +32,8 @@ public class AliPayRefundService {
public void refund(RefundOrder refundOrder, int amount) {
RefundLocal refundInfo = PaymentContextLocal.get().getRefundInfo();
AlipayTradeRefundModel refundModel = new AlipayTradeRefundModel();
refundModel.setOutTradeNo(String.valueOf(refundOrder.getRefundNo()));
refundModel.setOutRequestNo(String.valueOf(refundOrder.getId()));
refundModel.setOutTradeNo(String.valueOf(refundOrder.getOrderNo()));
refundModel.setOutRequestNo(String.valueOf(refundOrder.getRefundNo()));
// 金额转换
String refundAmount = String.valueOf(amount*0.01);
refundModel.setRefundAmount(refundAmount);

View File

@@ -22,8 +22,8 @@ public class PayChannelOrderManager extends BaseManager<PayChannelOrderMapper, P
/**
* 根据订单查找
*/
public List<PayChannelOrder> findAllByPaymentId(Long paymentId){
return findAllByField(PayChannelOrder::getPaymentId,paymentId);
public List<PayChannelOrder> findAllByPaymentId(String orderNo){
return findAllByField(PayChannelOrder::getPaymentId,orderNo);
}
/**
@@ -48,9 +48,9 @@ public class PayChannelOrderManager extends BaseManager<PayChannelOrderMapper, P
/**
* 根据订单id删除异步支付记录
*/
public void deleteByPaymentIdAndAsync(Long paymentId){
public void deleteByPaymentIdAndAsync(String orderNo){
lambdaUpdate()
.eq(PayChannelOrder::getPaymentId,paymentId)
.eq(PayChannelOrder::getPaymentId,orderNo)
.eq(PayChannelOrder::isAsync,true)
.remove();

View File

@@ -41,8 +41,8 @@ public class PayChannelOrderService {
/**
* 根据支付ID查询列表
*/
public List<PayChannelOrderDto> findAllByPaymentId(Long paymentId){
return ResultConvertUtil.dtoListConvert(channelOrderManager.findAllByPaymentId(paymentId));
public List<PayChannelOrderDto> findAllByPaymentId(String orderNo){
return ResultConvertUtil.dtoListConvert(channelOrderManager.findAllByPaymentId(orderNo));
}
/**
@@ -81,7 +81,7 @@ public class PayChannelOrderService {
.setRefundableBalance(payChannelParam.getAmount())
.setChannelExtra(channelParamStr)
.setStatus(payStatus.getCode());
channelOrderManager.deleteByPaymentIdAndAsync(payOrder.getId());
channelOrderManager.deleteByPaymentIdAndAsync(payOrder.getOrderNo());
channelOrderManager.save(payChannelOrder);
payInfo.getPayChannelOrders().add(payChannelOrder);
} else {

View File

@@ -90,7 +90,7 @@ public class PayOrderQueryService {
.orElseThrow(() -> new PayFailureException("支付订单不完整"));
// 查询通道数据
List<PayChannelOrder> orderChannelList = payChannelOrderManager.findAllByPaymentId(payOrder.getId());
List<PayChannelOrder> orderChannelList = payChannelOrderManager.findAllByPaymentId(payOrder.getOrderNo());
List<PayChannelOrderResult> channels = orderChannelList.stream()
.map(PayOrderConvert.CONVERT::convertResult)
@@ -104,4 +104,8 @@ public class PayOrderQueryService {
return payOrderResult;
}
public Optional<PayOrder> findByOrderNo(String orderNo) {
return payOrderManager.findByField(PayOrder::getOrderNo,orderNo);
}
}

View File

@@ -139,6 +139,7 @@ public class RefundOrderService {
refundParam.setReason(param.getReason());
refundParam.setReqTime(LocalDateTime.now());
refundParam.setClientIp(ip);
refundParam.setRefundAll(true);
// 手动初始化上下文
paymentAssistService.initContext(refundParam);
// 初始化接口信息为统一退款

View File

@@ -86,7 +86,7 @@ public class PayCloseService {
}
// 0.基础数据准备
Map<String, PayChannelOrder> orderChannelMap = payChannelOrderManager.findAllByPaymentId(payOrder.getId())
Map<String, PayChannelOrder> orderChannelMap = payChannelOrderManager.findAllByPaymentId(payOrder.getOrderNo())
.stream()
.collect(Collectors.toMap(PayChannelOrder::getChannel, Function.identity(), CollectorsFunction::retainLatest));

View File

@@ -114,7 +114,7 @@ public class ClientNoticeService {
// 通道支付订单为空则进行查询
if (CollUtil.isEmpty(channelOrders)){
channelOrders = payChannelOrderManager.findAllByPaymentId(order.getId());
channelOrders = payChannelOrderManager.findAllByPaymentId(order.getOrderNo());
}
// 创建通知任务并保存
ClientNoticeTask task = clientNoticeAssistService.buildPayTask(order, orderExtra, channelOrders);

View File

@@ -453,7 +453,7 @@ public class PayService {
// 如果支付完成 发送通知
if (Objects.equals(payOrder.getStatus(), SUCCESS.getCode())){
// 查询通道订单
List<PayChannelOrder> payChannelOrders = payChannelOrderManager.findAllByPaymentId(payOrder.getId());
List<PayChannelOrder> payChannelOrders = payChannelOrderManager.findAllByPaymentId(payOrder.getOrderNo());
clientNoticeService.registerPayNotice(payOrder, payOrderExtra, payChannelOrders);
}
return PayBuilder.buildPayResultByPayOrder(payOrder);

View File

@@ -103,7 +103,7 @@ public class RefundService {
refundAssistService.checkAndDisposeParam(param, payOrder);
// 组装退款参数, 处理全部退款和简单退款情况
List<PayChannelOrder> payChannelOrders = payChannelOrderManager.findAllByPaymentId(payOrder.getId());
List<PayChannelOrder> payChannelOrders = payChannelOrderManager.findAllByPaymentId(payOrder.getOrderNo());
// 是否全部退款
if (param.isRefundAll()){
// 全部退款根据支付订单的退款信息构造退款参数
@@ -249,7 +249,7 @@ public class RefundService {
.findAllByRefundId(refundOrder.getId());
PayOrder payOrder = payOrderService.findById(refundOrder.getId())
.orElseThrow(() -> new DataNotExistException("未查找到支付订单"));
List<PayChannelOrder> payChannelOrders = payChannelOrderManager.findAllByPaymentId(payOrder.getId());
List<PayChannelOrder> payChannelOrders = payChannelOrderManager.findAllByPaymentId(payOrder.getOrderNo());
Map<String, PayChannelOrder> orderChannelMap = payChannelOrders.stream()
.collect(Collectors.toMap(PayChannelOrder::getChannel, Function.identity(), CollectorsFunction::retainLatest));

View File

@@ -62,7 +62,7 @@ public class PayRepairService {
}
// 1. 获取支付单管理的通道支付订单
Map<String, PayChannelOrder> channelOrderMap = channelOrderManager.findAllByPaymentId(order.getId())
Map<String, PayChannelOrder> channelOrderMap = channelOrderManager.findAllByPaymentId(order.getOrderNo())
.stream()
.collect(Collectors.toMap(PayChannelOrder::getChannel, Function.identity(), CollectorsFunction::retainLatest));
List<String> channels = new ArrayList<>(channelOrderMap.keySet());

View File

@@ -76,7 +76,7 @@ public class RefundRepairService {
PayOrder payOrder = payOrderQueryService.findById(refundOrder.getId())
.orElseThrow(() -> new RuntimeException("支付单不存在"));
// 关联支付通道支付单
Map<String, PayChannelOrder> payChannelOrderMap = payChannelOrderManager.findAllByPaymentId(refundOrder.getId())
Map<String, PayChannelOrder> payChannelOrderMap = payChannelOrderManager.findAllByPaymentId(refundOrder.getOrderNo())
.stream()
.collect(Collectors.toMap(PayChannelOrder::getChannel, Function.identity(), CollectorsFunction::retainLatest));
// 异步通道退款单

View File

@@ -21,7 +21,7 @@ import java.time.LocalDateTime;
public class PayChannelOrderDto extends BaseDto {
@Schema(description = "支付id")
private Long paymentId;
private String paymentId;
@Schema(description = "异步支付方式")
private boolean async;

View File

@@ -0,0 +1,12 @@
package cn.bootx.platform.daxpay.service.dto.order.pay;
import lombok.Data;
import java.util.List;
@Data
public class PayOrderDetailDto {
private PayOrderDto payOrder;
private PayOrderExtraDto payOrderExtra;
private List<PayChannelOrderDto> payChannelOrder;
}

View File

@@ -24,6 +24,10 @@ public class PayOrderDto extends BaseDto {
@Schema(description = "关联的业务号")
private String businessNo;
/** 支付网关订单号 */
@Schema(description = "支付网关订单号")
private String orderNo;
/** 标题 */
@Schema(description = "标题")
private String title;

View File

@@ -23,12 +23,13 @@ import java.time.LocalDateTime;
@Schema(title = "退款记录")
public class RefundOrderDto extends BaseDto {
@Schema(description = "原支付号")
private Long paymentId;
@Schema(description = "原支付业务号")
private String businessNo;
@Schema(description = "原支付订单号")
private String orderNo;
@Schema(description = "原支付标题")
private String title;