puzhibing
2023-08-16 d5b3e5a413bcfccba294793ee093722f31b2448a
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java
@@ -568,6 +568,8 @@
                List<YouTuiDriver> youTuiDrivers = youTuiDriverService.selectList(new EntityWrapper<YouTuiDriver>().in("driverId", driverIds)
                        .eq("state", 2).last(" and surplusQuantity > 0 and now() < endTime and now() < failureTime"));
                Double d = null;
                System.err.println("【" + orderId + "】所有优推司机:" + JSON.toJSONString(youTuiDrivers));
                for (YouTuiDriver youTuiDriver : youTuiDrivers) {
                    String value = redisUtil.getValue("DRIVER" + youTuiDriver.getDriverId());
                    if(ToolUtil.isEmpty(value)){
@@ -590,6 +592,7 @@
                        youTuiDriver1 = youTuiDriver;
                    }
                }
                System.err.println("【" + orderId + "】优推最终司机---》距离:" +  d + ",司机:" + JSON.toJSONString(driver) + ",优推数据:" + JSON.toJSONString(youTuiDriver1));
            }
            if(null != youTuiDriver1 && youTuiDriver1.getType() == 1){
                youTuiDriver1.setSurplusQuantity(youTuiDriver1.getSurplusQuantity() - 1);
@@ -619,6 +622,7 @@
                            continue;
                        }
                        System.err.println("【" + orderId + "】范围推送【第" + i + "轮】:" + JSON.toJSONString(drivers));
                        Integer integral = null;//积分
                        Double score = null;//评分
                        Double d = null;
@@ -643,6 +647,8 @@
                                Map<String, Double> distance = GeodesyUtil.getDistance(value, order.getStartLng() + "," + order.getStartLat());
                                Double wgs84 = distance.get("WGS84");
                                d = wgs84;
                                System.err.println("【" + orderId + "】范围推送【第" + i + "轮】----》【积分:" + integral + "、司机:" + JSON.toJSONString(driver1));
                                continue;
                            }
                            if(integral.compareTo(driver1.getIntegral()) == 0 && score.compareTo(driver1.getScore()) < 0){//积分相同对比评分
@@ -652,6 +658,8 @@
                                Map<String, Double> distance = GeodesyUtil.getDistance(value, order.getStartLng() + "," + order.getStartLat());
                                Double wgs84 = distance.get("WGS84");
                                d = wgs84;
                                System.err.println("【" + orderId + "】范围推送【第" + i + "轮】----》【评分:" + score + "、司机:" + JSON.toJSONString(driver1));
                                continue;
                            }
                            if(integral.compareTo(driver1.getIntegral()) == 0 && score.compareTo(driver1.getScore()) == 0){//积分相同/评分相同对比距离
@@ -662,11 +670,13 @@
                                    integral = driver1.getIntegral();
                                    score = driver1.getScore();
                                    driver = driver1.getId();
                                    System.err.println("【" + orderId + "】范围推送【第" + i + "轮】----》距离:" + d + "、司机:" + JSON.toJSONString(driver1));
                                    continue;
                                }
                            }
                        }
                        System.err.println("【" + orderId + "】范围推送【第" + i + "轮】最终司机----》距离:" + d + "、司机:" + JSON.toJSONString(driver));
                    }
                }
            }