用户退款
This commit is contained in:
parent
4f06b79e77
commit
87dc496944
@ -78,8 +78,8 @@ public class EbikeWxPaymentController {
|
||||
*/
|
||||
@PostMapping("/refundApply")
|
||||
public JsonResult<?> refundApply(@RequestBody EbikeOrderRefundDto ebikeRefundDto) {
|
||||
Long r = wxPayService.refundApply(ebikeRefundDto.getOrderId(), ebikeRefundDto.getReason());
|
||||
return JsonResult.success(r);
|
||||
Long refundId = wxPayService.refundApply(ebikeRefundDto.getOrderId(), ebikeRefundDto.getReason());
|
||||
return JsonResult.success(refundId);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -149,7 +149,7 @@ public class EbikeWxPaymentController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 退款订单详情
|
||||
* 退款订单详情 bu
|
||||
*
|
||||
* @param refundId 退款id
|
||||
* @return 退款详情
|
||||
@ -172,20 +172,20 @@ public class EbikeWxPaymentController {
|
||||
return JsonResult.success(refundApplyOrderInfoVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 退款申请用户详情
|
||||
*
|
||||
* @param refundId 退款id
|
||||
* @return 退款申请用户详情
|
||||
*/
|
||||
@GetMapping("/refundApplyUserDetail/{refundId}")
|
||||
public JsonResult<?> refundApplyUserDetail(@PathVariable(name = "refundId") Long refundId) {
|
||||
EbikeRefundUserDetailInfoVo refundUserDetailInfoVo = wxPayService.queryRefundUserInfoById(refundId);
|
||||
return JsonResult.success(refundUserDetailInfoVo);
|
||||
}
|
||||
// /**
|
||||
// * 退款申请用户详情
|
||||
// *
|
||||
// * @param refundId 退款id
|
||||
// * @return 退款申请用户详情
|
||||
// */
|
||||
// @GetMapping("/refundApplyUserDetail/{refundId}")
|
||||
// public JsonResult<?> refundApplyUserDetail(@PathVariable(name = "refundId") Long refundId) {
|
||||
// EbikeRefundUserDetailInfoVo refundUserDetailInfoVo = wxPayService.queryRefundUserInfoById(refundId);
|
||||
// return JsonResult.success(refundUserDetailInfoVo);
|
||||
// }
|
||||
|
||||
/**
|
||||
* 退款申请用户交易记录
|
||||
* 退款申请用户交易记录 -bu
|
||||
*
|
||||
* @param userQueryDto 查询条件
|
||||
*/
|
||||
|
||||
@ -22,7 +22,7 @@ import java.time.LocalDateTime;
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Table("ebike_Refund")
|
||||
@Table("ebike_refund")
|
||||
public class EbikeRefund implements Serializable {
|
||||
|
||||
|
||||
@ -38,7 +38,7 @@ public class EbikeRefund implements Serializable {
|
||||
/**
|
||||
* 退款单号
|
||||
*/
|
||||
private String refundOrder;
|
||||
private String refundOrderId;
|
||||
|
||||
/**
|
||||
* 订单号
|
||||
|
||||
@ -82,7 +82,7 @@ public class EbikeRefundServiceImpl extends ServiceImpl<EbikeRefundMapper, Ebike
|
||||
*/
|
||||
private EbikeRefund getByRefundOrderId(String refundOrderId) {
|
||||
QueryWrapper query = QueryWrapper.create()
|
||||
.where(EBIKE_REFUND.REFUND_ORDER.eq(refundOrderId))
|
||||
.where(EBIKE_REFUND.REFUND_ORDER_ID.eq(refundOrderId))
|
||||
.orderBy(EBIKE_REFUND.CREATE_TIME.desc());
|
||||
return getOne(query);
|
||||
}
|
||||
@ -196,7 +196,7 @@ public class EbikeRefundServiceImpl extends ServiceImpl<EbikeRefundMapper, Ebike
|
||||
.leftJoin(EBIKE_PAYMENT).on(EBIKE_PAYMENT.ORDER_ID.eq(EBIKE_REFUND.ORDER_ID))
|
||||
.leftJoin(EBIKE_USER).on(EBIKE_USER.USER_ID.eq(EBIKE_PAYMENT.USER_ID))
|
||||
.leftJoin(EBIKE_ORDER).on(EBIKE_ORDER.ORDER_ID.eq(EBIKE_REFUND.ORDER_ID))
|
||||
.where(EBIKE_REFUND.PROCESS_STATUS.eq(String.valueOf(refundDto.getProcessStatus())));
|
||||
.where(EBIKE_REFUND.PROCESS_STATUS.eq(refundDto.getProcessStatus()));
|
||||
// 查询条件
|
||||
buildQueryConditions(query, refundDto);
|
||||
Page<EbikeProcessedRefundVo> page = refundDto.getPageParam().getPage();
|
||||
@ -268,7 +268,7 @@ public class EbikeRefundServiceImpl extends ServiceImpl<EbikeRefundMapper, Ebike
|
||||
.from(EBIKE_REFUND)
|
||||
.select(EBIKE_PAYMENT.TOTAL.as("amount"),
|
||||
EBIKE_PAYMENT.CREATE_TIME,
|
||||
EBIKE_ORDER.ORDER_TYPE.as("transactionContent"))
|
||||
(EBIKE_ORDER.ORDER_TYPE).as("transactionContent"))
|
||||
.select("'支出' as transactionType")
|
||||
.leftJoin(EBIKE_PAYMENT).on(EBIKE_REFUND.ORDER_ID.eq(EBIKE_PAYMENT.ORDER_ID))
|
||||
.leftJoin(EBIKE_USER).on(EBIKE_PAYMENT.USER_ID.eq(EBIKE_USER.USER_ID))
|
||||
@ -359,7 +359,7 @@ public class EbikeRefundServiceImpl extends ServiceImpl<EbikeRefundMapper, Ebike
|
||||
QueryWrapper query = QueryWrapper.create()
|
||||
.select(QueryMethods.count(EBIKE_FAULT_REPORT.ALL_COLUMNS))
|
||||
.from(EBIKE_FAULT_REPORT)
|
||||
.where(EBIKE_FAULT_REPORT.ORDER_CODE.eq(orderId));
|
||||
.where(EBIKE_FAULT_REPORT.ORDER_CODE.eq(String.valueOf(orderId)));
|
||||
return (long) getObj(query);
|
||||
}
|
||||
|
||||
|
||||
@ -423,7 +423,8 @@ public class EbikeWxPayServiceImpl implements EbikeWxPayService {
|
||||
String outRefundNo = StringUtils.generateSnowflakeId("refundId");
|
||||
ebikeRefund = new EbikeRefund();
|
||||
ebikeRefund.setCreateTime(LocalDateTime.now());
|
||||
ebikeRefund.setRefundOrder(outRefundNo);
|
||||
ebikeRefund.setRefundOrderId(outRefundNo);
|
||||
ebikeRefund.setOperatorId(ebikePayment.getOperatorId());
|
||||
ebikeRefund.setOrderId(orderId);
|
||||
ebikeRefund.setCurrency(ebikePayment.getCurrency());
|
||||
ebikeRefund.setTotal(ebikePayment.getCostPrice());
|
||||
@ -477,16 +478,11 @@ public class EbikeWxPayServiceImpl implements EbikeWxPayService {
|
||||
notifyVo.setMessage(String.format("{%s}退款已经成功,不能重复退款", refundDto.getRefundId()));
|
||||
return notifyVo;
|
||||
}
|
||||
if (Status.PROCESSING.ordinal() == ebikeRefund.getRefundStatus()) {
|
||||
log.error("退款refund失败,{} 退款中,不能重复退款", refundDto.getRefundId());
|
||||
notifyVo.setMessage(String.format("{%s}退款中,不能重复退款", refundDto.getRefundId()));
|
||||
return notifyVo;
|
||||
}
|
||||
if (Status.CLOSED.ordinal() == ebikeRefund.getRefundStatus() ||
|
||||
Status.ABNORMAL.ordinal() == ebikeRefund.getRefundStatus()) {
|
||||
//重新发起
|
||||
String newOrder = StringUtils.generateSnowflakeId("refundId");
|
||||
ebikeRefund.setRefundOrder(newOrder);
|
||||
ebikeRefund.setRefundOrderId(newOrder);
|
||||
}
|
||||
// 查询支付记录
|
||||
Long orderId = ebikeRefund.getOrderId();
|
||||
@ -499,13 +495,13 @@ public class EbikeWxPayServiceImpl implements EbikeWxPayService {
|
||||
// 发起退款
|
||||
CreateRequest request = new CreateRequest();
|
||||
request.setTransactionId(transactionId);
|
||||
request.setOutTradeNo(String.valueOf(orderId));
|
||||
request.setOutRefundNo(ebikeRefund.getRefundOrder());
|
||||
request.setOutTradeNo(ebikePayment.getTradeId());
|
||||
request.setOutRefundNo(ebikeRefund.getRefundOrderId());
|
||||
request.setReason(ebikeRefund.getReason());
|
||||
request.setNotifyUrl(wxPayConfig.getRefundNotifyUrl());
|
||||
AmountReq amountReq = new AmountReq();
|
||||
amountReq.setRefund(amount.getRefund().longValue());
|
||||
amountReq.setTotal(amount.getTotal().longValue());
|
||||
amountReq.setRefund(yuanToCent(amount.getRefund()));
|
||||
amountReq.setTotal(yuanToCent(amount.getTotal()));
|
||||
amountReq.setCurrency(amount.getCurrency());
|
||||
request.setAmount(amountReq);
|
||||
try {
|
||||
@ -555,7 +551,7 @@ public class EbikeWxPayServiceImpl implements EbikeWxPayService {
|
||||
log.error("{}退款订单不存在", refundId);
|
||||
return null;
|
||||
}
|
||||
return queryRefundByOutTradeNo(ebikeRefund.getRefundOrder());
|
||||
return queryRefundByOutTradeNo(ebikeRefund.getRefundOrderId());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -591,7 +587,7 @@ public class EbikeWxPayServiceImpl implements EbikeWxPayService {
|
||||
return result;
|
||||
}
|
||||
|
||||
Refund refund = queryRefundByOutTradeNo(ebikeRefund.getRefundOrder());
|
||||
Refund refund = queryRefundByOutTradeNo(ebikeRefund.getRefundOrderId());
|
||||
|
||||
if (refund != null && Status.SUCCESS.equals(refund.getStatus())) {
|
||||
result.setSuccess(true);
|
||||
@ -856,4 +852,13 @@ public class EbikeWxPayServiceImpl implements EbikeWxPayService {
|
||||
}
|
||||
return msg;
|
||||
}
|
||||
|
||||
private Long yuanToCent(BigDecimal yuan) {
|
||||
if (yuan == null) {
|
||||
return null;
|
||||
}
|
||||
return yuan.multiply(BigDecimal.valueOf(100))
|
||||
.setScale(0, RoundingMode.HALF_UP)
|
||||
.longValue();
|
||||
}
|
||||
}
|
||||
|
||||
@ -90,7 +90,7 @@ public class WxPayTask {
|
||||
for (EbikeRefund ebikeRefund : ebikeRefundList) {
|
||||
log.warn("超时未退款的退款单号 ===> {}", ebikeRefund.getRefundId());
|
||||
// 调用微信退款查询接口,查询退款状态
|
||||
Refund refund = wxPayService.queryRefundByOutTradeNo(ebikeRefund.getRefundOrder());
|
||||
Refund refund = wxPayService.queryRefundByOutTradeNo(ebikeRefund.getRefundOrderId());
|
||||
if (refund != null) {
|
||||
// 3. 更新退款单状态
|
||||
ebikeRefundService.updateRefundStatus(refund);
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
package com.cdzy.user.service;
|
||||
|
||||
import com.cdzy.user.model.dto.EbikeUserRealInfoDto;
|
||||
import com.cdzy.user.model.entity.EbikeUserRealInfo;
|
||||
import com.cdzy.user.model.vo.EbikeUserVo;
|
||||
import com.mybatisflex.core.paginate.Page;
|
||||
import com.mybatisflex.core.service.IService;
|
||||
|
||||
/**
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user