修改退款各个环节同步订单状态的实现,增加6-退款申请中 7-退款驳回 8-退款失败三种状态
This commit is contained in:
parent
4671569308
commit
2d8cb7ff2c
@ -85,12 +85,7 @@ public class EbikeWxPaymentController {
|
|||||||
@PostMapping("/refund")
|
@PostMapping("/refund")
|
||||||
public JsonResult<?> refund(@RequestBody ReqRefundDto refundDto) {
|
public JsonResult<?> refund(@RequestBody ReqRefundDto refundDto) {
|
||||||
HandleNotifyResult r = wxPayService.refund(refundDto);
|
HandleNotifyResult r = wxPayService.refund(refundDto);
|
||||||
if (r.isSuccess())
|
return r.isSuccess()?JsonResult.success(true):JsonResult.failed(r.getMessage());
|
||||||
return JsonResult.success();
|
|
||||||
JSONObject error = JSONObject.parseObject(r.getMessage());
|
|
||||||
if (error==null)
|
|
||||||
return JsonResult.failed(r.getMessage());
|
|
||||||
return JsonResult.failed("退款失败", error);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -366,7 +366,6 @@ public class WxPayServiceImpl implements WxPayService {
|
|||||||
ebikeRefund.setRefundApply(ebikePayment.getTotal());
|
ebikeRefund.setRefundApply(ebikePayment.getTotal());
|
||||||
ebikeRefund.setTransactionId(transactionId);
|
ebikeRefund.setTransactionId(transactionId);
|
||||||
ebikeRefund.setReason(reason);
|
ebikeRefund.setReason(reason);
|
||||||
ebikeRefund.setStatus(String.valueOf(Status.PROCESSING.ordinal()));
|
|
||||||
ebikeRefund.setProcessState(String.valueOf(RefundProcessState.applying.ordinal()));
|
ebikeRefund.setProcessState(String.valueOf(RefundProcessState.applying.ordinal()));
|
||||||
ebikeRefund.setSource(String.valueOf(RefoundApplySource.user.ordinal()));
|
ebikeRefund.setSource(String.valueOf(RefoundApplySource.user.ordinal()));
|
||||||
ebikeRefundService.saveRefundResult(ebikeRefund);
|
ebikeRefundService.saveRefundResult(ebikeRefund);
|
||||||
@ -388,6 +387,10 @@ public class WxPayServiceImpl implements WxPayService {
|
|||||||
ebikeRefund.setRefund(ebikeRefund.getRefundApply());
|
ebikeRefund.setRefund(ebikeRefund.getRefundApply());
|
||||||
ebikeRefund.setRefundMethod(processDto.getMethod());
|
ebikeRefund.setRefundMethod(processDto.getMethod());
|
||||||
}
|
}
|
||||||
|
if (String.valueOf(RefundProcessState.closed.ordinal()).equals(processDto.getOperate())) {
|
||||||
|
// 更新订单状态
|
||||||
|
ordersFeignClient.rejectRefund(Long.valueOf(ebikeRefund.getOrderId()));
|
||||||
|
}
|
||||||
return ebikeRefundService.updateById(ebikeRefund);
|
return ebikeRefundService.updateById(ebikeRefund);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -452,12 +455,11 @@ public class WxPayServiceImpl implements WxPayService {
|
|||||||
ebikeRefund.setTotal(amount.getTotal());
|
ebikeRefund.setTotal(amount.getTotal());
|
||||||
ebikeRefund.setStatus(String.valueOf(result.getStatus().ordinal()));
|
ebikeRefund.setStatus(String.valueOf(result.getStatus().ordinal()));
|
||||||
ebikeRefund.setCurrency(amount.getCurrency());
|
ebikeRefund.setCurrency(amount.getCurrency());
|
||||||
if (Status.SUCCESS.equals(result.getStatus())) {
|
|
||||||
ebikeRefund.setRefund(result.getAmount().getRefund().doubleValue() / 100.0);
|
ebikeRefund.setRefund(result.getAmount().getRefund().doubleValue() / 100.0);
|
||||||
ebikeRefund.setRefundTime(LocalDateTime.now());
|
ebikeRefund.setRefundTime(LocalDateTime.now());
|
||||||
ebikeRefund.setRemark(refundDto.getRemark());
|
ebikeRefund.setRemark(refundDto.getRemark());
|
||||||
|
ebikeRefund.setProcessState(String.valueOf(RefundProcessState.processed.ordinal()));
|
||||||
ebikeRefund.setRefundTransactionId(result.getRefundId());
|
ebikeRefund.setRefundTransactionId(result.getRefundId());
|
||||||
}
|
|
||||||
ebikeRefundService.updateById(ebikeRefund);
|
ebikeRefundService.updateById(ebikeRefund);
|
||||||
result_.setSuccess(true);
|
result_.setSuccess(true);
|
||||||
result_.setMessage("退款成功");
|
result_.setMessage("退款成功");
|
||||||
@ -468,7 +470,12 @@ public class WxPayServiceImpl implements WxPayService {
|
|||||||
return result_;
|
return result_;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
String err = logError("退款refund", e);
|
String err = logError("退款refund", e);
|
||||||
|
try {
|
||||||
|
JSONObject json = JSON.parseObject(err);
|
||||||
|
result_.setMessage(json.getString("message"));
|
||||||
|
}catch (Exception ex) {
|
||||||
result_.setMessage(err);
|
result_.setMessage(err);
|
||||||
|
}
|
||||||
return result_;
|
return result_;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user