From e59d2141bc8f9bee8b569deaa54158b3759c431e Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 29 八月 2025 10:42:40 +0800
Subject: [PATCH] bug修改

---
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |   36 ++++++++++++++++++++++++++++--------
 1 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index 5518188..1476c81 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -301,6 +301,11 @@
         }*/
         switch (state){
             case 3://出发前往预约点
+                // 判断是否有其他未完成的单子
+                List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.queryByState(orderPrivateCar.getUserId(), 1, 1, 3,4, 5,6);
+                if(!CollectionUtils.isEmpty(orderPrivateCars)){
+                    return ResultUtil.error("有未完成的服务订单");
+                }
                 orderPrivateCar.setState(3);
                 orderPrivateCar.setSetOutTime(new Date());
                 systemNoticeService.addSystemNotice(1, "司机已出发,请耐心等待", orderPrivateCar.getUserId());
@@ -471,6 +476,9 @@
     @Override
     public ResultUtil confirmFees(Integer orderId, Integer type, Double parkingFee, Double crossingFee) throws Exception {
         OrderPrivateCar orderPrivateCar = this.selectById(orderId);
+        if(Objects.nonNull(orderPrivateCar.getPriceAuditState()) && orderPrivateCar.getPriceAuditState() == 1){
+            return ResultUtil.error("待平台审核中");
+        }
         if(orderPrivateCar.getState() != 5){
             return ResultUtil.error("异常操作,请刷新订单");
         }
@@ -529,7 +537,7 @@
         if(orderNumber<=0){//判断是否是首单
             //判断是否免单
             UserInfo userInfo = userInfoMapper.selectById(orderPrivateCar.getUserId());
-            if(userInfo.getFreeMoney().doubleValue()>0d){
+            if(Objects.nonNull(userInfo.getFreeMoney()) && userInfo.getFreeMoney().doubleValue()>0d){
                 if(orderPrivateCar.getOrderMoney()<=userInfo.getFreeMoney().doubleValue()){
                     orderPrivateCar.setState(8);
                     orderPrivateCar.setIsFree(2);
@@ -548,12 +556,12 @@
                         c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
                     }
                     incomeService.saveData(1, orderPrivateCar.getCompanyId(), 2, orderPrivateCar.getId(), 1, d.doubleValue());
-                    incomeService.saveData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue());
                     Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
                     driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                     driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                     driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                     driverService.updateById(driver);
+                    incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(),driver.getBalance());
                 }else{
                     orderPrivateCar.setState(7);
                     orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney()-userInfo.getFreeMoney().doubleValue());
@@ -569,7 +577,7 @@
             orderPrivateCar.setState(7);
         }
 
-        if(new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney()).compareTo(BigDecimal.ZERO)>0 && new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney()).compareTo(new BigDecimal(orderPrivateCar.getOrderMoney()))>-1) {
+        if(orderPrivateCar.getPayMethod() == 0 && new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney()).compareTo(BigDecimal.ZERO)>0 && new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney()).compareTo(new BigDecimal(orderPrivateCar.getOrderMoney()))>-1) {
             orderPrivateCar.setState(8);
             // 退款情况
             if (new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney()).compareTo(new BigDecimal(orderPrivateCar.getOrderMoney())) > 0) {
@@ -614,12 +622,12 @@
                 c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
             }
             incomeService.saveData(1, orderPrivateCar.getCompanyId(), 2, orderPrivateCar.getId(), 1, d.doubleValue());
-            incomeService.saveData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue());
             Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
             driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
             driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
             driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
             driverService.updateById(driver);
+            incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getBalance());
         }else {
             orderPrivateCar.setState(7);
         }
@@ -630,12 +638,12 @@
 //            orderPrivateCar.setBindId("");
 //        }
         // 判断预估金额和订单金额差异是否大于3元
-        if(BigDecimal.valueOf(orderPrivateCar.getOrderMoney()).subtract(orderPrivateCar.getEstimatedPrice()).abs().doubleValue() > 3){
+        if(BigDecimal.valueOf(orderPrivateCar.getOrderMoney()).subtract(new BigDecimal(orderPrivateCar.getEstimatedPrice())).abs().doubleValue() > 3){
             orderPrivateCar.setIsException(1);
         }
-        if(orderPrivateCar.getIsException() == 1){
-            orderPrivateCar.setState(13);
-        }
+//        if(orderPrivateCar.getIsException() == 1){
+//            orderPrivateCar.setState(13);
+//        }
         this.updateById(orderPrivateCar);
 
 
@@ -703,6 +711,14 @@
         map.put("couponMoney", orderPrivateCar.getCouponMoney());//优惠券抵扣金额
         map.put("discountMoney", orderPrivateCar.getDiscountMoney());//折扣抵扣金额
         map.put("discount", orderPrivateCar.getDiscount());//折扣
+        if(Objects.isNull(orderPrivateCar.getEstimatedPrice())){
+            orderPrivateCar.setEstimatedPrice(0D);
+        }
+        if(BigDecimal.valueOf(orderPrivateCar.getOrderMoney()).subtract(new BigDecimal(orderPrivateCar.getEstimatedPrice())).abs().doubleValue() > 3){
+            orderPrivateCar.setIsException(1);
+        }
+        map.put("estimatedPrice", orderPrivateCar.getEstimatedPrice());
+        map.put("isException", orderPrivateCar.getIsException());//是否异常
         return map;
     }
 
@@ -993,6 +1009,10 @@
         orderPrivateCar.setPriceType(priceType);
         orderPrivateCar.setUpdatePrice(updatePrice);
         orderPrivateCar.setPriceAuditState(1);
+        orderPrivateCar.setState(6);
         this.updateById(orderPrivateCar);
+        // 推送新的价格给用户
+        pushUtil.pushOrderMoney(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, updatePrice, 0);
+        pushUtil.pushOrderMoney(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, updatePrice, 0);
     }
 }

--
Gitblit v1.7.1