From 657cee6dd880c547c92c686aae66e5bec1d48b3e Mon Sep 17 00:00:00 2001 From: jkcdev Date: Tue, 20 May 2025 14:41:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=80=E6=AC=BE=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E3=80=81=E9=80=80=E6=AC=BE=E7=8E=AF=E8=8A=82=EF=BC=8C?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=93=8D=E4=BD=9C=E4=BA=BAID=EF=BC=8C?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E8=AF=B7=E6=B1=82token=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E7=94=A8=E6=88=B7ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ebike-payment/pom.xml | 6 ++++ .../controller/EbikeWxPaymentController.java | 30 +++++++++++++++++-- .../cdzy/payment/service/WxPayService.java | 6 ++-- .../service/impl/WxPayServiceImpl.java | 7 +++-- 4 files changed, 42 insertions(+), 7 deletions(-) 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());