mirror of
https://gitee.com/dromara/dax-pay.git
synced 2025-09-08 05:27:59 +00:00
:feat: 替换paymentId
This commit is contained in:
@@ -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);
|
||||
|
@@ -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();
|
||||
|
||||
|
@@ -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 {
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -139,6 +139,7 @@ public class RefundOrderService {
|
||||
refundParam.setReason(param.getReason());
|
||||
refundParam.setReqTime(LocalDateTime.now());
|
||||
refundParam.setClientIp(ip);
|
||||
refundParam.setRefundAll(true);
|
||||
// 手动初始化上下文
|
||||
paymentAssistService.initContext(refundParam);
|
||||
// 初始化接口信息为统一退款
|
||||
|
@@ -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));
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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));
|
||||
|
||||
|
@@ -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());
|
||||
|
@@ -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));
|
||||
// 异步通道退款单
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
}
|
@@ -24,6 +24,10 @@ public class PayOrderDto extends BaseDto {
|
||||
@Schema(description = "关联的业务号")
|
||||
private String businessNo;
|
||||
|
||||
/** 支付网关订单号 */
|
||||
@Schema(description = "支付网关订单号")
|
||||
private String orderNo;
|
||||
|
||||
/** 标题 */
|
||||
@Schema(description = "标题")
|
||||
private String title;
|
||||
|
@@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user