From 518bfb8ae9986e1efca89cc6ed20c4e465d695a0 Mon Sep 17 00:00:00 2001 From: jkcdev Date: Mon, 19 May 2025 17:13:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E9=80=80=E6=AC=BE=E5=88=97?= =?UTF-8?q?=E8=A1=A8=EF=BC=8C=E5=A2=9E=E5=8A=A0=E8=BD=A6=E8=BE=86=E7=BC=96?= =?UTF-8?q?=E5=8F=B7=E3=80=81=E9=AA=91=E8=A1=8C=E8=B5=B7=E6=AD=A2=E6=97=B6?= =?UTF-8?q?=E9=97=B4=EF=BC=8C=E4=BE=BF=E4=BA=8E=E6=9F=A5=E8=AF=A2=E9=AA=91?= =?UTF-8?q?=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