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