From d54d3590cfa2f02afdc1d16749a7b12532b0e5ef Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 02 六月 2023 18:47:49 +0800
Subject: [PATCH] 提交代码

---
 user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java
index f639970..2dc4530 100644
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java
+++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java
@@ -644,12 +644,48 @@
                     if(order1.getState() == 101 || order1.getState() == 201){
                         order1.setHallOrder(1);
                         OrderServiceImpl.this.updateById(order1);
+                        ExtraPushOrder(order1);
                     }
                 }
             }, num4 * 1000);
         }else{
             order.setHallOrder(1);
             this.updateById(order);
+            ExtraPushOrder(order);
+        }
+    }
+
+    public void ExtraPushOrder(Order order){
+        String startLat = order.getStartLat();
+        String startLng = order.getStartLng();
+
+        //找到中心点
+        GeoJsonPoint geoJsonPoint = new GeoJsonPoint(Double.valueOf(startLng), Double.valueOf(startLat));
+        Double num = 5D;//范围公里
+        //构造半径
+        Distance distanceR = new Distance(num, Metrics.KILOMETERS);
+        //画圆
+        Circle circle = new Circle(geoJsonPoint, distanceR);
+        // 构造query对象
+        Query query = Query.query(Criteria.where("location").withinSphere(circle));
+        List<Location> locations = mongoTemplate.find(query, Location.class);
+        List<Integer> driverIds = locations.stream().map(Location::getDriverId).collect(Collectors.toList());
+        if(driverIds.size() == 0){
+            return;
+        }
+        List<DriverWork> tDriverWorks = driverWorkService.selectList(new EntityWrapper<DriverWork>().in("driverId", driverIds).eq("status", 1));
+        driverIds = tDriverWorks.stream().map(DriverWork::getDriverId).collect(Collectors.toList());
+        List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().eq("approvalStatus", 2)
+                .eq("serverStatus", 1).eq("openOrderQRCode", 0).eq("status", 1).in("id", driverIds));
+        if(drivers.size() == 0){
+            return;
+        }
+        for (Driver driver1 : drivers) {
+            String value = redisUtil.getValue("DRIVER" + driver1.getId());
+            if (ToolUtil.isEmpty(value)) {
+                return;
+            }
+            pushUtil.pushGrabOrderExtras(driver1.getId(), 2);
         }
     }
 

--
Gitblit v1.7.1