微调
This commit is contained in:
parent
fdfdddc3b6
commit
47d93598c7
|
@ -0,0 +1,11 @@
|
|||
package com.ruoyi.system.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class EtRefundVO extends EtRefund{
|
||||
|
||||
private String userName;
|
||||
|
||||
private String phone;
|
||||
}
|
|
@ -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<EtRefund> selectEtRefundList2(EtOrderQuery orderQuery);
|
||||
public List<EtRefundVO> selectEtRefundList2(EtOrderQuery orderQuery);
|
||||
|
||||
/**
|
||||
* 新增退款订单
|
||||
|
@ -101,4 +102,12 @@ public interface EtRefundMapper
|
|||
* @return 结果
|
||||
*/
|
||||
List<EtOrder> checkUserDeposit(Long userId);
|
||||
|
||||
/**
|
||||
* 根据订单号数组查询退款订单对象
|
||||
*
|
||||
* @param orderNos 订单号数组
|
||||
* @return 退款订单数组
|
||||
*/
|
||||
List<EtRefund> selectEtRefundByOrderNos(List<String> orderNos);
|
||||
}
|
||||
|
|
|
@ -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<EtRefund> etRefunds = etRefundMapper.selectEtRefundList2(etOrder);
|
||||
List<EtRefundVO> 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<EtOrder> 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<String, List<EtRefund>> fetchRefundsForOrders(List<EtOrder> etOrders) {
|
||||
List<String> orderNos = etOrders.stream().map(EtOrder::getOrderNo).collect(Collectors.toList());
|
||||
if (orderNos.isEmpty()) {
|
||||
return Collections.emptyMap(); // 如果没有订单号,直接返回空的 Map
|
||||
}
|
||||
// 批量查询退款记录
|
||||
List<EtRefund> etRefunds = etRefundMapper.selectEtRefundByOrderNos(orderNos);
|
||||
return etRefunds.stream().collect(Collectors.groupingBy(EtRefund::getOrderNo));
|
||||
}
|
||||
|
||||
// 创建 RechargeVo 并填充订单和退款信息
|
||||
private RechargeVo createRechargeVoFromOrder(EtOrder etOrder1, List<EtRefund> 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<RechargeVo> rechargeVoList) {
|
||||
List<String> 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()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前正在骑行中的订单
|
||||
|
|
|
@ -4,22 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.system.mapper.EtRefundMapper">
|
||||
|
||||
<resultMap type="EtRefund" id="EtRefundResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="refundNo" column="refund_no" />
|
||||
<result property="orderNo" column="order_no" />
|
||||
<result property="userId" column="user_id" />
|
||||
<result property="amount" column="amount" />
|
||||
<result property="dispatchFee" column="dispatch_fee" />
|
||||
<result property="manageFee" column="manage_fee" />
|
||||
<result property="ridingFee" column="riding_fee" />
|
||||
<result property="appointmentFee" column="appointment_fee" />
|
||||
<result property="type" column="type" />
|
||||
<result property="reason" column="reason" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="itemDesc" column="item_desc" />
|
||||
<result property="refundResult" column="refund_result" />
|
||||
</resultMap>
|
||||
<resultMap type="EtRefundVO" id="EtRefundResult" autoMapping="true"/>
|
||||
|
||||
<sql id="selectEtRefundVo">
|
||||
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"
|
|||
</select>
|
||||
|
||||
<select id="selectEtRefundList2" parameterType="EtOrderQuery" resultMap="EtRefundResult">
|
||||
select r.id, r.refund_no, o.area_id areaId,oa.area_name areaName,r.order_no, r.user_id, u.user_name userName, r.amount, r.dispatch_fee, r.manage_fee,
|
||||
select r.id, r.refund_no, o.area_id areaId,oa.area_name areaName,r.order_no, r.user_id, u.user_name userName, u.phonenumber, r.amount, r.dispatch_fee, r.manage_fee,
|
||||
r.riding_fee, r.appointment_fee, r.type, r.reason, r.create_time, r.item_desc,r.refund_result from et_refund r
|
||||
INNER JOIN et_order o on o.order_no = r.order_no
|
||||
left join et_user u on u.user_id = r.user_id
|
||||
|
@ -182,4 +167,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
AND o.type = 2 and o.user_id = #{userId}
|
||||
AND ref.id IS NULL;
|
||||
</select>
|
||||
|
||||
<select id="selectEtRefundByOrderNos" resultMap="EtRefundResult">
|
||||
<include refid="selectEtRefundVo"/>
|
||||
where order_no in
|
||||
<foreach collection="list" item="orderNo" open="(" separator="," close=")">
|
||||
#{orderNo}
|
||||
</foreach>
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
Loading…
Reference in New Issue
Block a user