From e70df6f7f72bfe53069fd3799395ad32e5d2399c963885942b14c56975dfe8c6 Mon Sep 17 00:00:00 2001 From: yanglei Date: Sun, 4 Jan 2026 10:24:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E8=AE=A2=E5=8D=95id=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E9=80=80=E6=AC=BE=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/model/vo/EbikeOrderBaseInfoVo.java | 2 +- .../model/vo/EbikePaymentCostDetailVo.java | 9 +- .../vo/EbikeRefundApplyOrderBaseInfoVo.java | 60 +++++++++++++ .../vo/EbikeRefundApplyOrderDetailInfoVo.java | 9 -- .../model/vo/EbikeRefundApplyOrderInfoVo.java | 4 +- .../model/vo/EbikeRefundApplyRefundVo.java | 76 +++++++++++++++++ .../vo/EbikeRefundApplyUserBaseInfoVo.java | 24 ------ .../user/service/EbikePaymentService.java | 11 --- .../impl/EbikeOrderDetailServiceImpl.java | 4 +- .../service/impl/EbikePaymentServiceImpl.java | 47 +++++------ .../service/impl/EbikeRefundServiceImpl.java | 84 ++++++++++--------- 11 files changed, 210 insertions(+), 120 deletions(-) create mode 100644 ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyRefundVo.java delete mode 100644 ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyUserBaseInfoVo.java diff --git a/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeOrderBaseInfoVo.java b/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeOrderBaseInfoVo.java index 28c86b0..95552a1 100644 --- a/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeOrderBaseInfoVo.java +++ b/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeOrderBaseInfoVo.java @@ -22,7 +22,7 @@ import java.time.LocalDateTime; public class EbikeOrderBaseInfoVo { /** - * 订单编号 + * 订单id */ private Long orderId; diff --git a/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikePaymentCostDetailVo.java b/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikePaymentCostDetailVo.java index 9294e9e..3d1ab2d 100644 --- a/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikePaymentCostDetailVo.java +++ b/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikePaymentCostDetailVo.java @@ -34,12 +34,7 @@ public class EbikePaymentCostDetailVo implements Serializable { private String detailName; /** - * 数量 + * 费用金额 */ - private Integer quantity; - - /** - * 单价(单位:元) - */ - private BigDecimal unitPrice; + private BigDecimal detailAmount; } diff --git a/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyOrderBaseInfoVo.java b/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyOrderBaseInfoVo.java index 91c4a7e..46e5ee0 100644 --- a/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyOrderBaseInfoVo.java +++ b/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyOrderBaseInfoVo.java @@ -97,4 +97,64 @@ public class EbikeRefundApplyOrderBaseInfoVo { * 支付订单号 */ private String tradingNumber; + + /** + * 主键ID + */ + private Long refundId; + + /** + * 微信支付订单号 + */ + private String transactionId; + + /** + * 退款单号 + */ + private String refundOrderId; + + /** + * 微信退款状态;0退款成功 1关闭 2退款中 3异常 + */ + private Integer refundStatus; + + /** + * 退款金额 + */ + private BigDecimal refund; + + /** + * 问题类型:1-还车点误判 2-禁停区误判 3-服务区外误判 4-车辆故障 5-开启失败 6-无法换车 7-车辆没电 + */ + private Integer problemType; + + /** + * 退款问题描述 + */ + private String problemDescription; + + /** + * 退款方式;0原路返回,1余额,2线下退款 + */ + private Integer refundMethod; + + /** + * 审核状态 1-已同意 2-申请中 3-已驳回 + */ + private Integer processStatus; + + /** + * 驳回原因/退款备注 + */ + private String remark; + + /** + * 驳回/通过时间 + */ + private LocalDateTime processTime; + + /** + * 退款单创建时间 + */ + private LocalDateTime refundCreateTime; } diff --git a/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyOrderDetailInfoVo.java b/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyOrderDetailInfoVo.java index 6946f30..497250e 100644 --- a/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyOrderDetailInfoVo.java +++ b/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyOrderDetailInfoVo.java @@ -58,13 +58,4 @@ public class EbikeRefundApplyOrderDetailInfoVo { */ private BigDecimal discountAmount; - /** - * 优惠卷抵扣金额 - */ - private BigDecimal couponAmount; - - /** - * 骑行卡抵扣金额 - */ - private BigDecimal cyclingCardAmount; } diff --git a/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyOrderInfoVo.java b/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyOrderInfoVo.java index a22095f..688ffe9 100644 --- a/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyOrderInfoVo.java +++ b/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyOrderInfoVo.java @@ -17,9 +17,9 @@ public class EbikeRefundApplyOrderInfoVo { private EbikeOrderBaseInfoVo orderInfo; /** - * 用户信息 + * 退款信息 */ - private EbikeRefundApplyUserBaseInfoVo userInfo; + private EbikeRefundApplyRefundVo refundInfo; /** * 费用信息 diff --git a/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyRefundVo.java b/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyRefundVo.java new file mode 100644 index 0000000..a4dfec8 --- /dev/null +++ b/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyRefundVo.java @@ -0,0 +1,76 @@ +package com.cdzy.user.model.vo; + +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 退款申请退款信息 + * + * @author yanglei + * @since 2025-12-31 17:13 + */ +@Data +public class EbikeRefundApplyRefundVo { + + /** + * 主键ID + */ + private Long refundId; + + /** + * 微信支付订单号 + */ + private String transactionId; + + /** + * 退款单号 + */ + private String refundOrderId; + + /** + * 微信退款状态;0退款成功 1关闭 2退款中 3异常 + */ + private Integer refundStatus; + + /** + * 退款金额 + */ + private BigDecimal refund; + + /** + * 问题类型:1-还车点误判 2-禁停区误判 3-服务区外误判 4-车辆故障 5-开启失败 6-无法换车 7-车辆没电 + */ + private Integer problemType; + + /** + * 退款问题描述 + */ + private String problemDescription; + + /** + * 退款方式;0原路返回,1余额,2线下退款 + */ + private Integer refundMethod; + + /** + * 审核状态 1-已同意 2-申请中 3-已驳回 + */ + private Integer processStatus; + + /** + * 驳回原因/退款备注 + */ + private String remark; + + /** + * 驳回/通过时间 + */ + private LocalDateTime processTime; + + /** + * 创建时间 + */ + private LocalDateTime createTime; +} diff --git a/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyUserBaseInfoVo.java b/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyUserBaseInfoVo.java deleted file mode 100644 index 8aba7e9..0000000 --- a/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeRefundApplyUserBaseInfoVo.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.cdzy.user.model.vo; - -import lombok.Data; - -/** - * 退款申请用户基本信息 - * - * @author yanglei - * @since 2025-10-17 14:41 - */ - -@Data -public class EbikeRefundApplyUserBaseInfoVo { - - /** - * 用户昵称 - */ - private String userName; - - /** - * 用户手机号 - */ - private String phone; -} diff --git a/ebike-user/src/main/java/com/cdzy/user/service/EbikePaymentService.java b/ebike-user/src/main/java/com/cdzy/user/service/EbikePaymentService.java index fb4a0b5..82db48c 100644 --- a/ebike-user/src/main/java/com/cdzy/user/service/EbikePaymentService.java +++ b/ebike-user/src/main/java/com/cdzy/user/service/EbikePaymentService.java @@ -1,12 +1,9 @@ package com.cdzy.user.service; import com.cdzy.user.model.entity.EbikePayment; -import com.cdzy.user.model.vo.EbikePaymentCostDetailVo; import com.cdzy.user.model.vo.EbikeRefundApplyOrderBaseInfoVo; import com.mybatisflex.core.service.IService; -import java.util.List; - /** * 用户支付 服务层 * @@ -31,12 +28,4 @@ public interface EbikePaymentService extends IService { * @return 订单详情 */ EbikeRefundApplyOrderBaseInfoVo getOrderDetail(Long orderId); - - /** - * 根据订单id查询订单详情 - * - * @param orderId 订单id - * @return 订单详情 - */ - List getOrderDetailsByOrderId(Long orderId); } diff --git a/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeOrderDetailServiceImpl.java b/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeOrderDetailServiceImpl.java index 1a53caf..3aaa62c 100644 --- a/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeOrderDetailServiceImpl.java +++ b/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeOrderDetailServiceImpl.java @@ -1,6 +1,5 @@ package com.cdzy.user.service.impl; -import com.cdzy.common.enums.GlobalConstants; import com.cdzy.user.mapper.EbikeOrderDetailMapper; import com.cdzy.user.model.entity.EbikeOrderDetail; import com.cdzy.user.model.vo.EbikePaymentCostDetailVo; @@ -35,8 +34,7 @@ public class EbikeOrderDetailServiceImpl extends ServiceImpl getOrderDetailsByOrderId(Long orderId) { - QueryWrapper query = QueryWrapper.create() - .select(EBIKE_ORDER_DETAIL.ALL_COLUMNS) - .from(EBIKE_ORDER_DETAIL) - .where(EBIKE_ORDER_DETAIL.ORDER_ID.eq(orderId)); - List orderDetails = listAs(query, EbikeOrderDetail.class); - - return orderDetails.stream().map(orderDetail -> { - EbikePaymentCostDetailVo payDetailVo = new EbikePaymentCostDetailVo(); - payDetailVo.setDetailType(orderDetail.getDetailType()); - payDetailVo.setDetailName(orderDetail.getDetailName()); - payDetailVo.setDetailId(orderDetail.getDetailId()); - payDetailVo.setQuantity(GlobalConstants.NUMBER_ONE); - payDetailVo.setUnitPrice(orderDetail.getDetailAmount()); - return payDetailVo; - }).toList(); - } - } diff --git a/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeRefundServiceImpl.java b/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeRefundServiceImpl.java index 9e6cd29..10a7e5b 100644 --- a/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeRefundServiceImpl.java +++ b/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeRefundServiceImpl.java @@ -41,6 +41,7 @@ import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; import java.util.Objects; +import java.util.Optional; import java.util.UUID; import static com.cdzy.user.model.entity.table.EbikeOrderTableDef.EBIKE_ORDER; @@ -223,35 +224,30 @@ public class EbikeRefundServiceImpl extends ServiceImpl { - BigDecimal current = detailVo.getDurationFee(); - detailVo.setDurationFee((current != null ? current : BigDecimal.ZERO).add(unitPrice)); + BigDecimal current = payDetailVo.getDetailAmount(); + detailVo.setDurationFee((current != null ? current : BigDecimal.ZERO)); } case 2 -> { - BigDecimal current = detailVo.getBaseFee(); - detailVo.setBaseFee((current != null ? current : BigDecimal.ZERO).add(unitPrice)); + BigDecimal current = payDetailVo.getDetailAmount(); + detailVo.setBaseFee((current != null ? current : BigDecimal.ZERO)); } case 3 -> { - BigDecimal current = detailVo.getOutOfServiceAreaFee(); - detailVo.setOutOfServiceAreaFee((current != null ? current : BigDecimal.ZERO).add(unitPrice)); + BigDecimal current = payDetailVo.getDetailAmount(); + detailVo.setOutOfServiceAreaFee((current != null ? current : BigDecimal.ZERO)); } case 4 -> { - BigDecimal current = detailVo.getOutOfParkingAreaFee(); - detailVo.setOutOfParkingAreaFee((current != null ? current : BigDecimal.ZERO).add(unitPrice)); + BigDecimal current = payDetailVo.getDetailAmount(); + detailVo.setOutOfParkingAreaFee((current != null ? current : BigDecimal.ZERO)); } case 5 -> { - BigDecimal current = detailVo.getNoParkingZoneFee(); - detailVo.setNoParkingZoneFee((current != null ? current : BigDecimal.ZERO).add(unitPrice)); + BigDecimal current = payDetailVo.getDetailAmount(); + detailVo.setNoParkingZoneFee((current != null ? current : BigDecimal.ZERO)); } case 6 -> { - BigDecimal current = detailVo.getHelmetManagementFee(); - detailVo.setHelmetManagementFee((current != null ? current : BigDecimal.ZERO).add(unitPrice)); + BigDecimal current = payDetailVo.getDetailAmount(); + detailVo.setHelmetManagementFee((current != null ? current : BigDecimal.ZERO)); } } } @@ -273,9 +269,9 @@ public class EbikeRefundServiceImpl extends ServiceImpl queryRefundTradeRecordById(EbikeTreadRecordDto reqTradeRecordDto) { QueryWrapper query = QueryWrapper.create() @@ -443,16 +456,6 @@ public class EbikeRefundServiceImpl extends ServiceImpl details = ebikePaymentService.getOrderDetailsByOrderId(orderId); + List details = orderDetailService.getOrderDetailsByOrderId(orderId); if (details != null && !details.isEmpty()) { for (EbikePaymentCostDetailVo detailVo : details) { - BigDecimal unitPrice = detailVo.getUnitPrice(); //1-时长费用 2-起步费用 3-运营区调度费用 4-停车区外调度费用 5-禁停区调度费用 6-头盔使用费用 switch (detailVo.getDetailType()) { - case 1 -> detailInfo.setDurationFee(detailInfo.getDurationFee().add(unitPrice)); - case 2 -> detailInfo.setBaseFee(detailInfo.getBaseFee().add(unitPrice)); - case 3 -> detailInfo.setOutOfServiceAreaFee(detailInfo.getOutOfServiceAreaFee().add(unitPrice)); - case 4 -> detailInfo.setOutOfParkingAreaFee(detailInfo.getOutOfParkingAreaFee().add(unitPrice)); - case 5 -> detailInfo.setNoParkingZoneFee(detailInfo.getNoParkingZoneFee().add(unitPrice)); - case 6 -> detailInfo.setHelmetManagementFee(detailInfo.getHelmetManagementFee().add(unitPrice)); + case 1 -> detailInfo.setDurationFee( + Optional.ofNullable(detailVo.getDetailAmount()).orElse(BigDecimal.ZERO)); + case 2 -> detailInfo.setBaseFee( + Optional.ofNullable(detailVo.getDetailAmount()).orElse(BigDecimal.ZERO)); + case 3 -> detailInfo.setOutOfServiceAreaFee( + Optional.ofNullable(detailVo.getDetailAmount()).orElse(BigDecimal.ZERO)); + case 4 -> detailInfo.setOutOfParkingAreaFee( + Optional.ofNullable(detailVo.getDetailAmount()).orElse(BigDecimal.ZERO)); + case 5 -> detailInfo.setNoParkingZoneFee( + Optional.ofNullable(detailVo.getDetailAmount()).orElse(BigDecimal.ZERO)); + case 6 -> detailInfo.setHelmetManagementFee( + Optional.ofNullable(detailVo.getDetailAmount()).orElse(BigDecimal.ZERO)); } } }