微调
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