From b002ecb0c5af0776c955b01244434826c66b6a68 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 24 二月 2023 10:00:57 +0800
Subject: [PATCH] 新增司机端接口

---
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java |   21 ++++++++++
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderInfoWarpper.java      |    6 +++
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml        |   30 +++++++++++++++
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java         |   10 ++++-
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java           |   32 ++++++++++++++-
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/OrderMapper.java               |    9 ++++
 6 files changed, 102 insertions(+), 6 deletions(-)

diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java
index 132e8a4..8b0bc8d 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java
@@ -6,6 +6,7 @@
 import com.supersavedriving.driver.modular.system.util.ResultUtil;
 import com.supersavedriving.driver.modular.system.warpper.AddOrderWarpper;
 import com.supersavedriving.driver.modular.system.warpper.HallOrderList;
+import com.supersavedriving.driver.modular.system.warpper.OrderInfoWarpper;
 import com.supersavedriving.driver.modular.system.warpper.ResponseWarpper;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -171,7 +172,16 @@
 
 
 
-    public ResponseWarpper<> queryOrderInfo(Long orderId, HttpServletRequest request){
+
+    @ResponseBody
+    @PostMapping("/api/order/queryOrderInfo")
+    @ServiceLog(name = "获取订单详情", url = "/api/order/queryOrderInfo")
+    @ApiOperation(value = "获取订单详情", tags = {"司机端-首页"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"),
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResponseWarpper<OrderInfoWarpper> queryOrderInfo(Long orderId, HttpServletRequest request){
         if(null == orderId){
             return ResponseWarpper.success(ResultUtil.paranErr("orderId"));
         }
@@ -180,12 +190,28 @@
             if(null == uid){
                 return ResponseWarpper.success(ResultUtil.tokenErr());
             }
-            ResultUtil resultUtil = orderService.receiveOrder(uid, orderId);
-            return ResponseWarpper.success(resultUtil);
+            OrderInfoWarpper orderInfoWarpper = orderService.queryOrderInfo(uid, orderId);
+            return ResponseWarpper.success(orderInfoWarpper);
         }catch (Exception e){
             e.printStackTrace();
             return new ResponseWarpper(500, e.getMessage());
         }
     }
 
+
+
+    public ResponseWarpper driverProcessOperations(Long orderId, Integer state, HttpServletRequest request){
+        if(null == orderId){
+            return ResponseWarpper.success(ResultUtil.paranErr("orderId"));
+        }
+        if(null == state){
+            return ResponseWarpper.success(ResultUtil.paranErr("state"));
+        }
+        try {
+
+        }catch (Exception e){
+            e.printStackTrace();
+            return new ResponseWarpper(500, e.getMessage());
+        }
+    }
 }
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/OrderMapper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/OrderMapper.java
index c627f8b..2317b74 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/OrderMapper.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/OrderMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import com.supersavedriving.driver.modular.system.model.Order;
 import com.supersavedriving.driver.modular.system.warpper.HallOrderList;
+import com.supersavedriving.driver.modular.system.warpper.OrderInfoWarpper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -17,4 +18,12 @@
      * @return
      */
     List<HallOrderList> queryOrderHall(@Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize);
+
+
+    /**
+     * 获取订单详情
+     * @param orderId
+     * @return
+     */
+    OrderInfoWarpper queryOrderInfo(@Param("orderId") Long orderId);
 }
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml
index 344442d..f2b1ab6 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml
@@ -80,4 +80,34 @@
         left join t_app_user b on (a.userId = b.id)
         where a.`status` = 1 and a.hallOrder = 1 order by a.createTime desc
     </select>
+
+
+
+    <select id="queryOrderInfo" resultType="com.supersavedriving.driver.modular.system.warpper.OrderInfoWarpper">
+        select
+        a.id,
+        b.avatar,
+        a.userName,
+        a.userPhone,
+        (select count(1) from t_order where userPhone = a.userPhone and state in (107, 108)) as orderTimes,
+        (select count(1) from t_order where userPhone = a.userPhone and state in (301)) as cancelTimes,
+        a.source,
+        UNIX_TIMESTAMP(a.createTime) * 1000 as createTime,
+        a.startAddress,
+        a.startLat,
+        a.startLng,
+        a.endAddress,
+        a.endLat,
+        a.endLng,
+        a.estimatedPrice,
+        a.estimatedMileage,
+        a.startPrice,
+        a.waitTime,
+        a.actualMileage,
+        a.state,
+        (UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(a.startTime)) / 60 as travelTime
+        from t_order a
+        left join t_app_user b on (a.userId = b.id)
+        where a.id = #{orderId}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java
index 65888c8..648e12e 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java
@@ -6,6 +6,7 @@
 import com.supersavedriving.driver.modular.system.warpper.AddOrderWarpper;
 import com.supersavedriving.driver.modular.system.warpper.BaseWarpper;
 import com.supersavedriving.driver.modular.system.warpper.HallOrderList;
+import com.supersavedriving.driver.modular.system.warpper.OrderInfoWarpper;
 
 import java.util.List;
 
@@ -69,6 +70,11 @@
     ResultUtil receiveOrder(Integer uid, Long orderId) throws Exception;
 
 
-
-    queryOrderInfo(Long orderId) throws Exception;
+    /**
+     * 获取订单详情
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    OrderInfoWarpper queryOrderInfo(Integer uid, Long orderId) throws Exception;
 }
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
index 517f955..60d27d8 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
@@ -15,6 +15,7 @@
 import com.supersavedriving.driver.modular.system.util.mongodb.model.Location;
 import com.supersavedriving.driver.modular.system.warpper.AddOrderWarpper;
 import com.supersavedriving.driver.modular.system.warpper.HallOrderList;
+import com.supersavedriving.driver.modular.system.warpper.OrderInfoWarpper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.geo.Circle;
 import org.springframework.data.geo.Distance;
@@ -470,9 +471,10 @@
     @Override
     public List<HallOrderList> queryOrderHall(Integer uid, Integer pageNum, Integer pageSize) throws Exception {
         pageNum = (pageNum - 1) * pageSize;
+        String value = redisUtil.getValue("DRIVER" + uid);
         List<HallOrderList> hallOrderLists = this.baseMapper.queryOrderHall(pageNum, pageSize);
         hallOrderLists.forEach(hallOrderList -> {
-            Map<String, Double> distance = GeodesyUtil.getDistance(hallOrderList.getStartLng() + "," + hallOrderList.getStartLat(), hallOrderList.getEndLng() + "," + hallOrderList.getEndLat());
+            Map<String, Double> distance = GeodesyUtil.getDistance(hallOrderList.getStartLng() + "," + hallOrderList.getStartLat(), value);
             Double wgs84 = distance.get("WGS84");
             hallOrderList.setCurrentDistance(wgs84);
         });
@@ -572,4 +574,21 @@
         }
         return ResultUtil.success();
     }
+
+
+    /**
+     * 获取订单详情
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public OrderInfoWarpper queryOrderInfo(Integer uid, Long orderId) throws Exception {
+        OrderInfoWarpper orderInfoWarpper = this.baseMapper.queryOrderInfo(orderId);
+        String value = redisUtil.getValue("DRIVER" + uid);
+        Map<String, Double> distance = GeodesyUtil.getDistance(orderInfoWarpper.getStartLng() + "," + orderInfoWarpper.getStartLat(), value);
+        Double wgs84 = distance.get("WGS84");
+        orderInfoWarpper.setCurrentDistance(wgs84);
+        return orderInfoWarpper;
+    }
 }
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderInfoWarpper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderInfoWarpper.java
index f3fc7a3..d7dfaf0 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderInfoWarpper.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderInfoWarpper.java
@@ -43,6 +43,12 @@
     private Double estimatedMileage;
     @ApiModelProperty("起步价")
     private Double startPrice;
+    @ApiModelProperty("等待时长")
+    private Integer waitTime;
+    @ApiModelProperty("行驶里程")
+    private Double actualMileage;
+    @ApiModelProperty("行驶时间")
+    private Integer travelTime;
     @ApiModelProperty("订单状态(101=待接单,102=已接单,103=前往预约点,104=到达预约点,105=开始服务,106=到达目的地,107=待评价,108=已完成,201=转单中,301=已取消)")
     private Integer state;
 }

--
Gitblit v1.7.1