From 518bfb8ae9986e1efca89cc6ed20c4e465d695a0 Mon Sep 17 00:00:00 2001 From: jkcdev Date: Mon, 19 May 2025 17:13:09 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=AE=8C=E6=88=90=E9=80=80=E6=AC=BE?= =?UTF-8?q?=E5=88=97=E8=A1=A8=EF=BC=8C=E5=A2=9E=E5=8A=A0=E8=BD=A6=E8=BE=86?= =?UTF-8?q?=E7=BC=96=E5=8F=B7=E3=80=81=E9=AA=91=E8=A1=8C=E8=B5=B7=E6=AD=A2?= =?UTF-8?q?=E6=97=B6=E9=97=B4=EF=BC=8C=E4=BE=BF=E4=BA=8E=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E9=AA=91=E8=A1=8C=E8=BD=A8=E8=BF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EbikeWxPaymentController.java | 4 +- .../cdzy/payment/model/dto/ReqRefundDto.java | 2 +- .../model/dto/ReqRefundProcessDto.java | 2 +- .../payment/model/dto/ResApplyRefundDto.java | 15 ++ .../payment/model/dto/ResCloseRefundDto.java | 15 ++ .../payment/model/dto/ResHandleRefundDto.java | 15 ++ .../model/dto/ResProcessedRefundDto.java | 15 ++ .../payment/model/entity/EbikeRefund.java | 15 ++ .../payment/model/entity/EbikeUserOrders.java | 136 ++++++++++++++++++ .../service/impl/EbikeRefundServiceImpl.java | 19 ++- .../service/impl/WxPayServiceImpl.java | 23 ++- 11 files changed, 249 insertions(+), 12 deletions(-) create mode 100644 ebike-payment/src/main/java/com/cdzy/payment/model/entity/EbikeUserOrders.java 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 d21d6517..81a0274b 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 @@ -68,12 +68,12 @@ public class EbikeWxPaymentController { * 退款申请 * * @param refundDto 退款信息 - * @return 退款成功返回true,否则返回false + * @return 退款成功返回主键id,否则返回失败 */ @PostMapping("/refundApply") public JsonResult refundApply(@RequestBody EbikeRefundDto refundDto) { String r = wxPayService.refundApply(refundDto.getOrderId(), refundDto.getReason()); - return r == null?JsonResult.failed("退款失败"):JsonResult.success(r); + return r == null?JsonResult.failed("退款申请失败"):JsonResult.success((Object) r); } /** diff --git a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ReqRefundDto.java b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ReqRefundDto.java index e3450162..5619b426 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ReqRefundDto.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ReqRefundDto.java @@ -17,7 +17,7 @@ import java.util.List; public class ReqRefundDto { /** - * 退款单号 + * 主键id */ private String refundId; diff --git a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ReqRefundProcessDto.java b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ReqRefundProcessDto.java index b02dd25b..a8683fed 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ReqRefundProcessDto.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ReqRefundProcessDto.java @@ -17,7 +17,7 @@ import java.util.List; public class ReqRefundProcessDto { /** - * 退款单号 + * 主键id */ private String refundId; diff --git a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ResApplyRefundDto.java b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ResApplyRefundDto.java index 32830342..e09e1166 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ResApplyRefundDto.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ResApplyRefundDto.java @@ -76,4 +76,19 @@ public class ResApplyRefundDto { */ private String applicant; + /** + * 骑行设备编号 + */ + private String ebikeCode;; + + /** + * 骑行开始时间 + */ + private LocalDateTime startTime; + + /** + * 骑行开始时间 + */ + private LocalDateTime endTime; + } diff --git a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ResCloseRefundDto.java b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ResCloseRefundDto.java index 91e5808b..83211bb6 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ResCloseRefundDto.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ResCloseRefundDto.java @@ -86,4 +86,19 @@ public class ResCloseRefundDto { */ private String applicant; + /** + * 骑行设备编号 + */ + private String ebikeCode;; + + /** + * 骑行开始时间 + */ + private LocalDateTime startTime; + + /** + * 骑行开始时间 + */ + private LocalDateTime endTime; + } diff --git a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ResHandleRefundDto.java b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ResHandleRefundDto.java index 6b0aedc6..1d83acdc 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ResHandleRefundDto.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ResHandleRefundDto.java @@ -81,4 +81,19 @@ public class ResHandleRefundDto { */ private String applicant; + /** + * 骑行设备编号 + */ + private String ebikeCode;; + + /** + * 骑行开始时间 + */ + private LocalDateTime startTime; + + /** + * 骑行开始时间 + */ + private LocalDateTime endTime; + } diff --git a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ResProcessedRefundDto.java b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ResProcessedRefundDto.java index f76d9195..5b9e190e 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ResProcessedRefundDto.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ResProcessedRefundDto.java @@ -106,4 +106,19 @@ public class ResProcessedRefundDto { */ private String applicant; + /** + * 骑行设备编号 + */ + private String ebikeCode;; + + /** + * 骑行开始时间 + */ + private LocalDateTime startTime; + + /** + * 骑行开始时间 + */ + private LocalDateTime endTime; + } diff --git a/ebike-payment/src/main/java/com/cdzy/payment/model/entity/EbikeRefund.java b/ebike-payment/src/main/java/com/cdzy/payment/model/entity/EbikeRefund.java index ebdc9036..e6d96ffe 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/model/entity/EbikeRefund.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/model/entity/EbikeRefund.java @@ -34,6 +34,11 @@ public class EbikeRefund implements Serializable { @Id private String refundId; + /** + * 退款单号 + */ + private String refundOrder; + /** * 骑行订单号 */ @@ -116,4 +121,14 @@ public class EbikeRefund implements Serializable { */ private LocalDateTime processTime ; + /** + * 审核人 + */ + private String reviewOperator ; + + /** + * 退款人 + */ + private String refundOperator ; + } diff --git a/ebike-payment/src/main/java/com/cdzy/payment/model/entity/EbikeUserOrders.java b/ebike-payment/src/main/java/com/cdzy/payment/model/entity/EbikeUserOrders.java new file mode 100644 index 00000000..3fb655b9 --- /dev/null +++ b/ebike-payment/src/main/java/com/cdzy/payment/model/entity/EbikeUserOrders.java @@ -0,0 +1,136 @@ +package com.cdzy.payment.model.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.Table; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 用户订单表 实体类。 + * + * @author attiya + * @since 2025-03-28 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("ebike_user_orders") +public class EbikeUserOrders implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 分布式ID(雪花算法或业务前缀+序列) + */ + @Id + private Long orderId; + + /** + * 用户ID,关联用户表 + */ + private String userId; + + private String bikeId; + + /** + * 订单类型:1-单次骑行 2-骑行卡购买 3-会员卡续费 + */ + private Integer orderType; + + /** + * 状态:0-进行中 1-已取消 2-待支付 3-已支付 4-退款中 5-已退款 + */ + @Column(onInsertValue = "0") + private Integer status; + + /** + * 订单总金额(单位:元) + */ + private BigDecimal totalAmount; + + /** + * 实付金额(扣除卡券优惠后) + */ + private BigDecimal actualAmount; + + /** + * 骑行开始时间(仅骑行订单有效) + */ + private LocalDateTime startTime; + + /** + * 骑行结束时间(仅骑行订单有效) + */ + private LocalDateTime endTime; + + /** + * 支付成功时间 + */ + private LocalDateTime paymentTime; + + /** + * 支付方式:wechat/alipay/balance + */ + private String paymentMethod; + + /** + * 使用卡券ID集合(JSON数组) + */ + private String couponIds; + + /** + * 优惠明细(结构化存储,便于对账) + */ + private String discountDetails; + + /** + * 骑行设备编号(仅骑行订单有效) + */ + private String bikeCode; + + /** + * 地理位置GeoHash编码(用于区域优惠分析) + */ + private String geoHash; + + /** + * 创建时间 + */ + @Column(onInsertValue = "now()") + private LocalDateTime createdAt; + + /** + * 更新时间 + */ + @Column(onUpdateValue = "now()") + private LocalDateTime updatedAt; + + /** + * 骑行起始点 + */ + private String ridePoint; + + /** + * 骑行结束点 + */ + private String returnPoint; + + /** + * 0-未临时锁车 -1临时锁车 + */ + private Integer tempLock; + + @Column(isLogicDelete = true,onInsertValue = "0") + private Integer isDelete; + +} diff --git a/ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikeRefundServiceImpl.java b/ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikeRefundServiceImpl.java index 25a78956..0ec226c1 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikeRefundServiceImpl.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikeRefundServiceImpl.java @@ -20,6 +20,7 @@ import java.util.List; import static com.cdzy.payment.model.entity.table.EbikePaymentTableDef.EBIKE_PAYMENT; import static com.cdzy.payment.model.entity.table.EbikeRefundTableDef.EBIKE_REFUND; +import static com.cdzy.payment.model.entity.table.EbikeUserOrdersTableDef.EBIKE_USER_ORDERS; import static com.cdzy.payment.model.entity.table.EbikeUserTableDef.EBIKE_USER; import static com.cdzy.payment.model.enums.RefundProcessState.*; import static com.mybatisflex.core.constant.FuncName.*; @@ -91,10 +92,12 @@ public class EbikeRefundServiceImpl extends ServiceImpl Date: Tue, 20 May 2025 10:54:21 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=AE=8C=E6=88=90=E9=80=80=E6=AC=BE?= =?UTF-8?q?=E5=88=97=E8=A1=A8=EF=BC=8C=E5=A2=9E=E5=8A=A0=E8=BD=A6=E8=BE=86?= =?UTF-8?q?=E7=BC=96=E5=8F=B7=E3=80=81=E9=AA=91=E8=A1=8C=E8=B5=B7=E6=AD=A2?= =?UTF-8?q?=E6=97=B6=E9=97=B4=EF=BC=8C=E4=BE=BF=E4=BA=8E=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E9=AA=91=E8=A1=8C=E8=BD=A8=E8=BF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/clients/OrdersFeignClient.java | 24 +++++++++++++ .../controller/EbikeUserOrdersController.java | 36 +++++++++++++++++++ .../com/cdzy/orders/enums/OrderStatus.java | 12 +++++++ .../orders/service/UserOrdersService.java | 18 ++++++++++ .../service/impl/UserOrdersServiceImpl.java | 30 ++++++++++++++++ 5 files changed, 120 insertions(+) diff --git a/ebike-feign/src/main/java/com/ebike/feign/clients/OrdersFeignClient.java b/ebike-feign/src/main/java/com/ebike/feign/clients/OrdersFeignClient.java index 58354018..26571287 100644 --- a/ebike-feign/src/main/java/com/ebike/feign/clients/OrdersFeignClient.java +++ b/ebike-feign/src/main/java/com/ebike/feign/clients/OrdersFeignClient.java @@ -63,6 +63,14 @@ public interface OrdersFeignClient { @GetMapping("userOrders/refund") JsonResult refund(@RequestParam("orderId")Long orderId); + /** + * 订单发起退款申请 + * @param orderId 订单ID + * @return @ {@code 200} 成功,{@code 500} 失败 + */ + @GetMapping("userOrders/refundApply") + JsonResult refundApply(@RequestParam("orderId")Long orderId); + /** * 订单退款完成 * @param orderId 订单ID @@ -70,4 +78,20 @@ public interface OrdersFeignClient { */ @GetMapping("userOrders/doneRefund") JsonResult doneRefund(@RequestParam("orderId")Long orderId); + + /** + * 订单退款驳回 + * @param orderId 订单ID + * @return @ {@code 200} 成功,{@code 500} 失败 + */ + @GetMapping("userOrders/rejectRefund") + JsonResult rejectRefund(@RequestParam("orderId")Long orderId); + + /** + * 订单退款失败 + * @param orderId 订单ID + * @return @ {@code 200} 成功,{@code 500} 失败 + */ + @GetMapping("userOrders/failRefund") + JsonResult failRefund(@RequestParam("orderId")Long orderId); } diff --git a/ebike-orders/src/main/java/com/cdzy/orders/controller/EbikeUserOrdersController.java b/ebike-orders/src/main/java/com/cdzy/orders/controller/EbikeUserOrdersController.java index e1172294..1953f060 100644 --- a/ebike-orders/src/main/java/com/cdzy/orders/controller/EbikeUserOrdersController.java +++ b/ebike-orders/src/main/java/com/cdzy/orders/controller/EbikeUserOrdersController.java @@ -150,6 +150,18 @@ public class EbikeUserOrdersController { return JsonResult.success(); } + /** + * 订单退款申请。 + * + * @param orderId 订单ID + * @ {@code 200} 添加成功,{@code 500} 添加失败 + */ + @GetMapping("refundApply") + public JsonResult refundApply(@RequestParam("orderId")Long orderId) { + userOrdersService.refundApply(orderId); + return JsonResult.success(); + } + /** * 订单退款。 * @@ -174,6 +186,30 @@ public class EbikeUserOrdersController { return JsonResult.success(); } + /** + * 订单退款驳回。 + * + * @param orderId 订单ID + * @ {@code 200} 添加成功,{@code 500} 添加失败 + */ + @GetMapping("rejectRefund") + public JsonResult rejectRefund(@RequestParam("orderId")Long orderId) { + userOrdersService.rejectRefund(orderId); + return JsonResult.success(); + } + + /** + * 订单退款失败。 + * + * @param orderId 订单ID + * @ {@code 200} 添加成功,{@code 500} 添加失败 + */ + @GetMapping("failRefund") + public JsonResult failRefund(@RequestParam("orderId")Long orderId) { + userOrdersService.failRefund(orderId); + return JsonResult.success(); + } + /** * 检查车辆是否在运营区内。 diff --git a/ebike-orders/src/main/java/com/cdzy/orders/enums/OrderStatus.java b/ebike-orders/src/main/java/com/cdzy/orders/enums/OrderStatus.java index e81c4cc6..edf2981c 100644 --- a/ebike-orders/src/main/java/com/cdzy/orders/enums/OrderStatus.java +++ b/ebike-orders/src/main/java/com/cdzy/orders/enums/OrderStatus.java @@ -35,4 +35,16 @@ public interface OrderStatus { * 已退款 */ int REFUNDED = 5; + /** + * 退款申请中 + */ + int REFUND_APPLYING = 6; + /** + * 退款申请驳回 + */ + int REFUND_REJECTED = 7; + /** + * 退款失败 + */ + int REFUND_FAILED = 8; } diff --git a/ebike-orders/src/main/java/com/cdzy/orders/service/UserOrdersService.java b/ebike-orders/src/main/java/com/cdzy/orders/service/UserOrdersService.java index 83f92cc7..baad3c63 100644 --- a/ebike-orders/src/main/java/com/cdzy/orders/service/UserOrdersService.java +++ b/ebike-orders/src/main/java/com/cdzy/orders/service/UserOrdersService.java @@ -87,6 +87,12 @@ public interface UserOrdersService extends IService { */ void payment(ResFeignOrderPaymentDto paymentDto); + /** + * 订单发起退款 + * @param orderId 订单ID + */ + void refundApply(Long orderId); + /** * 订单退款 * @param orderId 订单ID @@ -99,6 +105,18 @@ public interface UserOrdersService extends IService { */ void doneRefund(Long orderId); + /** + * 订单退款驳回 + * @param orderId 订单ID + */ + void rejectRefund(Long orderId); + + /** + * 订单退款失败 + * @param orderId 订单ID + */ + void failRefund(Long orderId); + /** * 获取订单详情 * @param orderId 订单id diff --git a/ebike-orders/src/main/java/com/cdzy/orders/service/impl/UserOrdersServiceImpl.java b/ebike-orders/src/main/java/com/cdzy/orders/service/impl/UserOrdersServiceImpl.java index bde5c907..32d38433 100644 --- a/ebike-orders/src/main/java/com/cdzy/orders/service/impl/UserOrdersServiceImpl.java +++ b/ebike-orders/src/main/java/com/cdzy/orders/service/impl/UserOrdersServiceImpl.java @@ -304,6 +304,16 @@ public class UserOrdersServiceImpl extends ServiceImpl Date: Tue, 20 May 2025 10:55:58 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=80=E6=AC=BE?= =?UTF-8?q?=E5=90=84=E4=B8=AA=E7=8E=AF=E8=8A=82=E5=90=8C=E6=AD=A5=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=8A=B6=E6=80=81=E7=9A=84=E5=AE=9E=E7=8E=B0=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A06-=E9=80=80=E6=AC=BE=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E4=B8=AD=207-=E9=80=80=E6=AC=BE=E9=A9=B3=E5=9B=9E=208-?= =?UTF-8?q?=E9=80=80=E6=AC=BE=E5=A4=B1=E8=B4=A5=E4=B8=89=E7=A7=8D=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EbikeWxPaymentController.java | 7 +----- .../service/impl/EbikeRefundServiceImpl.java | 17 ++++++++------ .../service/impl/WxPayServiceImpl.java | 23 ++++++++++++------- 3 files changed, 26 insertions(+), 21 deletions(-) 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 81a0274b..d1f73651 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 @@ -85,12 +85,7 @@ public class EbikeWxPaymentController { @PostMapping("/refund") public JsonResult refund(@RequestBody ReqRefundDto refundDto) { HandleNotifyResult r = wxPayService.refund(refundDto); - if (r.isSuccess()) - return JsonResult.success(); - JSONObject error = JSONObject.parseObject(r.getMessage()); - if (error==null) - return JsonResult.failed(r.getMessage()); - return JsonResult.failed("退款失败", error); + return r.isSuccess()?JsonResult.success(true):JsonResult.failed(r.getMessage()); } /** diff --git a/ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikeRefundServiceImpl.java b/ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikeRefundServiceImpl.java index 0ec226c1..b4dbc195 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikeRefundServiceImpl.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikeRefundServiceImpl.java @@ -42,7 +42,7 @@ public class EbikeRefundServiceImpl extends ServiceImpl ordersFeignClient.refund(orderId); + case SUCCESS -> ordersFeignClient.doneRefund(orderId); + case ABNORMAL -> ordersFeignClient.failRefund(orderId); } return updateById(ebikeRefund); } 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 cd44ffe9..229e36e0 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 @@ -366,7 +366,6 @@ public class WxPayServiceImpl implements WxPayService { ebikeRefund.setRefundApply(ebikePayment.getTotal()); ebikeRefund.setTransactionId(transactionId); ebikeRefund.setReason(reason); - ebikeRefund.setStatus(String.valueOf(Status.PROCESSING.ordinal())); ebikeRefund.setProcessState(String.valueOf(RefundProcessState.applying.ordinal())); ebikeRefund.setSource(String.valueOf(RefoundApplySource.user.ordinal())); ebikeRefundService.saveRefundResult(ebikeRefund); @@ -388,6 +387,10 @@ public class WxPayServiceImpl implements WxPayService { ebikeRefund.setRefund(ebikeRefund.getRefundApply()); ebikeRefund.setRefundMethod(processDto.getMethod()); } + if (String.valueOf(RefundProcessState.closed.ordinal()).equals(processDto.getOperate())) { + // 更新订单状态 + ordersFeignClient.rejectRefund(Long.valueOf(ebikeRefund.getOrderId())); + } return ebikeRefundService.updateById(ebikeRefund); } @@ -452,12 +455,11 @@ public class WxPayServiceImpl implements WxPayService { ebikeRefund.setTotal(amount.getTotal()); ebikeRefund.setStatus(String.valueOf(result.getStatus().ordinal())); ebikeRefund.setCurrency(amount.getCurrency()); - if (Status.SUCCESS.equals(result.getStatus())) { - ebikeRefund.setRefund(result.getAmount().getRefund().doubleValue() / 100.0); - ebikeRefund.setRefundTime(LocalDateTime.now()); - ebikeRefund.setRemark(refundDto.getRemark()); - ebikeRefund.setRefundTransactionId(result.getRefundId()); - } + ebikeRefund.setRefund(result.getAmount().getRefund().doubleValue() / 100.0); + ebikeRefund.setRefundTime(LocalDateTime.now()); + ebikeRefund.setRemark(refundDto.getRemark()); + ebikeRefund.setProcessState(String.valueOf(RefundProcessState.processed.ordinal())); + ebikeRefund.setRefundTransactionId(result.getRefundId()); ebikeRefundService.updateById(ebikeRefund); result_.setSuccess(true); result_.setMessage("退款成功"); @@ -468,7 +470,12 @@ public class WxPayServiceImpl implements WxPayService { return result_; } catch (Exception e) { String err = logError("退款refund", e); - result_.setMessage(err); + try { + JSONObject json = JSON.parseObject(err); + result_.setMessage(json.getString("message")); + }catch (Exception ex) { + result_.setMessage(err); + } return result_; } } From 579c5fc6bf7b1ba6ebe750257a1f77e33f1aa2f5 Mon Sep 17 00:00:00 2001 From: jkcdev Date: Tue, 20 May 2025 11:23:25 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=80=E6=AC=BE?= =?UTF-8?q?=E5=90=84=E4=B8=AA=E7=8E=AF=E8=8A=82=E5=90=8C=E6=AD=A5=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=8A=B6=E6=80=81=E7=9A=84=E5=AE=9E=E7=8E=B0=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A06-=E9=80=80=E6=AC=BE=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E4=B8=AD=207-=E9=80=80=E6=AC=BE=E9=A9=B3=E5=9B=9E=208-?= =?UTF-8?q?=E9=80=80=E6=AC=BE=E5=A4=B1=E8=B4=A5=E4=B8=89=E7=A7=8D=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cdzy/payment/service/impl/WxPayServiceImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 229e36e0..c635dc16 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 @@ -386,8 +386,9 @@ public class WxPayServiceImpl implements WxPayService { if (String.valueOf(RefundProcessState.processing.ordinal()).equals(processDto.getOperate())) { ebikeRefund.setRefund(ebikeRefund.getRefundApply()); ebikeRefund.setRefundMethod(processDto.getMethod()); - } - if (String.valueOf(RefundProcessState.closed.ordinal()).equals(processDto.getOperate())) { + // 更新订单状态 + ordersFeignClient.refund(Long.valueOf(ebikeRefund.getOrderId())); + }else if (String.valueOf(RefundProcessState.closed.ordinal()).equals(processDto.getOperate())) { // 更新订单状态 ordersFeignClient.rejectRefund(Long.valueOf(ebikeRefund.getOrderId())); }