From 1a334c1b3703586cd5f463960449d0283125831f Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期五, 12 四月 2024 15:00:36 +0800
Subject: [PATCH] 提交代码

---
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java                                 |   35 +++++
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |  154 +++++++++++++++++++++----
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java                            |   24 +++
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/listener/event/UploadTrajectoryEvent.java                |   17 ++
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java                        |    9 +
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java               |    6 
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderPositionServiceImpl.java        |   38 +++---
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/listener/UploadTrajectoryEventListener.java              |   32 +++++
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java         |    9 +
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java                |   11 +
 10 files changed, 286 insertions(+), 49 deletions(-)

diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 88001f4..1196f03 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -35,6 +35,7 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * 订单相关控制器
@@ -368,6 +369,40 @@
         }
     }
 
+    /**
+     * 司机流程中创建猎鹰轨迹
+     * @param orderId
+     * @param orderType
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/order/getTrackId")
+    @ApiOperation(value = "司机流程中创建猎鹰轨迹-接收轨迹id", tags = {"司机端-服务中"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=快车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "轨迹id", name = "trackId", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil getTrackId(Integer orderId, Integer orderType, Integer trackId, HttpServletRequest request){
+        try {
+            Integer uid = driverService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            // 设置订单轨迹id
+            if(Objects.isNull(trackId)){
+                return ResultUtil.error("创建轨迹失败!");
+            }
+            orderService.getTrackId(orderId, orderType, trackId);
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
 
 
     /**
diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/listener/UploadTrajectoryEventListener.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/listener/UploadTrajectoryEventListener.java
new file mode 100644
index 0000000..5d00ffc
--- /dev/null
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/listener/UploadTrajectoryEventListener.java
@@ -0,0 +1,32 @@
+package com.stylefeng.guns.modular.listener;
+
+import com.stylefeng.guns.modular.listener.event.UploadTrajectoryEvent;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+
+/**
+ * @author xiaochen
+ * @ClassName DeductPointsEventListener
+ * @Description 存储定位事件异步监听器
+ * @date 2024-01-15 10:44
+ */
+@Component
+public class UploadTrajectoryEventListener {
+    @Value("${filePath}")
+    private String filePath;
+    /**
+     * 打开事件监听器的异步处理
+     * @param event
+     */
+    @Async
+    @EventListener(UploadTrajectoryEvent.class)
+    public void PublishTopicVipInfoEventListener(UploadTrajectoryEvent event) throws IOException {
+        // 事件处理
+        String source = (String)event.getSource();
+    }
+
+}
diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/listener/event/UploadTrajectoryEvent.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/listener/event/UploadTrajectoryEvent.java
new file mode 100644
index 0000000..66bc563
--- /dev/null
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/listener/event/UploadTrajectoryEvent.java
@@ -0,0 +1,17 @@
+package com.stylefeng.guns.modular.listener.event;
+
+import org.springframework.context.ApplicationEvent;
+
+/**
+ * @author xiaochen
+ * @ClassName DeductPointsEvent
+ * @Description 上传轨迹的事件
+ * @date 2024-01-15 10:44
+ */
+public class UploadTrajectoryEvent extends ApplicationEvent {
+
+    public UploadTrajectoryEvent(String source) {
+        super(source);
+    }
+
+}
diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
index 3d1edcf..f04aa47 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
@@ -124,4 +124,13 @@
     List<OrderPrivateCar> taskMidAxbUnBindSend();
 
     List<OrderPrivateCar> getSmsOrderList();
+
+    /**
+     * 设置订单轨迹id
+     * @param orderId
+     * @param trackId
+     * @return
+     */
+    void getTrackId(Integer orderId, Integer trackId);
+
 }
diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index b7ddc0c..7ddb337 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -1,6 +1,7 @@
 package com.stylefeng.guns.modular.specialTrain.server.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
@@ -15,9 +16,14 @@
 import com.stylefeng.guns.modular.system.util.*;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import org.gavaghan.geodesy.Ellipsoid;
+import org.gavaghan.geodesy.GeodeticCalculator;
+import org.gavaghan.geodesy.GeodeticCurve;
+import org.gavaghan.geodesy.GlobalCoordinates;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
 import java.io.File;
@@ -179,9 +185,10 @@
         orderPrivateCar.setSnatchOrderTime(new Date());
 
         //调用高德创建轨迹
-        String s = gdFalconUtil.selectTerminal(driver.getPhone());
-        String track = gdFalconUtil.createTrack(s);
-        orderPrivateCar.setTrackId(track);
+//        String s = gdFalconUtil.selectTerminal(driver.getPhone());
+//        String track = gdFalconUtil.createTrack(s);
+//        JSONObject jsonObject = JSONObject.parseObject(track);
+//        orderPrivateCar.setTrackId(String.valueOf(jsonObject.getInteger("trid")));
 
         //调用移动的小号接口
         /*Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
@@ -306,29 +313,29 @@
                         }
                     }
                 }).start();
-                OrderPosition orderPosition = new OrderPosition();
-                orderPosition.setOrderId(orderId);
-                orderPosition.setOrderType(1);
-                orderPosition.setDriverId(orderPrivateCar.getDriverId());
-                orderPosition.setLat(lat.toString());
-                orderPosition.setLon(lon.toString());
-                orderPosition.setAltitude("0");
-                orderPosition.setDirectionAngle("0");
-                //先计算里程,在存储最新位置
-                orderPosition.setInsertTime(new Date());
-                //将数据存储到文件中
-                List<OrderPosition> orderPositions = orderPositionService.queryPosition(orderPosition.getOrderId(), orderPosition.getOrderType());
-                File file = new File(filePath + orderPosition.getOrderId() + "_" + orderPosition.getOrderType() + ".txt");
-                if(!file.exists()){
-                    file.getParentFile().mkdirs();
-                    file.createNewFile();
-                }
-                //写入相应的文件
-                PrintWriter out = new PrintWriter(new FileWriter(file));
-                orderPositions.add(orderPosition);
-                out.write(JSON.toJSONString(orderPositions));
-                out.flush();
-                out.close();
+//                OrderPosition orderPosition = new OrderPosition();
+//                orderPosition.setOrderId(orderId);
+//                orderPosition.setOrderType(1);
+//                orderPosition.setDriverId(orderPrivateCar.getDriverId());
+//                orderPosition.setLat(lat.toString());
+//                orderPosition.setLon(lon.toString());
+//                orderPosition.setAltitude("0");
+//                orderPosition.setDirectionAngle("0");
+//                //先计算里程,在存储最新位置
+//                orderPosition.setInsertTime(new Date());
+//                //将数据存储到文件中
+//                List<OrderPosition> orderPositions = orderPositionService.queryPosition(orderPosition.getOrderId(), orderPosition.getOrderType());
+//                File file = new File(filePath + orderPosition.getOrderId() + "_" + orderPosition.getOrderType() + ".txt");
+//                if(!file.exists()){
+//                    file.getParentFile().mkdirs();
+//                    file.createNewFile();
+//                }
+//                //写入相应的文件
+//                PrintWriter out = new PrintWriter(new FileWriter(file));
+//                orderPositions.add(orderPosition);
+//                out.write(JSON.toJSONString(orderPositions));
+//                out.flush();
+//                out.close();
                 break;
             case 6://结束服务(专车可以返回继续服务)不修改状态
                 orderPrivateCar.setGetoffLon(lon);
@@ -336,6 +343,89 @@
                 orderPrivateCar.setGetoffAddress(address);
                 orderPrivateCar.setGetoffTime(new Date());
                 orderPrivateCar.setEndServiceTime(new Date());
+
+                // 结束服务时查询轨迹,计算距离
+                Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+                String tid = gdFalconUtil.selectTerminal(driver.getPhone());
+                String result = gdFalconUtil.selectTrack(tid, orderPrivateCar.getTrackId(),1);
+
+                JSONObject jsonObject = JSONObject.parseObject(result);
+                JSONArray tracks = jsonObject.getJSONArray("tracks");
+                Integer counts = jsonObject.getInteger("counts");
+                JSONArray points = new JSONArray();
+                // 如果一单轨迹点数大于999,需进行分页查询,将所有的点查询出
+                if(counts > 999){
+                    int i = counts%999;
+                    for (int j = 1; j < i + 1; j++) {
+                        String res = gdFalconUtil.selectTrack(tid, orderPrivateCar.getTrackId(),1);
+                        JSONObject jsonObject1 = JSONObject.parseObject(res);
+                        JSONArray tracks1 = jsonObject1.getJSONArray("tracks");
+                        Object ob = tracks1.get(0);
+                        String obs = JSONObject.toJSONString(ob);
+                        JSONObject object = JSONObject.parseObject(obs);
+                        JSONArray point = object.getJSONArray("points");
+                        points.addAll(point);
+                    }
+                }
+                // 轨迹点数小于999,一页查询出即可
+                if(counts > 0 && counts < 999){
+                    Object ob = tracks.get(0);
+                    String obs = JSONObject.toJSONString(ob);
+                    JSONObject object = JSONObject.parseObject(obs);
+                    JSONArray point = object.getJSONArray("points");
+                    points.addAll(point);
+                }
+
+                System.out.println("轨迹坐标点=====:"+points);
+                String toLonLat = "";
+                double sum = 0;
+                List<OrderPosition> orderPositions = new ArrayList<>();
+                for (Object o : points) {
+                    String s = JSONObject.toJSONString(o);
+                    JSONObject obj = JSONObject.parseObject(s);
+                    String fromLonLat = obj.getString("location");
+                    String[] split = fromLonLat.split(",");
+                    Long locatetime = obj.getLong("locatetime");
+                    Date date = new Date(locatetime);
+                    if(date.after(orderPrivateCar.getStartServiceTime()) && date.before(orderPrivateCar.getEndServiceTime())){
+                        // 封装定位文件里的单个定位对象
+                        OrderPosition orderPosition = new OrderPosition();
+                        orderPosition.setOrderId(orderId);
+                        orderPosition.setOrderType(1);
+                        orderPosition.setDriverId(orderPrivateCar.getDriverId());
+                        orderPosition.setLat(split[1]);
+                        orderPosition.setLon(split[0]);
+                        orderPosition.setAltitude("0");
+                        orderPosition.setDirectionAngle("0");
+                        //先计算里程,在存储最新位置
+                        orderPosition.setInsertTime(new Date());
+                        orderPositions.add(orderPosition);
+                        if(StringUtils.hasLength(fromLonLat) && StringUtils.hasLength(toLonLat)){
+                            String[] from = fromLonLat.split(",");
+                            String[] to = toLonLat.split(",");
+                            GlobalCoordinates source = new GlobalCoordinates(Double.valueOf(from[1]), Double.valueOf(from[0]));
+                            GlobalCoordinates target = new GlobalCoordinates(Double.valueOf(to[1]), Double.valueOf(to[0]));
+                            double WGS84 = getDistanceMeter(source, target, Ellipsoid.WGS84);
+                            System.err.println("WGS84坐标系计算结果:"+WGS84 + "米");
+                            sum += WGS84;
+                        }
+                        toLonLat = fromLonLat;
+                    }
+                }
+                System.err.println("======服务里程======"+sum);
+                orderPrivateCar.setMileage(sum);
+                // 将数据存储到文件中
+                File file = new File(filePath + orderId + "_" + 1 + ".txt");
+                if(!file.exists()){
+                    file.getParentFile().mkdirs();
+                    file.createNewFile();
+                }
+                //写入相应的文件
+                PrintWriter out = new PrintWriter(new FileWriter(file));
+                out.write(JSON.toJSONString(orderPositions));
+                out.flush();
+                out.close();
+
                 break;
         }
         this.updateById(orderPrivateCar);
@@ -352,6 +442,11 @@
         return ResultUtil.success();
     }
 
+    private double getDistanceMeter(GlobalCoordinates gpsFrom, GlobalCoordinates gpsTo, Ellipsoid ellipsoid){
+        //创建GeodeticCalculator,调用计算方法,传入坐标系、经纬度用于计算距离
+        GeodeticCurve geoCurve = new GeodeticCalculator().calculateGeodeticCurve(ellipsoid, gpsFrom, gpsTo);
+        return geoCurve.getEllipsoidalDistance();
+    }
 
 
     /**
@@ -758,4 +853,11 @@
     public List<OrderPrivateCar> getSmsOrderList() {
         return this.baseMapper.getSmsOrderList();
     }
+
+    @Override
+    public void getTrackId(Integer orderId, Integer trackId) {
+        OrderPrivateCar orderPrivateCar = this.selectById(orderId);
+        orderPrivateCar.setTrackId(String.valueOf(trackId));
+        this.updateById(orderPrivateCar);
+    }
 }
diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java
index 19bc56a..2eb4754 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java
@@ -230,4 +230,13 @@
      * @throws Exception
      */
     Map<String, Object> queryMoneyInfo(Integer orderId, Integer orderType) throws Exception;
+
+    /**
+     * 设置订单轨迹id
+     * @param orderId
+     * @param orderType
+     * @param trackId
+     * @return
+     */
+    void getTrackId(Integer orderId, Integer orderType, Integer trackId);
 }
diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index af4dc2e..9a72679 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -503,9 +503,9 @@
         loginWarpper.setAppid(UUIDUtil.getRandomCode());
 
         //创建高德猎鹰的终端数据
-//        String tid = gdFalconUtil.createTerminal(phone);
-//        loginWarpper.setServerId(gdFalconUtil.getServerId());
-//        loginWarpper.setTerminalId(tid);
+        String tid = gdFalconUtil.createTerminal(phone);
+        loginWarpper.setServerId(gdFalconUtil.getServerId());
+        loginWarpper.setTerminalId(tid);
         if(driver.getCompanyId()==null){
             loginWarpper.setJumpCode("100000");
         }else{
diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderPositionServiceImpl.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderPositionServiceImpl.java
index 5a6223c..4936bd0 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderPositionServiceImpl.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderPositionServiceImpl.java
@@ -51,25 +51,25 @@
     @Override
     public void saveData(OrderPosition orderPosition) throws Exception {
         //计算实时里程
-        boolean b = orderService.calculateMileage(orderPosition);
-        if(b){//如果计算了里程则将新的数据存储到数据库作为下个起点
-            //先计算里程,在存储最新位置
-            orderPosition.setInsertTime(new Date());
-            //将数据存储到文件中
-            List<OrderPosition> orderPositions = this.queryPosition(orderPosition.getOrderId(), orderPosition.getOrderType());
-            File file = new File(filePath + orderPosition.getOrderId() + "_" + orderPosition.getOrderType() + ".txt");
-            if(!file.exists()){
-                file.getParentFile().mkdirs();
-                file.createNewFile();
-            }
-            //写入相应的文件
-            PrintWriter out = new PrintWriter(new FileWriter(file));
-            orderPositions.add(orderPosition);
-            System.err.println("存储新数据:" + JSON.toJSONString(orderPositions));
-            out.write(JSON.toJSONString(orderPositions));
-            out.flush();
-            out.close();
-        }
+//        boolean b = orderService.calculateMileage(orderPosition);
+//        if(b){//如果计算了里程则将新的数据存储到数据库作为下个起点
+//            //先计算里程,在存储最新位置
+//            orderPosition.setInsertTime(new Date());
+//            //将数据存储到文件中
+//            List<OrderPosition> orderPositions = this.queryPosition(orderPosition.getOrderId(), orderPosition.getOrderType());
+//            File file = new File(filePath + orderPosition.getOrderId() + "_" + orderPosition.getOrderType() + ".txt");
+//            if(!file.exists()){
+//                file.getParentFile().mkdirs();
+//                file.createNewFile();
+//            }
+//            //写入相应的文件
+//            PrintWriter out = new PrintWriter(new FileWriter(file));
+//            orderPositions.add(orderPosition);
+//            System.err.println("存储新数据:" + JSON.toJSONString(orderPositions));
+//            out.write(JSON.toJSONString(orderPositions));
+//            out.flush();
+//            out.close();
+//        }
 
         new Thread(new Runnable() {
             @Override
diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
index d243e8f..13a4bce 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -1010,6 +1010,17 @@
         return null;
     }
 
+    @Override
+    public void getTrackId(Integer orderId, Integer orderType, Integer trackId) {
+        switch (orderType){
+            case 1:
+                orderPrivateCarService.getTrackId(orderId,trackId);
+                break;
+            case 2:
+                break;
+        }
+    }
+
     @Autowired
     private ISystemNoticeService systemNoticeService;
 
diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java
index e1676b2..9e3f307 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.aliyun.oss.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
@@ -146,7 +147,7 @@
      * @return
      */
     public String selectTerminal(String name){
-        String url = "https://tsapi.amap.com/v1/track/terminal/list?key=" + key + "&name=" + name;
+        String url = "https://tsapi.amap.com/v1/track/terminal/list?key=" + key + "&sid=" + serverId + "&name=" + name;
         String forObject = restTemplate.getForObject(url, String.class);
         JSONObject jsonObject = JSON.parseObject(forObject);
         if(jsonObject.getIntValue("errcode") == 10000){
@@ -218,6 +219,27 @@
         }
     }
 
+    /**
+     * 查询轨迹
+     * @param tid       终端id
+     */
+    public String selectTrack(String tid, String trid,Integer page){
+        String url = "https://tsapi.amap.com/v1/track/terminal/trsearch?key=" + key + "&sid=" + serverId + "&tid=" + tid + "&trid=" + trid + "&page=" + page + "&pagesize=" + 999;
+//        String url = "https://tsapi.amap.com/v1/track/terminal/trsearch?key=" + key + "&sid=" + serverId + "&tid=" + tid + "&starttime=1708410190000" + "&endtime=1708419641315";
+        //将请求头部和参数合成一个请求
+        String s = restTemplate.getForObject(url , String.class);
+        JSONObject jsonObject = JSON.parseObject(s);
+        if(jsonObject.getIntValue("errcode") == 10000){
+            return jsonObject.getString("data");
+        }
+        System.err.println(jsonObject.getString("errmsg"));
+        if(jsonObject.getIntValue("errcode") != 10000){
+            throw new ServiceException(jsonObject.getString("errmsg"));
+        }
+        return null;
+    }
+
+
 
 //
 //    public Map<String, Object> queryTrsearch(){

--
Gitblit v1.7.1