From d09284975427910441eeaf59d34a4d50d2fd5fdc Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 24 十二月 2024 19:02:29 +0800
Subject: [PATCH] 修改bug

---
 UserAHTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java |   73 ++----------------------------------
 1 files changed, 5 insertions(+), 68 deletions(-)

diff --git a/UserAHTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserAHTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index 282bee0..788f312 100644
--- a/UserAHTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/UserAHTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -1349,7 +1349,7 @@
     public OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception {
         OrderCrossCity orderCrossCity = this.selectById(orderId);
         //计算预计距离和剩余时间
-        String value = redisUtil.getValue("DRIVER" + String.valueOf(orderCrossCity.getDriverId()));
+        String value = redisUtil.getValue("DRIVER" + orderCrossCity.getDriverId());
         if(null == value || "".equals(value)){
             System.err.println("司机没有上传位置信息");
 
@@ -1655,74 +1655,11 @@
                     }
                     try {
                         if(orderType == 1){//专车
-                            Thread.sleep(1000);
-                            System.err.println("====="+orderId);
                             OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(orderId);
-                            System.err.println("====="+orderPrivateCar);
-                            OrderPrivateCarServiceImpl.orderIds.add(orderPrivateCar.getId());//添加记录,防止调用接口重复提醒无人接单
-                            Company query = companyCityService.query(String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
-                            List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数
-                            for(int i = 1; i <= querys.size(); i++){
-                                //订单被抢后的处理
-                                Integer state = orderPrivateCarMapper.selectById(orderId).getState();
-                                if(state != 1){
-                                    //关闭其他推送线程
-                                    Set<String> keySet = threadMap.keySet();
-                                    for(String key : keySet){
-                                        if(!key.equals(orderId + "_1")){
-                                            Thread thread1 = threadMap.get(key);//中断线程
-                                            if(null != thread1){
-                                                thread1.interrupt();
-                                            }
-                                            threadMap.remove(key);
-                                        }
-                                    }
-                                    //删除其他无效数据
-                                    for(Map<String, Integer> map : datas){
-                                        Integer orderType = map.get("orderType");
-                                        Integer orderId1 = map.get("orderId");
-                                        if(orderType == 1 && orderId != orderPrivateCar.getId()){
-                                            orderPrivateCarMapper.deleteById(orderId1);
-                                        }
-                                        if(orderType == 2){
-                                            orderTaxiMapper.deleteById(orderId1);
-                                        }
-                                    }
-                                    break;
-                                }
-
-                                //开始进行推送的处理
-                                PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0);
-                                //获取空闲司机
-                                List<Driver> list = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
-                                if(list.size() > 0){
-                                    double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
-                                    int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
-                                    list = list.subList(0, lastIndex);//获取空闲司机中占比数据
-                                    for(Driver driver : list){//开始进行推送
-                                        boolean bo = false;
-                                        for(Integer integer : integers){
-                                            if(integer.compareTo(driver.getId()) == 0){
-                                                bo = true;
-                                                break;
-                                            }
-                                        }
-                                        if(bo){
-                                            continue;
-                                        }
-                                        pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime());
-                                    }
-                                }
-
-                                //所有推送完后的处理
-                                Boolean b = pushEndMap.get(orderPrivateCar.getCrossCityOrderId());
-                                if(i == querys.size() && state == 1 && (null != b && !b.booleanValue())){
-                                    pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
-                                    OrderPrivateCarServiceImpl.orderIds.remove(orderPrivateCar.getId());
-                                    pushEndMap.put(orderPrivateCar.getCrossCityOrderId(), Boolean.TRUE);//推送后添加标识
-                                    break;
-                                }
-                                Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
+                            //推单操作
+                            if(orderPrivateCar.getState() == 1){
+                                Integer id = orderPrivateCar.getId();
+                                redisUtil.addListRight("push_order_ids", id.toString());
                             }
                         }
 

--
Gitblit v1.7.1