From 3813a960973c2ffd29880c7070d862e25af49f23 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期一, 26 一月 2026 15:11:10 +0800
Subject: [PATCH] fix(driver):班次列表线路根据司机完成单数倒序排列
---
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftDriverMapper.xml | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftDriverMapper.xml b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftDriverMapper.xml
index 64900c4..409f88f 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftDriverMapper.xml
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftDriverMapper.xml
@@ -126,7 +126,16 @@
lsd.id as lineShiftDriverId,
lsd.laveSeat as laveSeat,
lsd.totalSeat as totalSeat,
- CASE WHEN lsd.id IS NOT NULL THEN 1 ELSE 0 END as isReserved
+ CASE WHEN lsd.id IS NOT NULL THEN 1 ELSE 0 END as isReserved,
+ -- 统计司机在该线路完成的订单次数(按lineShiftDriverId去重)
+ IFNULL((
+ SELECT COUNT(DISTINCT occ.lineShiftDriverId)
+ FROM t_order_cross_city occ
+ WHERE occ.driverId = #{driverId}
+ AND occ.lineId = l.id
+ AND occ.state = 9
+ AND occ.isDelete = 1
+ ), 0) as lineCompletedCount
FROM t_driver_line dl
INNER JOIN t_line l ON dl.lineId = l.id AND l.state = 1
INNER JOIN t_line_shift ls ON l.id = ls.lineId AND ls.state = 1
@@ -134,6 +143,6 @@
AND lsd.driverId = #{driverId}
AND DATE_FORMAT(lsd.`day`, '%Y-%m-%d') = #{date}
WHERE dl.driverId = #{driverId}
- ORDER BY l.id, ls.startTime
+ ORDER BY lineCompletedCount DESC, l.id, ls.startTime
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.7.1