# Conflicts:
#	ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikeRefundServiceImpl.java
This commit is contained in:
dzl 2025-05-20 14:41:24 +08:00
commit 0810d1bdd4

View File

@ -42,7 +42,7 @@ public class EbikeRefundServiceImpl extends ServiceImpl<EbikeRefundMapper, Ebike
boolean r = save(ebikeRefund); boolean r = save(ebikeRefund);
// 同步发起退款 // 同步发起退款
if(r) if(r)
ordersFeignClient.refund(Long.valueOf(ebikeRefund.getOrderId())); ordersFeignClient.refundApply(Long.valueOf(ebikeRefund.getOrderId()));
return r; return r;
} }
@ -62,21 +62,24 @@ public class EbikeRefundServiceImpl extends ServiceImpl<EbikeRefundMapper, Ebike
// create_time到排序取最新的一条 // create_time到排序取最新的一条
QueryWrapper query = QueryWrapper.create() QueryWrapper query = QueryWrapper.create()
.where(EBIKE_REFUND.ORDER_ID.eq(orderId)) .where(EBIKE_REFUND.ORDER_ID.eq(orderId))
.orderBy(EBIKE_REFUND.CREATE_TIME.desc()) .orderBy(EBIKE_REFUND.CREATE_TIME.desc());
.limit(1);
return getOne(query); return getOne(query);
} }
@Override @Override
public Boolean updateRefundStatus(Refund refund) { public Boolean updateRefundStatus(Refund refund) {
EbikeRefund ebikeRefund = new EbikeRefund(); EbikeRefund ebikeRefund = getByOrderId(refund.getOutTradeNo());
ebikeRefund.setRefundId(refund.getOutRefundNo());
ebikeRefund.setStatus(String.valueOf(refund.getStatus().ordinal())); ebikeRefund.setStatus(String.valueOf(refund.getStatus().ordinal()));
if (Status.SUCCESS.equals(refund.getStatus())) { if (Status.SUCCESS.equals(refund.getStatus())) {
ebikeRefund.setRefundTime(LocalDateTime.now()); ebikeRefund.setRefundTime(LocalDateTime.now());
ebikeRefund.setRefund(refund.getAmount().getRefund().doubleValue() / 100.0); ebikeRefund.setRefund(refund.getAmount().getRefund().doubleValue() / 100.0);
// 退款成功 更新订单状态 }
ordersFeignClient.doneRefund(Long.valueOf(refund.getOutTradeNo())); long orderId = Long.parseLong(refund.getOutTradeNo());
// 更新订单退款状态
switch (refund.getStatus()){
case PROCESSING, CLOSED -> ordersFeignClient.refund(orderId);
case SUCCESS -> ordersFeignClient.doneRefund(orderId);
case ABNORMAL -> ordersFeignClient.failRefund(orderId);
} }
return updateById(ebikeRefund); return updateById(ebikeRefund);
} }