“mitao”
2026-03-21 dc8cc6a7c9ab171bbaf124d70844038b5b0570ee
feat:专车、出租车确认费用增加先付判断
5个文件已修改
110 ■■■■■ 已修改文件
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
@@ -423,6 +423,18 @@
    private Integer spellSuccess;
    /**
     * 预估金额(先付模式下单时计算并存储)
     */
    @TableField("estimateAmount")
    private Double estimateAmount;
    /**
     * 下单时系统支付模式(1=先付,2=后付)
     */
    @TableField("paymentMode")
    private Integer paymentMode;
    private String waitRule;
    private String chargeRule;
    private String chargeRules;
@@ -1329,6 +1341,22 @@
        this.abnormalTime = abnormalTime;
    }
    public Double getEstimateAmount() {
        return estimateAmount;
    }
    public void setEstimateAmount(Double estimateAmount) {
        this.estimateAmount = estimateAmount;
    }
    public Integer getPaymentMode() {
        return paymentMode;
    }
    public void setPaymentMode(Integer paymentMode) {
        this.paymentMode = paymentMode;
    }
    @Override
    public String toString() {
        return "OrderPrivateCar{" +
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -785,7 +785,20 @@
            }
        }
        orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney() + orderPrivateCar.getParkMoney() + orderPrivateCar.getRoadTollMoney() + orderPrivateCar.getHolidayFee() + t);
        orderPrivateCar.setState(7);
        if (Integer.valueOf(1).equals(orderPrivateCar.getPaymentMode())) {
            double estimateAmount = orderPrivateCar.getEstimateAmount() == null ? 0D : orderPrivateCar.getEstimateAmount();
            int compareResult = BigDecimal.valueOf(estimateAmount).compareTo(BigDecimal.valueOf(orderPrivateCar.getOrderMoney()));
            if (compareResult > 0) {
                handlePrepaidRefund(orderPrivateCar, estimateAmount - orderPrivateCar.getOrderMoney());
                orderPrivateCar.setState(9);
            } else if (compareResult < 0) {
                orderPrivateCar.setState(7);
            } else {
                orderPrivateCar.setState(9);
            }
        } else {
            orderPrivateCar.setState(7);
        }
        this.updateById(orderPrivateCar);
    
        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
@@ -848,6 +861,16 @@
        return ResultUtil.success();
    }
    /**
     * 先付订单退款预留逻辑,后续接入真实退款接口
     */
    private void handlePrepaidRefund(OrderPrivateCar orderPrivateCar, Double refundAmount) {
        if (refundAmount == null || refundAmount <= 0) {
            return;
        }
        // TODO 对接真实退款接口,当前先保留调用入口,避免阻塞订单完成流程
    }
    /**
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml
@@ -47,6 +47,8 @@
        <result column="activityId" property="activityId"/>
        <result column="companyId" property="companyId"/>
        <result column="payMoney" property="payMoney"/>
        <result column="estimateAmount" property="estimateAmount"/>
        <result column="paymentMode" property="paymentMode"/>
        <result column="thankYouFee" property="thankYouFee"/>
        <result column="substitute" property="substitute"/>
        <result column="passengers" property="passengers"/>
@@ -507,4 +509,4 @@
            and `type` = #{type}
        </if>
    </select>
</mapper>
</mapper>
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java
@@ -227,6 +227,16 @@
     */
    @TableField("payMoney")
    private Double payMoney;
    /**
     * 预估金额(先付模式下单时计算并存储)
     */
    @TableField("estimateAmount")
    private Double estimateAmount;
    /**
     * 下单时系统支付模式(1=先付,2=后付)
     */
    @TableField("paymentMode")
    private Integer paymentMode;
    //感谢费
    @TableField("thankYouFee")
    private Double thankYouFee;
@@ -842,6 +852,22 @@
        this.orderSource = orderSource;
    }
    public Double getEstimateAmount() {
        return estimateAmount;
    }
    public void setEstimateAmount(Double estimateAmount) {
        this.estimateAmount = estimateAmount;
    }
    public Integer getPaymentMode() {
        return paymentMode;
    }
    public void setPaymentMode(Integer paymentMode) {
        this.paymentMode = paymentMode;
    }
    public Integer getInvoiceId() {
        return invoiceId;
@@ -1000,6 +1026,8 @@
                ", activityId=" + activityId +
                ", companyId=" + companyId +
                ", payMoney=" + payMoney +
                ", estimateAmount=" + estimateAmount +
                ", paymentMode=" + paymentMode +
                ", substitute=" + substitute +
                ", passengers='" + passengers + '\'' +
                ", passengersPhone='" + passengersPhone + '\'' +
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -581,7 +581,20 @@
            orderTaxi.setState(8);
        }else{
            orderTaxi = this.setMoney1(orderTaxi, travelFee, additionalFee);
            orderTaxi.setState(7);
            if (Integer.valueOf(1).equals(orderTaxi.getPaymentMode())) {
                double estimateAmount = orderTaxi.getEstimateAmount() == null ? 0D : orderTaxi.getEstimateAmount();
                int compareResult = BigDecimal.valueOf(estimateAmount).compareTo(BigDecimal.valueOf(orderTaxi.getOrderMoney()));
                if (compareResult > 0) {
                    handlePrepaidRefund(orderTaxi, estimateAmount - orderTaxi.getOrderMoney());
                    orderTaxi.setState(9);
                } else if (compareResult < 0) {
                    orderTaxi.setState(7);
                } else {
                    orderTaxi.setState(9);
                }
            } else {
                orderTaxi.setState(7);
            }
        }
        this.updateById(orderTaxi);
    
@@ -602,6 +615,16 @@
        return ResultUtil.success();
    }
    /**
     * 先付订单退款预留逻辑,后续接入真实退款接口
     */
    private void handlePrepaidRefund(OrderTaxi orderTaxi, Double refundAmount) {
        if (refundAmount == null || refundAmount <= 0) {
            return;
        }
        // TODO 对接真实退款接口,当前先保留调用入口,避免阻塞订单完成流程
    }
    /**
     * 确认费用(车载端)