From 6771fff413935485b5dce61769f133a44533d15c Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期六, 30 五月 2026 14:35:14 +0800
Subject: [PATCH] fix
---
ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java | 77 ++++++++++++++++++++++++++++++++++++++
1 files changed, 77 insertions(+), 0 deletions(-)
diff --git a/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java b/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
index ee224a0..6b44ce1 100644
--- a/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
+++ b/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
@@ -98,6 +98,15 @@
private ITComplaintService tComplaintService;
@Autowired
+ private ITOrderPrivateCarService orderPrivateCarService;
+
+ @Autowired
+ private ITOrderTaxiService orderTaxiService;
+
+ @Autowired
+ private ITOrderCrossCityService orderCrossCityService;
+
+ @Autowired
private IUserService userService;
@Autowired
@@ -1155,6 +1164,11 @@
obj.setUpdateTime(new Date());
obj.setUpdateUser(ShiroKit.getUser().getId());
obj.setPlaceOfEmployment(tDriver.getPlaceOfEmployment());
+ List<Integer> newServiceTypes = parseDriverServiceTypes(serverBox);
+ String unfinishedOrderError = validateDriverCancelledServiceUnfinishedOrders(tDriver.getId(), newServiceTypes);
+ if (unfinishedOrderError != null) {
+ return unfinishedOrderError;
+ }
tDriverService.updateAllColumnById(obj);
//删除业务
@@ -1191,6 +1205,69 @@
return SUCCESS_TIP;
}
+ private List<Integer> parseDriverServiceTypes(String serverBox) {
+ List<Integer> serviceTypes = new ArrayList<>();
+ if (SinataUtil.isEmpty(serverBox)) {
+ return serviceTypes;
+ }
+ String[] serverArray = serverBox.split(",");
+ for (String serviceType : serverArray) {
+ if (SinataUtil.isNotEmpty(serviceType)) {
+ serviceTypes.add(Integer.valueOf(serviceType));
+ }
+ }
+ return serviceTypes;
+ }
+
+ private String validateDriverCancelledServiceUnfinishedOrders(Integer driverId, List<Integer> newServiceTypes) {
+ List<Integer> oldServiceTypes = getDriverServiceTypes(driverId);
+ if (oldServiceTypes.isEmpty()) {
+ return null;
+ }
+ if (oldServiceTypes.contains(1) && !newServiceTypes.contains(1) && hasUnfinishedPrivateCarOrder(driverId)) {
+ return "当前司机存在快车未完成订单,无法变动";
+ }
+ if (oldServiceTypes.contains(2) && !newServiceTypes.contains(2) && hasUnfinishedTaxiOrder(driverId)) {
+ return "当前司机存在出租车未完成订单,无法变动";
+ }
+ if (oldServiceTypes.contains(3) && !newServiceTypes.contains(3) && hasUnfinishedCrossCityOrder(driverId)) {
+ return "当前司机存在跨城出行未完成订单,无法变动";
+ }
+ return null;
+ }
+
+ private List<Integer> getDriverServiceTypes(Integer driverId) {
+ List<Integer> serviceTypes = new ArrayList<>();
+ List<TDriverService> serviceList = tDriverServiceService.selectList(new EntityWrapper<TDriverService>().eq("driverId", driverId));
+ for (TDriverService service : serviceList) {
+ if (service != null && service.getType() != null && !serviceTypes.contains(service.getType())) {
+ serviceTypes.add(service.getType());
+ }
+ }
+ return serviceTypes;
+ }
+
+ private boolean hasUnfinishedPrivateCarOrder(Integer driverId) {
+ return orderPrivateCarService.selectCount(new EntityWrapper<TOrderPrivateCar>()
+ .eq("isDelete", 1)
+ .eq("driverId", driverId)
+ .notIn("state", 8, 9, 10, 12)) > 0;
+ }
+
+ private boolean hasUnfinishedTaxiOrder(Integer driverId) {
+ return orderTaxiService.selectCount(new EntityWrapper<TOrderTaxi>()
+ .eq("isDelete", 1)
+ .eq("driverId", driverId)
+ .notIn("state", 8, 9, 10, 12)) > 0;
+ }
+
+ private boolean hasUnfinishedCrossCityOrder(Integer driverId) {
+ return orderCrossCityService.selectCount(new EntityWrapper<TOrderCrossCity>()
+ .eq("isDelete", 1)
+ .eq("driverId", driverId)
+ .notIn("state", 8, 9, 10, 12)) > 0;
+ }
+
/**
* 下载模板
* @param request
--
Gitblit v1.7.1