From aef4ae90bffcac7896bc719e4ba71211f4e4b2f4 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 24 七月 2023 15:08:39 +0800
Subject: [PATCH] 更新用户端接口

---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |   53 +++++++++++++++++++++++++++++++++++------------------
 1 files changed, 35 insertions(+), 18 deletions(-)

diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index d4fee16..cb1954a 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -1736,30 +1736,47 @@
         OrderPrivateCar orderPrivateCar = this.selectById(orderId);
         //计算预计距离和剩余时间
         String value = redisUtil.getValue("DRIVER" + String.valueOf(orderPrivateCar.getDriverId()));
+        String d = "0";
+        String t = "0";
         if(null == value || "".equals(value)){
             System.err.println("司机没有上传位置信息");
 
             //调用获取轨迹中的数据
-            List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, 2);
-            if(list.size() > 0){
-                Map<String, Object> map = list.get(list.size() - 1);
-                value = map.get("lon") + "," + map.get("lat");
+            File file = new File(filePath + orderId + "_1.txt");
+            if(file.exists()){
+                //读取文件(字符流)
+                BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
+                //循环取出数据
+                String str = null;
+                StringBuffer sb = new StringBuffer();
+                while ((str = in.readLine()) != null) {
+                    sb.append(str);
+                }
+                List<OrderPosition> list = JSONArray.parseArray(sb.toString(), OrderPosition.class);
+                if(list.size() > 0){
+                    OrderPosition orderPosition = list.get(list.size() - 1);
+                    value = orderPosition.getLon() + "," + orderPosition.getLat();
+                }
             }
+        }
 
+        String lnt = "0";
+        String lat = "0";
+        if(ToolUtil.isNotEmpty(value)){
+            lnt = value.split(",")[0];
+            lat = value.split(",")[1];
+            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(lat), Double.valueOf(lnt));
+
+            if(null == distancematrix){
+                System.err.println("查询距离出错了");
+            }else if(distancematrix.getDistance() == 0){
+                System.err.println("未获取到有效的距离");
+            }else{
+                d = new BigDecimal(distancematrix.getDistance()).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
+                t = new BigDecimal(distancematrix.getDuration()).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
+            }
         }
-        String lnt = (null != value ? value.split(",")[0] : "0.0");
-        String lat = (null != value ? value.split(",")[1] : "0.0");
-        DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(lat), Double.valueOf(lnt));
-        String d = "0";
-        String t = "0";
-        if(null == distancematrix){
-            System.err.println("查询距离出错了");
-        }else if(distancematrix.getDistance() == 0){
-            System.err.println("未获取到有效的距离");
-        }else{
-            d = new BigDecimal(distancematrix.getDistance()).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
-            t = new BigDecimal(distancematrix.getDuration()).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
-        }
+
         OrderServerWarpper orderServerWarpper = new OrderServerWarpper();
         orderServerWarpper.setOrderId(orderPrivateCar.getId());
         orderServerWarpper.setOrderType(1);
@@ -1776,7 +1793,7 @@
             orderServerWarpper.setLaveTime("0");
         }
         if(orderPrivateCar.getState() == 5 || orderPrivateCar.getState() == 6){//服务中
-            distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(lat), Double.valueOf(lnt), orderPrivateCar.getEndLat(), orderPrivateCar.getEndLon());
+            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(lat), Double.valueOf(lnt), orderPrivateCar.getEndLat(), orderPrivateCar.getEndLon());
             if(null == distancematrix){
                 System.err.println("查询距离出错了");
             }else if(distancematrix.getDistance() == 0){

--
Gitblit v1.7.1