From ab564273ec5349d3dd3f71049a4c2738f8b9ebc6 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 21 八月 2025 18:56:54 +0800
Subject: [PATCH] 修改bug

---
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml           |    7 ++-
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java    |   36 ++++++++++-------
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java |   14 +++++--
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java  |   15 ++++---
 4 files changed, 44 insertions(+), 28 deletions(-)

diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml
index de4efbd..dcbc411 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml
@@ -74,10 +74,11 @@
         select
             a.id as id,
             CONCAT(a.carLicensePlate, '-',c.`name`, b.`name`, ' ', a.carColor) as name,
-            a.useDriverId as useDriverId
+            d.id as useDriverId
         from t_car a
-                 left join t_car_model b on (a.carModelId = b.id)
-                 left join t_car_brand c on (b.brandId = c.id)
+        left join t_car_model b on (a.carModelId = b.id)
+        left join t_car_brand c on (b.brandId = c.id)
+        left join t_driver d on (a.id = d.carId)
         where a.state = 1 and find_in_set(#{id},a.bindDriverId)
     </select>
 </mapper>
\ No newline at end of file
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java
index 2aebf5d..380c118 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java
@@ -2,10 +2,7 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.stylefeng.guns.modular.system.dao.CarBrandMapper;
-import com.stylefeng.guns.modular.system.dao.CarMapper;
-import com.stylefeng.guns.modular.system.dao.CarModelMapper;
-import com.stylefeng.guns.modular.system.dao.CompanyMapper;
+import com.stylefeng.guns.modular.system.dao.*;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.ICarService;
 import com.stylefeng.guns.modular.system.service.IDriverService;
@@ -35,6 +32,9 @@
     @Autowired
     private IDriverService driverService;
 
+    @Autowired
+    private DriverWorkMapper driverWorkMapper;
+
 
 
 
@@ -62,14 +62,18 @@
         }
 
         List<Map<String, Object>> list = carMapper.queryIdleDataFromId(driver.getId());
-//        List<Map<String, Object>> list = carMapper.queryIdleData(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : (
-//                driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1));
         for (Map<String, Object> stringObjectMap : list) {
             // 1使用中 2空闲中
-            if(stringObjectMap.get("useDriverId")!=null){
-                stringObjectMap.put("useState", 1);
-            }else {
+            if(null == stringObjectMap.get("useDriverId")){
                 stringObjectMap.put("useState", 2);
+            }else{
+                Integer driverId = Integer.valueOf(stringObjectMap.get("useDriverId").toString());
+                DriverWork driverWork = driverWorkMapper.queryNewWork(driverId, null, 1);
+                if(null == driverWork){
+                    stringObjectMap.put("useState", 2);
+                }else{
+                    stringObjectMap.put("useState", 1);
+                }
             }
         }
         map.put("list", list);
@@ -162,13 +166,15 @@
 
     @Override
     public boolean useState(Integer carId, Integer uid) {
-        Car car = carMapper.selectById(carId);
-        if(car.getUseDriverId()!=null && !car.getUseDriverId().equals(uid)){
-            return false;
+        List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().eq("carId", carId)
+                .eq("authState", 2).ne("flag", 3));
+        for (Driver driver : drivers) {
+            DriverWork driverWork = driverWorkMapper.queryNewWork(driver.getId(), null, 1);
+            if(null != driverWork){
+                return true;
+            }
         }
-        return true;
-
-
+        return false;
     }
 
     @Override
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index 826b31a..9e470c0 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -932,14 +932,20 @@
         if(driver.getState() == 3){
             return ResultUtil.error("还在服务中,不能更换");
         }
-//        boolean idle = carService.idle(carId);
         // 修改是否别司机在使用
         boolean idle = carService.useState(carId,uid);
-        if(!idle){
+        if(idle){
             return ResultUtil.error("当前车辆已经有其他司机在使用,请更换车辆");
         }
-        // 将所有绑定他的车 =null
-        carService.updateUseState(carId,uid);
+        List<Driver> drivers = this.selectList(new EntityWrapper<Driver>().eq("carId", carId)
+                .eq("authState", 2).ne("flag", 3));
+        drivers.forEach(d->{
+            d.setCarId(null);
+        });
+        if(drivers.size() > 0){
+            this.updateAllColumnBatchById(drivers);
+        }
+
         Car car = carService.selectById(carId);
         car.setUseDriverId(uid);
         carService.updateById( car);
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
index 874f0d5..30a3b35 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -386,9 +386,15 @@
                 }
                 break;
             case 2://出租
-                OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
-                if(null != orderPrivateCar && orderPrivateCar.getType() == 3){
-                    map = orderPrivateCarService.queryPushOrder(orderId);
+
+                OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
+                if(null != orderTaxi && orderTaxi.getType() == 2){
+                    OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+                    if(null != orderPrivateCar && orderPrivateCar.getType() == 3){
+                        map = orderPrivateCarService.queryPushOrder(orderId);
+                    }else{
+                        map = orderTaxiService.queryPushOrder(orderId);
+                    }
                 }else{
                     map = orderTaxiService.queryPushOrder(orderId);
                 }
@@ -396,9 +402,7 @@
                 // TODO: 2023/11/4 无法修改
                 String distance1 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order1, 1).get("distance");
                 map.put("startDistance", ToolUtil.isNotEmpty(distance1) ? Double.valueOf(distance1) / 1000 : 0);
-
                 //总距离
-
                 String end1 = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat"));
                 if(end1.equals(",")){
                     map.put("totalDistance", 0);
@@ -413,7 +417,6 @@
                     }
 
                 }
-
 
                 Integer orderSource1 = Integer.valueOf(String.valueOf(map.get("orderSource")));
                 if(orderSource1 == 1 || orderSource1 == 2 || orderSource1 == 3){

--
Gitblit v1.7.1