From bd6d5de56192630584f2e2678c199263534b3e70 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期六, 11 十月 2025 17:21:05 +0800
Subject: [PATCH] 添加日志记录

---
 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AppOperationLogServiceImpl.java |   29 ++++++++++++++
 UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java  |   69 +++++++---------------------------
 UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java                |    3 -
 3 files changed, 44 insertions(+), 57 deletions(-)

diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AppOperationLogServiceImpl.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AppOperationLogServiceImpl.java
new file mode 100644
index 0000000..6b7032d
--- /dev/null
+++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AppOperationLogServiceImpl.java
@@ -0,0 +1,29 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.AppOperationLogMapper;
+import com.stylefeng.guns.modular.system.model.AppOperationLog;
+import com.stylefeng.guns.modular.system.service.IAppOperationLogService;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+@Service
+public class AppOperationLogServiceImpl extends ServiceImpl<AppOperationLogMapper, AppOperationLog> implements IAppOperationLogService {
+
+
+    /**
+     * 添加日志记录
+     * @param userId
+     * @param content
+     */
+    @Override
+    public void addAppOperationLog(Integer userId, String content) {
+        AppOperationLog appOperationLog = new AppOperationLog();
+        appOperationLog.setUserId(userId);
+        appOperationLog.setUserType(3);
+        appOperationLog.setContent(content);
+        appOperationLog.setCreateTime(new Date());
+        this.insert(appOperationLog);
+    }
+}
diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index f622ce9..96d2827 100644
--- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -198,6 +198,9 @@
     @Autowired
     private IAppOperationLogService appOperationLogService;
 
+    @Resource
+    private DriverMapper driverMapper;
+
 
 
     /**
@@ -411,8 +414,9 @@
                     }
                     try {
                         //获取空闲司机
-                        List<Driver> drivers = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), assignOrder.getDistance(), null);//获取范围内空闲司机
+                        List<Driver> drivers = driverMapper.queryIdleDriver_(1, serverCarModelId, null);
                         List<Integer> driverIds = drivers.stream().map(Driver::getId).collect(Collectors.toList());
+                        logger.info("指派的空闲司机【" + orderPrivateCar.getOrderNum() + "】:" + JSON.toJSONString(drivers));
                         if(drivers.size() > 0) {//有司机,直接指派给司机
                             Driver dr = null;
                             if (drivers.size() > 1) {
@@ -427,8 +431,14 @@
                                     if (orderPrivateCar.getOrderType() == 2 && orderPrivateCarDriverIds.contains(driver1.getId())) {
                                         continue;
                                     }
+                                    // 判断司机是否有订单进行中
+                                    long count = orderPrivateCarMapper.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", driver1.getId())
+                                            .in("state", Arrays.asList(2, 3, 4, 5, 6, 11)).eq("isDelete", 1));
+                                    if(0 != count){
+                                        continue;
+                                    }
                                     // 判断该司机是否有30分钟内预约单
-                                    long count = orderPrivateCarss.stream().filter(s -> s.getDriverId().equals(driver1.getId()) &&
+                                    count = orderPrivateCarss.stream().filter(s -> s.getDriverId().equals(driver1.getId()) &&
                                             DateUtil.dateToLocalDateTime(s.getTravelTime()).minusMinutes(query.getLimitationTime()).isBefore(LocalDateTime.now())).count();
                                     if (count > 0) {
                                         continue;
@@ -437,6 +447,7 @@
                                     if (null != value) {
                                         Map<String, String> distance = gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1);
                                         double d = Double.parseDouble(distance.get("distance"));
+                                        logger.info("指派推单,司机距离【" + orderPrivateCar.getOrderNum() + "】" + driver1.getPhone() + ":" + d);
                                         if(dis >= d){
                                             driver1.setDistance(d);
                                             ds.add(driver1);
@@ -451,66 +462,16 @@
                                             return o1.getDistance().compareTo(o2.getDistance());
                                         }
                                     });
+                                    logger.info("指派推单,符合条件的司机【" + orderPrivateCar.getOrderNum() + "】:" + JSON.toJSONString(ds));
                                     appOperationLogService.addAppOperationLog(uid, "{\"type\":\"指派推单,符合条件的司机\",\"orderId\":\"" + orderPrivateCar.getId() + "\",\"driver\":\"" + JSON.toJSONString(ds) + "\"}");
                                     dr = ds.get(0);
                                 }
-
-
-
-
-
-
-//                                for (int i = 0; i < assignOrder.getPeople(); i++) {
-//                                    Driver driver = null;
-//                                    int m = 0;
-//                                    int index = 0;
-//                                    // 查询预约单
-//                                    List<OrderPrivateCar> orderPrivateCarss = orderPrivateCarMapper.queryOrderByState(driverIds, 2, 1, 2, 3, 4, 5, 6, 11);
-//                                    List<Integer> orderPrivateCarDriverIds = orderPrivateCars.stream().map(OrderPrivateCar::getDriverId).collect(Collectors.toList());
-//                                    for (int j = 0; j < drivers.size(); j++) {
-//                                        Driver driver1 = drivers.get(j);
-//                                        if (orderPrivateCar.getOrderType() == 2 && orderPrivateCarDriverIds.contains(driver.getId())) {
-//                                            continue;
-//                                        }
-//                                        // 判断该司机是否有30分钟内预约单
-//                                        long count = orderPrivateCarss.stream().filter(s -> s.getDriverId().equals(driver1.getId()) &&
-//                                                DateUtil.dateToLocalDateTime(s.getTravelTime()).minusMinutes(query.getLimitationTime()).isBefore(LocalDateTime.now())).count();
-//                                        if (count > 0) {
-//                                            continue;
-//                                        }
-//                                        String value = redisUtil.getValue("DRIVER" + drivers.get(j).getId());
-//                                        if (null != value) {
-//                                            Map<String, String> distance = gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1);
-//                                            int d = Integer.parseInt(distance.get("distance"));
-//                                            if ((0 == m && null == driver) || (d < m)) {
-//                                                driver = drivers.get(j);
-//                                                m = d;
-//                                                index = j;
-//                                            }
-//                                        }
-//                                    }
-//                                    ds.add(driver);
-//                                    drivers.remove(index);
-//                                }
-//
-//                                //再根据直线距离最短的司机中找出行驶距离最短的司机
-//                                Integer m = 0;
-//                                for (Driver driver : ds) {
-//                                    String value = redisUtil.getValue("DRIVER" + driver.getId());
-//                                    if (null != value) {
-//                                        Map<String, String> distance = gdMapElectricFenceUtil.getDistance(startLon + "," + startLat, value, 1);
-//                                        int distance1 = Integer.parseInt(distance.get("distance"));
-//                                        if ((0 == m && null == dr) || (distance1 < m.intValue())) {
-//                                            dr = driver;
-//                                            m = distance1;
-//                                        }
-//                                    }
-//                                }
                             } else {
                                 List<OrderPrivateCar> orderPrivateCarss = orderPrivateCarMapper.queryOrderByState(driverIds, 2, 1, 2, 3, 4, 5, 6, 11);
                                 if (orderPrivateCarss.size() == 0) {
                                     dr = drivers.get(0);
                                 }
+                                logger.info("指派推单,符合条件的司机【" + orderPrivateCar.getOrderNum() + "】:" + JSON.toJSONString(dr));
                                 appOperationLogService.addAppOperationLog(uid, "{\"type\":\"指派推单,符合条件的司机\",\"orderId\":\"" + orderPrivateCar.getId() + "\",\"driver\":\"" + JSON.toJSONString(dr) + "\"}");
                             }
 
diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index f4e1b59..f5e1ef6 100644
--- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -144,9 +144,6 @@
             }
             String value = redisUtil.getValue("DRIVER" + driver.getId());
             if(null != value){
-                /*Map<String, String> distance1 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, value, 0);//计算距离
-                double d = Double.valueOf(distance1.get("distance")).doubleValue();*/
-//                double d = GDMapGeocodingUtil.getDistance(lat,lon,Double.parseDouble(value.split(",")[1]),Double.parseDouble(value.split(",")[0]));
                 double d = gdMapElectricFenceUtil.getDrivingRoute(lat,lon,Double.parseDouble(value.split(",")[1]),Double.parseDouble(value.split(",")[0]));
                 if(d < (distance * 1000)){
                     list.add(driver);

--
Gitblit v1.7.1