From 8f39e870ca9519d8a8190c038d15a030149de98e Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期二, 27 八月 2024 09:13:33 +0800
Subject: [PATCH] 修改2.0 bug

---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java |   52 ++++++++++++++++++++++++++++------------------------
 1 files changed, 28 insertions(+), 24 deletions(-)

diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
index 6146c4a..ecf7c91 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -254,7 +254,7 @@
         String[] split = endLonLat.split(",");
         Double lng = Double.valueOf(split[0]);
         Double lat = Double.valueOf(split[1]);
-        ResultUtil<Map<String, Object>> price = this.getPrice1(type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language);
+        ResultUtil<Map<String, Object>> price = this.getPrice1(uid, type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language);
         if(price.getCode() != 200){
             return price;
         }
@@ -273,11 +273,11 @@
      * @return
      * @throws Exception
      */
-    public ResultUtil queryPayMoney(Integer number, Integer type, String startLonLat, String endLonLat, String endAddress, Integer language) throws Exception{
+    public ResultUtil queryPayMoney(Integer uid, Integer number, Integer type, String startLonLat, String endLonLat, String endAddress, Integer language) throws Exception{
         String[] split = endLonLat.split(",");
         Double lng = Double.valueOf(split[0]);
         Double lat = Double.valueOf(split[1]);
-        ResultUtil<Map<String, Object>> price = this.getPrice1(type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language);
+        ResultUtil<Map<String, Object>> price = this.getPrice1(uid, type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language);
         if(price.getCode() == 200 && type == 5){
             Map<String, Object> data = price.getData();
             Double ordinary = Double.valueOf(data.get("ordinary").toString());
@@ -327,7 +327,7 @@
         endAddress = endAddress.replaceAll("& #40;", "(");
         endAddress = endAddress.replaceAll("& #41;", ")");
         OrderLogistics orderLogistics = new OrderLogistics();
-        Company query = companyCityService.query1(placementLon, placementLat);
+        Company query = companyCityService.query1(uid, placementLon, placementLat);
         if(null == query){
             return ResultUtil.error(language == 1 ? "该地点暂无企业服务" : language == 2 ? "No service yet at this area" : "Pas encore de service dans cette zone");
         }
@@ -340,7 +340,8 @@
         orderLogistics.setRemark(remark);
         orderLogistics.setPlacementLon(Double.valueOf(placementLon));
         orderLogistics.setPlacementLat(Double.valueOf(placementLat));
-        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon));
+        String tripId = redisUtil.getValue("trip" + uid);
+        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon), tripId);
         if(null == reverseGeocode){
             return ResultUtil.error(language == 1 ? "解析地址出错" : language == 2 ? "Address resolution error" : "Erreur de résolution d’adresse");
         }
@@ -363,7 +364,7 @@
         orderLogistics.setMileage(0D);
         orderLogistics.setIsReassign(1);
         orderLogistics.setReassignNotice(0);
-        ResultUtil<Map<String, Object>> price = this.getPrice1(type, String.valueOf(startLon), String.valueOf(startLat), lng.toString(), lat.toString(), language);
+        ResultUtil<Map<String, Object>> price = this.getPrice1(uid, type, String.valueOf(startLon), String.valueOf(startLat), lng.toString(), lat.toString(), language);
         if(price.getCode() != 200){
             return price;
         }
@@ -412,8 +413,8 @@
      * @return
      * @throws Exception
      */
-    public ResultUtil<Map<String, Double>> getPrice(Integer type, String startLon, String startLat, String endLon, String endLat) throws Exception{
-        Company query = companyCityService.query1(startLon, startLat);
+    public ResultUtil<Map<String, Double>> getPrice(Integer uid, Integer type, String startLon, String startLat, String endLon, String endLat) throws Exception{
+        Company query = companyCityService.query1(uid, startLon, startLat);
         if(null == query){
             return ResultUtil.error("预约取货点暂无企业服务");
         }
@@ -456,8 +457,8 @@
 
 
 
-    public ResultUtil<Map<String, Object>> getPrice1(Integer type, String startLon, String startLat, String endLon, String endLat, Integer language) throws Exception{
-        Company query = companyCityService.query1(startLon, startLat);
+    public ResultUtil<Map<String, Object>> getPrice1(Integer uid, Integer type, String startLon, String startLat, String endLon, String endLat, Integer language) throws Exception{
+        Company query = companyCityService.query1(uid, startLon, startLat);
         if(null == query){
             return ResultUtil.error(language == 1 ? "预约取货点暂无企业服务" : language == 2 ?
                     "No service yet at the reserved pickup point." : "Les points de ramassage prévus ne sont pas disponibles pour le moment.");
@@ -469,7 +470,8 @@
         Integer activityId = null;
         if(type == 4){//同城
             Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null);
-            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(startLat), Double.valueOf(startLon), Double.valueOf(endLat), Double.valueOf(endLon));
+            String tripId = redisUtil.getValue("trip" + uid);
+            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(startLat), Double.valueOf(startLon), Double.valueOf(endLat), Double.valueOf(endLon), tripId);
             if(null == distancematrix){
                 return ResultUtil.error(language == 1 ? "计算距离出错" : language == 2 ? "Errors in computing distance" : "Erreurs dans le calcul de la distance");
             }
@@ -540,12 +542,12 @@
                     if(ToolUtil.isNotEmpty(vehicle)){
                         integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
                     }
-                    Company query = companyCityService.query1(String.valueOf(orderLogistics.getStartLon()), String.valueOf(orderLogistics.getStartLat()));//获取起点所属分公司
+                    Company query = companyCityService.query1(orderLogistics.getUserId(), String.valueOf(orderLogistics.getStartLon()), String.valueOf(orderLogistics.getStartLat()));//获取起点所属分公司
                     List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//用专车的推单配置
                     for(int i = 1; i <= querys.size(); i++){
                         PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0);
                         //获取空闲司机
-                        List<Driver> list = driverService.queryIdleDriver(orderLogistics.getType(), orderLogistics.getServerCarModelId(), orderLogistics.getStartLon(), orderLogistics.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
+                        List<Driver> list = driverService.queryIdleDriver(orderLogistics.getUserId(), orderLogistics.getType(), orderLogistics.getServerCarModelId(), orderLogistics.getStartLon(), orderLogistics.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                         System.err.println("【" + orderLogistics.getId() + "】空闲司机:" + JSON.toJSONString(list));
                         if(list.size() > 0){
                             double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
@@ -682,7 +684,8 @@
         orderLogistics.setUrgent(1);
         orderLogistics.setCargoNumber(1);
     
-        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon));
+        String tripId = redisUtil.getValue("trip" + uid);
+        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon), tripId);
         orderLogistics.setPlacementAddress(reverseGeocode.getAddress());
         orderLogistics.setStartLon(Double.valueOf(startLon));
         orderLogistics.setStartLat(Double.valueOf(startLat));
@@ -737,7 +740,7 @@
             String value = redisUtil.getValue("DRIVER" + driver.getId());
             if(ToolUtil.isNotEmpty(value)) {
                 String[] split = value.split(",");
-                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]));
+                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId);
                 //超时时间
                 long timeOut = System.currentTimeMillis() + (distancematrix.getDuration() * 1000);
                 orderLogistics.setEstimateArriveTime(new Date(timeOut));
@@ -749,8 +752,8 @@
     
         orderLogistics.setIsReassign(1);
         orderLogistics.setIsDelete(1);
-        orderLogistics.setTripId(UUIDUtil.getRandomCode());
-        DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), orderLogistics.getEndLat(), orderLogistics.getEndLon());
+        orderLogistics.setTripId(tripId);
+        DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), orderLogistics.getEndLat(), orderLogistics.getEndLon(), tripId);
         Long distance1 = distancematrix1.getDistance();
         orderLogistics.setEstimatedMileage(new BigDecimal(distance1).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
         this.insert(orderLogistics);
@@ -838,14 +841,14 @@
     
         // TODO: 2021/5/11 修改,根据后台设定的派单范围查询范围内有无司机,将单子指派给距离最近的司机(距离相同随机取),范围内没有司机再进行推单流程
         if(orderLogistics.getState() == 1){
-            Company query = companyCityService.query1(orderLogistics.getStartLon().toString(), orderLogistics.getStartLat().toString());
+            Company query = companyCityService.query1(uid, orderLogistics.getStartLon().toString(), orderLogistics.getStartLat().toString());
             if(null == query){
                 return ResultUtil.error(language == 1 ? "起点暂未企业提供服务" : language == 2 ? "Starting point no enterprise to provide services" : "Point de départ pas encore disponible pour les entreprises");
             }
             AssignOrder assignOrder = assignOrderService.selectOne(new EntityWrapper<AssignOrder>().eq("companyId", query.getId()).eq("type", 1));
             if(null != assignOrder && assignOrder.getPeople() > 0){//配置了指派规则才处理
                 //获取空闲司机
-                List<Driver> drivers = driverService.queryIdleDriver(4, orderLogistics.getServerCarModelId(), orderLogistics.getStartLon(), orderLogistics.getStartLat(), assignOrder.getDistance(), null);//获取范围内空闲司机
+                List<Driver> drivers = driverService.queryIdleDriver(uid, 4, orderLogistics.getServerCarModelId(), orderLogistics.getStartLon(), orderLogistics.getStartLat(), assignOrder.getDistance(), null);//获取范围内空闲司机
                 if(drivers.size() > 0){//有司机,直接指派给司机
                     Driver dr = null;
                     if(drivers.size() > 1){
@@ -858,7 +861,7 @@
                                 String value = redisUtil.getValue("DRIVER" + drivers.get(j).getId());
                                 if(null != value){
                                     String[] split = value.split(",");
-                                    DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]));
+                                    DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId);
                                     Long distance = distancematrix.getDistance();
                                     if((0 == m && null == driver) || (distance < m)){
                                         driver = drivers.get(j);
@@ -877,7 +880,7 @@
                             String value = redisUtil.getValue("DRIVER" + driver.getId());
                             if(null != value){
                                 String[] split = value.split(",");
-                                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]));
+                                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId);
                                 Long d = distancematrix.getDistance();
                                 if((0 == m && null == dr) || (d.intValue() < m.intValue())){
                                     dr = driver;
@@ -3828,13 +3831,14 @@
                 }
             }
         }
-        
+    
+        String tripId = redisUtil.getValue("trip" + uid);
         String lnt = "0";
         String lat = "0";
         if(ToolUtil.isNotEmpty(value)){
             lnt = value.split(",")[0];
             lat = value.split(",")[1];
-            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(lat), Double.valueOf(lnt));
+            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(lat), Double.valueOf(lnt), tripId);
             
             if(null == distancematrix){
                 System.err.println("查询距离出错了");
@@ -3862,7 +3866,7 @@
             orderServerWarpper.setLaveTime("0");
         }
         if(orderLogistics.getState() == 5 || orderLogistics.getState() == 6){//服务中
-            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(lat), Double.valueOf(lnt), orderLogistics.getEndLat(), orderLogistics.getEndLon());
+            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(lat), Double.valueOf(lnt), orderLogistics.getEndLat(), orderLogistics.getEndLon(), tripId);
             if(null == distancematrix){
                 System.err.println("查询距离出错了");
             }else if(distancematrix.getDistance() == 0){

--
Gitblit v1.7.1