From b80d4a5cbac9ad9460717b6463819fa784e55ceb Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期日, 28 九月 2025 11:13:10 +0800 Subject: [PATCH] 跨城查询优化 --- UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java | 26 ++++++++++++++++++-------- 1 files changed, 18 insertions(+), 8 deletions(-) diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java index 2261739..257c1ad 100644 --- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java +++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java @@ -23,10 +23,12 @@ import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; @Service @@ -75,6 +77,7 @@ List<Map<String, Object>> list = new ArrayList<>(); List<LineShift> lineShifts = lineShiftMapper.queryByLineId(lineId); List<Map<String, Object>> s = lineSiteMapper.queryDriver(lineId, sdf.parse(day), driverId); + s = s.stream().distinct().collect(Collectors.toList()); Calendar calendar = Calendar.getInstance(); calendar.setTime(sdf.parse(day)); String vehicle = redisUtil.getValue("VEHICLE"); @@ -82,6 +85,10 @@ if(ToolUtil.isNotEmpty(vehicle)){ integers = JSON.parseArray(vehicle).toJavaList(Integer.class); } + List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>() + .in("state", Arrays.asList(2, 3, 4, 5, 11)) + .eq("DATE_FORMAT(travelTime, '%Y-%m-%d')", day)); + List<OrderCrossCity> orderCrossCities = orderCrossCityService.queryListOrder(null, null, Arrays.asList(5), day); for(LineShift lineShift : lineShifts){ boolean b = true; String[] split = lineShift.getEndTime().split(":"); @@ -104,18 +111,21 @@ if(bo){ continue; } - - - int i = orderTaxiService.selectCount(new EntityWrapper<OrderTaxi>().eq("driverId", map.get("driverId")).in("state", Arrays.asList(2, 3, 4, 5, 11)).eq("DATE_FORMAT(travelTime, '%Y-%m-%d')", day)); + long i = 0 ; + if(CollectionUtils.isEmpty(orderPrivateCars)){ + Integer driverId1 = Integer.valueOf(map.get("driverId").toString()); + i = orderPrivateCars.stream().filter(orderPrivateCar -> orderPrivateCar.getDriverId().equals(driverId1)).count(); + } if(i > 0){ continue; } - i = orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", map.get("driverId")).in("state", Arrays.asList(2, 3, 4, 5, 11)).eq("DATE_FORMAT(travelTime, '%Y-%m-%d')", day)); - if(i > 0){ - continue; +// List<OrderCrossCity> driverId1 = orderCrossCityService.queryListOrder(Integer.valueOf(map.get("driverId").toString()), lineShift.getId(), Arrays.asList(5), day); + if (CollectionUtils.isEmpty(orderCrossCities)){ + Integer driverId1 = Integer.valueOf(map.get("driverId").toString()); + i = orderCrossCities.stream().filter(orderCrossCity -> orderCrossCity.getDriverId().equals(driverId1) + && orderCrossCity.getLineShiftId().equals(lineShift.getId())).count(); } - List<OrderCrossCity> driverId1 = orderCrossCityService.queryListOrder(Integer.valueOf(map.get("driverId").toString()), lineShift.getId(), Arrays.asList(5), day); - if(driverId1.size() > 0){ + if(i > 0){ continue; } if(Integer.valueOf(map.get("laveSeat").toString()) <= 0){ -- Gitblit v1.7.1