From 47d93598c781eb9d10cda69a6a22f4f6828ea6b3 Mon Sep 17 00:00:00 2001 From: 18650502300 <18650502300@163.com> Date: Fri, 8 Nov 2024 14:39:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/system/domain/EtRefundVO.java | 11 ++++ .../ruoyi/system/mapper/EtRefundMapper.java | 11 +++- .../service/impl/EtOrderServiceImpl.java | 64 +++++++++++++++++-- .../mapper/system/EtRefundMapper.xml | 27 +++----- 4 files changed, 91 insertions(+), 22 deletions(-) create mode 100644 electripper-system/src/main/java/com/ruoyi/system/domain/EtRefundVO.java diff --git a/electripper-system/src/main/java/com/ruoyi/system/domain/EtRefundVO.java b/electripper-system/src/main/java/com/ruoyi/system/domain/EtRefundVO.java new file mode 100644 index 0000000..3c7ac1b --- /dev/null +++ b/electripper-system/src/main/java/com/ruoyi/system/domain/EtRefundVO.java @@ -0,0 +1,11 @@ +package com.ruoyi.system.domain; + +import lombok.Data; + +@Data +public class EtRefundVO extends EtRefund{ + + private String userName; + + private String phone; +} diff --git a/electripper-system/src/main/java/com/ruoyi/system/mapper/EtRefundMapper.java b/electripper-system/src/main/java/com/ruoyi/system/mapper/EtRefundMapper.java index 9ea65c1..8fce750 100644 --- a/electripper-system/src/main/java/com/ruoyi/system/mapper/EtRefundMapper.java +++ b/electripper-system/src/main/java/com/ruoyi/system/mapper/EtRefundMapper.java @@ -5,6 +5,7 @@ import java.util.List; import com.ruoyi.system.domain.EtOrder; import com.ruoyi.system.domain.EtOrderQuery; import com.ruoyi.system.domain.EtRefund; +import com.ruoyi.system.domain.EtRefundVO; /** * 退款订单Mapper接口 @@ -36,7 +37,7 @@ public interface EtRefundMapper * @param orderQuery 退款订单 * @return 退款订单集合 */ - public List selectEtRefundList2(EtOrderQuery orderQuery); + public List selectEtRefundList2(EtOrderQuery orderQuery); /** * 新增退款订单 @@ -101,4 +102,12 @@ public interface EtRefundMapper * @return 结果 */ List checkUserDeposit(Long userId); + + /** + * 根据订单号数组查询退款订单对象 + * + * @param orderNos 订单号数组 + * @return 退款订单数组 + */ + List selectEtRefundByOrderNos(List orderNos); } diff --git a/electripper-system/src/main/java/com/ruoyi/system/service/impl/EtOrderServiceImpl.java b/electripper-system/src/main/java/com/ruoyi/system/service/impl/EtOrderServiceImpl.java index 30f75f7..a651891 100644 --- a/electripper-system/src/main/java/com/ruoyi/system/service/impl/EtOrderServiceImpl.java +++ b/electripper-system/src/main/java/com/ruoyi/system/service/impl/EtOrderServiceImpl.java @@ -49,6 +49,7 @@ import java.util.*; import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; /** * 订单Service业务层处理 @@ -400,17 +401,16 @@ public class EtOrderServiceImpl implements IEtOrderService etOrder.setRefundType(ServiceConstants.REFUND_TYPE_DEPOSIT); etOrder.setRefundResult(Constants.SUCCESS2); PageUtils.startPage(); - List etRefunds = etRefundMapper.selectEtRefundList2(etOrder); + List etRefunds = etRefundMapper.selectEtRefundList2(etOrder); etRefunds.forEach(etRefund -> { - AsUser asUser = asUserMapper.selectUserById(etRefund.getUserId()); RechargeVo rechargeVo = new RechargeVo(); BeanUtils.copyProperties(etRefund,rechargeVo); rechargeVo.setOutTradeNo(etRefund.getRefundNo()); rechargeVo.setPayTime(etRefund.getCreateTime()); rechargeVo.setTotalFee(etRefund.getAmount()); rechargeVo.setUserId(etRefund.getUserId()); - rechargeVo.setUserName(asUser.getUserName()); - rechargeVo.setPhonenumber(asUser.getPhonenumber()); + rechargeVo.setUserName(etRefund.getUserName()); + rechargeVo.setPhonenumber(etRefund.getPhone()); rechargeVo.setRechargeStatus(ServiceConstants.RECHARGE_STATUS_REFUND_SUCCESS); rechargeVo.setRechargeType(ServiceConstants.ORDER_TYPE_DEPOSIT_REFUND); rechargeVoList.add(rechargeVo); @@ -436,6 +436,62 @@ public class EtOrderServiceImpl implements IEtOrderService rechargeVoList.sort(Comparator.comparing(RechargeVo::getPayTime).reversed()); return rechargeVoList; } + // 获取符合条件的订单列表 + private List fetchEtOrders(EtOrderQuery etOrder) { + if (StrUtil.isBlank(etOrder.getStatus()) || "1".equals(etOrder.getStatus())) { + etOrder.setPaid(ServiceConstants.ORDER_PAY_STATUS_PAID); + etOrder.setStatus(ServiceConstants.ORDER_STATUS_ORDER_END); + return etOrderMapper.selectEtOrderListNoRoute2(etOrder); + } + return Collections.emptyList(); + } + + // 获取所有订单号的退款记录,并按订单号分组 + private Map> fetchRefundsForOrders(List etOrders) { + List orderNos = etOrders.stream().map(EtOrder::getOrderNo).collect(Collectors.toList()); + if (orderNos.isEmpty()) { + return Collections.emptyMap(); // 如果没有订单号,直接返回空的 Map + } + // 批量查询退款记录 + List etRefunds = etRefundMapper.selectEtRefundByOrderNos(orderNos); + return etRefunds.stream().collect(Collectors.groupingBy(EtRefund::getOrderNo)); + } + + // 创建 RechargeVo 并填充订单和退款信息 + private RechargeVo createRechargeVoFromOrder(EtOrder etOrder1, List etRefunds) { + RechargeVo rechargeVo = new RechargeVo(); + BeanUtils.copyProperties(etOrder1, rechargeVo); + rechargeVo.setRechargeStatus(ServiceConstants.RECHARGE_STATUS_SUCCESS); + rechargeVo.setRechargeType(ServiceConstants.ORDER_TYPE_DEPOSIT); + rechargeVo.setTotalFee(etOrder1.getPayFee()); + rechargeVo.setDepositDeduction(etOrder1.getDepositDeduction()); + + // 设置是否退款的字段 + if (etRefunds != null && !etRefunds.isEmpty()) { + rechargeVo.setIsRefunded(true); // 如果有退款记录,设置为已退款 + } else { + rechargeVo.setIsRefunded(false); // 如果没有退款记录,设置为未退款 + } + + return rechargeVo; + } + + // 根据 isRefund 条件过滤记录 + private void filterRefundedRecords(EtOrderQuery etOrder, List rechargeVoList) { + List isRefund = etOrder.getIsRefund(); + if (isRefund == null || isRefund.isEmpty()) { + return; // 如果没有指定退款条件,不做任何过滤 + } + + // 如果只包含 "0",则过滤未退款记录 + if (isRefund.contains("0") && !isRefund.contains("1")) { + rechargeVoList.removeIf(rechargeVo -> Boolean.TRUE.equals(rechargeVo.getIsRefunded())); + } + // 如果只包含 "1",则过滤已退款记录 + if (isRefund.contains("1") && !isRefund.contains("0")) { + rechargeVoList.removeIf(rechargeVo -> !Boolean.TRUE.equals(rechargeVo.getIsRefunded())); + } + } /** * 获取当前正在骑行中的订单 diff --git a/electripper-system/src/main/resources/mapper/system/EtRefundMapper.xml b/electripper-system/src/main/resources/mapper/system/EtRefundMapper.xml index a227647..a0cb0f7 100644 --- a/electripper-system/src/main/resources/mapper/system/EtRefundMapper.xml +++ b/electripper-system/src/main/resources/mapper/system/EtRefundMapper.xml @@ -4,22 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - + select id, refund_no, order_no, user_id, amount, dispatch_fee, manage_fee, riding_fee, appointment_fee, type, reason, create_time, item_desc,refund_result from et_refund @@ -50,7 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + +