diff --git a/ebike-payment/pom.xml b/ebike-payment/pom.xml index 61176243..83b739ea 100644 --- a/ebike-payment/pom.xml +++ b/ebike-payment/pom.xml @@ -107,6 +107,12 @@ javax.servlet-api true + + + cn.dev33 + sa-token-spring-boot3-starter + ${satoken.version} + org.springframework.boot diff --git a/ebike-payment/src/main/java/com/cdzy/payment/controller/EbikeWxPaymentController.java b/ebike-payment/src/main/java/com/cdzy/payment/controller/EbikeWxPaymentController.java index d1f73651..d4111ac8 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/controller/EbikeWxPaymentController.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/controller/EbikeWxPaymentController.java @@ -1,9 +1,13 @@ package com.cdzy.payment.controller; +import cn.dev33.satoken.stp.StpUtil; import com.alibaba.fastjson2.JSONObject; +import com.cdzy.common.enums.Code; import com.cdzy.common.model.JsonResult; import com.cdzy.payment.model.dto.*; import com.cdzy.payment.service.WxPayService; +import com.ebike.feign.clients.StaffFeignClient; +import com.ebike.feign.model.rsp.StaffFeign; import com.mybatisflex.core.paginate.Page; import com.wechat.pay.java.service.payments.model.Transaction; import com.wechat.pay.java.service.refund.model.Refund; @@ -26,7 +30,13 @@ public class EbikeWxPaymentController { @Resource private WxPayService wxPayService; + @Resource + private StaffFeignClient staffFeignClient; + /** + * 关闭订单 + * + * @param orderId 骑行订单id /** * 微信支付下单 * @@ -84,7 +94,15 @@ public class EbikeWxPaymentController { */ @PostMapping("/refund") public JsonResult refund(@RequestBody ReqRefundDto refundDto) { - HandleNotifyResult r = wxPayService.refund(refundDto); + // 获取审核人信息 + String tokenValue = StpUtil.getTokenValue(); + String userId = null; + JsonResult result = staffFeignClient.getInfoByToken(tokenValue); + if (result.getCode() == Code.SUCCESS) { + StaffFeign staffFeign = result.getData(); + userId = String.valueOf(staffFeign.getStaffId()); + } + HandleNotifyResult r = wxPayService.refund(refundDto, userId); return r.isSuccess()?JsonResult.success(true):JsonResult.failed(r.getMessage()); } @@ -96,7 +114,15 @@ public class EbikeWxPaymentController { */ @PostMapping("/reviewRefund") public JsonResult reviewRefund(@RequestBody ReqRefundProcessDto processDto) { - boolean r = wxPayService.refundReview(processDto); + // 获取审核人信息 + String tokenValue = StpUtil.getTokenValue(); + String userId = null; + JsonResult result = staffFeignClient.getInfoByToken(tokenValue); + if (result.getCode() == Code.SUCCESS) { + StaffFeign staffFeign = result.getData(); + userId = String.valueOf(staffFeign.getStaffId()); + } + boolean r = wxPayService.refundReview(processDto, userId); return r?JsonResult.success(true):JsonResult.failed("审核失败"); } diff --git a/ebike-payment/src/main/java/com/cdzy/payment/service/WxPayService.java b/ebike-payment/src/main/java/com/cdzy/payment/service/WxPayService.java index a4186e68..25cb799e 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/service/WxPayService.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/service/WxPayService.java @@ -81,17 +81,19 @@ public interface WxPayService { * 审核退款申请 * * @param processDto 退款审核信息 + * @operator 操作人id * @return 退款信息id */ - Boolean refundReview(ReqRefundProcessDto processDto); + Boolean refundReview(ReqRefundProcessDto processDto, String operator); /** * 调用微信退款接口 * * @param refundDto 退款请求 + * @param operator 操作人id * @return 退款信息id */ - HandleNotifyResult refund(ReqRefundDto refundDto); + HandleNotifyResult refund(ReqRefundDto refundDto, String operator); /** diff --git a/ebike-payment/src/main/java/com/cdzy/payment/service/impl/WxPayServiceImpl.java b/ebike-payment/src/main/java/com/cdzy/payment/service/impl/WxPayServiceImpl.java index c635dc16..809ed008 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/service/impl/WxPayServiceImpl.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/service/impl/WxPayServiceImpl.java @@ -373,13 +373,13 @@ public class WxPayServiceImpl implements WxPayService { } @Override - public Boolean refundReview(ReqRefundProcessDto processDto) { + public Boolean refundReview(ReqRefundProcessDto processDto, String operator) { EbikeRefund ebikeRefund = ebikeRefundService.getById(processDto.getRefundId()); if (ebikeRefund == null) { log.error("审核refundReview失败,{} 退款申请不存在", processDto.getRefundId()); return false; } - + ebikeRefund.setReviewOperator(operator); ebikeRefund.setProcessState(processDto.getOperate()); ebikeRefund.setProcessTime(LocalDateTime.now()); ebikeRefund.setRemark(processDto.getReason()); @@ -396,7 +396,7 @@ public class WxPayServiceImpl implements WxPayService { } @Override - public HandleNotifyResult refund(ReqRefundDto refundDto) { + public HandleNotifyResult refund(ReqRefundDto refundDto, String operator) { HandleNotifyResult result_ = new HandleNotifyResult(); result_.setSuccess(false); // 首先验证密码 @@ -451,6 +451,7 @@ public class WxPayServiceImpl implements WxPayService { Refund result = wxRefundService.create(request); // 更新退款信息 if (result != null) { + ebikeRefund.setRefundOperator(operator); ebikeRefund.setOrderId(outTradeNo); ebikeRefund.setTransactionId(transactionId); ebikeRefund.setTotal(amount.getTotal());