From ecf282fb285fbba74ff129a4be8a129aa0d8ceb1 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 22 三月 2023 22:35:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrder.java                   |   13 ++++
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html                        |  115 ++++++++++++++++++++++++++++++++++++++
 management/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java                               |    1 
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java |   43 +++++++++++---
 4 files changed, 162 insertions(+), 10 deletions(-)

diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java b/management/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java
index e3b45f4..5573bd1 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java
@@ -1,5 +1,6 @@
 package com.stylefeng.guns;
 
+import com.stylefeng.guns.core.shiro.ShiroKit;
 import org.apache.http.client.HttpClient;
 import org.apache.http.config.SocketConfig;
 import org.apache.http.impl.client.HttpClientBuilder;
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrder.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrder.java
index 6f06c4e..8bf3d43 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrder.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrder.java
@@ -129,6 +129,11 @@
      */
     private Date createTime;
 
+    /**
+     * 行程录音
+     */
+    private String routeRecord;
+
     @ApiModelProperty(value = "起步里程(公里)")
     private Double startDistance;
 
@@ -180,6 +185,14 @@
     @ApiModelProperty(value = "折扣优惠金额")
     private BigDecimal discountAmount;
 
+    public String getRouteRecord() {
+        return routeRecord;
+    }
+
+    public void setRouteRecord(String routeRecord) {
+        this.routeRecord = routeRecord;
+    }
+
     public BigDecimal getDiscountAmount() {
         return discountAmount;
     }
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
index fba7e3b..01bdb4c 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
@@ -68,10 +68,27 @@
         model.addAttribute("code",tOrder.getCode());//订单编号
         model.addAttribute("source",tOrder.getSource());//订单来源
         model.addAttribute("startAddress",tOrder.getStartAddress());//起点
+        model.addAttribute("startLng",tOrder.getStartLng());// 起点经度
+        model.addAttribute("startLat",tOrder.getStartLat());// 起点纬度
         model.addAttribute("endAddress",tOrder.getEndAddress());//终点
-        model.addAttribute("startTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(tOrder.getStartTime()));//乘车时间
-        model.addAttribute("boardingTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(tOrder.getBoardingTime()));//上车时间
-        model.addAttribute("getoffTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(tOrder.getGetoffTime()));//下车时间
+        model.addAttribute("endLng",tOrder.getEndLng());// 终点经度
+        model.addAttribute("endLat",tOrder.getEndLat());// 终点纬度
+
+        if(Objects.nonNull(tOrder.getStartTime())){
+            model.addAttribute("startTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(tOrder.getStartTime()));//乘车时间
+        }else {
+            model.addAttribute("startTime","");//乘车时间
+        }
+        if(Objects.nonNull(tOrder.getBoardingTime())){
+            model.addAttribute("boardingTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(tOrder.getBoardingTime()));//乘车时间
+        }else {
+            model.addAttribute("boardingTime","");//乘车时间
+        }
+        if(Objects.nonNull(tOrder.getGetoffTime())){
+            model.addAttribute("getoffTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(tOrder.getGetoffTime()));//乘车时间
+        }else {
+            model.addAttribute("getoffTime","");//乘车时间
+        }
         model.addAttribute("startPrice",tOrder.getStartPrice());//起步价
         model.addAttribute("overDrivePrice",tOrder.getOverDrivePrice());//里程费
         model.addAttribute("waitTimePrice",tOrder.getWaitTimePrice());//等待费
@@ -82,6 +99,7 @@
         model.addAttribute("payType",tOrder.getPayType());//支付方式
         model.addAttribute("discountAmount",tOrder.getDiscountAmount());//折扣金额
         model.addAttribute("userId",tOrder.getUserId());//用户id
+        model.addAttribute("routeRecord",tOrder.getRouteRecord());//行程录音
 
         // 查询用户
         TAppUser tAppUser = tAppUserMapper.selectById(tOrder.getUserId());
@@ -96,15 +114,20 @@
 
         // 查询司机
         TDriver tDriver = tDriverMapper.selectById(tOrder.getDriverId());
-        model.addAttribute("driverName",tDriver.getName());
-        model.addAttribute("driverPhone",tDriver.getPhone());
-
-        // 查询司机所属分公司
-        TBranchOffice tBranchOffice = tBranchOfficeMapper.selectById(tDriver.getBranchOfficeId());
-        if(Objects.nonNull(tBranchOffice)){
-            model.addAttribute("branchOfficeName",tBranchOffice.getPrincipal());
+        if(Objects.nonNull(tDriver)){
+            model.addAttribute("driverName",tDriver.getName());
+            model.addAttribute("driverPhone",tDriver.getPhone());
+            // 查询司机所属分公司
+            TBranchOffice tBranchOffice = tBranchOfficeMapper.selectById(tDriver.getBranchOfficeId());
+            if(Objects.nonNull(tBranchOffice)){
+                model.addAttribute("branchOfficeName",tBranchOffice.getPrincipal());
+            }else {
+                model.addAttribute("branchOfficeName","");
+            }
         }else {
             model.addAttribute("branchOfficeName","");
+            model.addAttribute("driverName","");
+            model.addAttribute("driverPhone","");
         }
 
     }
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html
index 7320bcd..a33026c 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html
@@ -9,6 +9,11 @@
                 <div class="row row-lg">
                     <div class="col-sm-12">
 
+                        <input hidden id="startLng" value="${startLng}">
+                        <input hidden id="startLat" value="${startLat}">
+                        <input hidden id="endLng" value="${endLng}">
+                        <input hidden id="endLat" value="${endLat}">
+
                         <hr/>
                         <div class="initialLevel col-sm-12 control-label form-group"  >
                             <div style="background-color: gray;height: 35px;line-height: 35px">
@@ -174,6 +179,36 @@
                             </div>
                         @}
 
+                        @if(startLng != null){
+                            <hr/>
+                            <div class="initialLevel col-sm-12 control-label form-group"  >
+                                <div style="background-color: gray;height: 35px;line-height: 35px">
+                                    <label style="color: #0C0C0C">行程轨迹</label>
+                                </div>
+                            </div>
+                            <hr/>
+
+                            <div class="initialLevel col-sm-12 control-label form-group"  >
+                                <div id="container" ></div>
+                                <div id="panel" ></div>
+                            </div>
+                        @}
+
+                        <hr/>
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div style="background-color: gray;height: 35px;line-height: 35px">
+                                <label style="color: #0C0C0C">行程录音</label>
+                            </div>
+                        </div>
+                        <hr/>
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <audio id="audio" autoplay controls muted>
+<!--                                <source src="http://www.w3capi.com/upload/audio/audio_example.mp3" type="audio/mpeg">-->
+                                <source src="${routeRecord}" type="audio/mpeg">
+                            </audio>
+                        </div>
+
                         <div class="hidden-xs" id="TDriverTableToolbar" role="group"  style="text-align: center">
                             <#button name="取消" icon="fa-plus" clickFun="TOrderInfoDlg.close()" />
                         </div>
@@ -186,11 +221,91 @@
 </div>
 <script src="${ctxPath}/static/modular/system/tOrder/tOrder.js"></script>
 <script src="${ctxPath}/static/modular/system/tOrder/tOrder_info.js"></script>
+
+<!--<script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=1d43098bcd98ab124623e7e4bcc9595e&plugin=AMap.Driving"></script>-->
+<!--<script type="text/javascript" src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script>-->
+<!--<script type="text/javascript" src="https://cache.amap.com/lbs/static/addToolbar.js"></script>-->
+<script src="https://webapi.amap.com/loader.js"></script>
+
+<style type="text/css">
+    #container {
+        background-color: white;
+        height: 420px;
+        width: 1200px;
+    }
+    #audio {
+        height: 100px;
+        width: 600px;
+    }
+    #panel {
+        position: fixed;
+        background-color: white;
+        max-height: 90%;
+        overflow-y: auto;
+        top: 10px;
+        right: 10px;
+        width: 280px;
+    }
+    #panel .amap-call {
+        background-color: #009cf9;
+        border-top-left-radius: 4px;
+        border-top-right-radius: 4px;
+    }
+    #panel .amap-lib-driving {
+        border-bottom-left-radius: 4px;
+        border-bottom-right-radius: 4px;
+        overflow: hidden;
+    }
+</style>
 <script type="text/javascript">
+    window._AMapSecurityConfig = {
+        securityJsCode:'b62d9146929db08c4c2f4537d045320d',
+    };
     laydate.render({
         elem: '#createTime',
         type: 'date',
         range: true
     });
+    if(null != $('#startLng').val() && '' != $('#startLng').val()){
+        AMapLoader.reset() // 需要把这个reset一下
+        AMapLoader.load({
+            "key": "1d43098bcd98ab124623e7e4bcc9595e",              // 申请好的Web端开发者Key,首次调用 load 时必填
+            "version": "2.0",   // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
+            "plugins": ['AMap.Driving'],           // 需要使用的的插件列表,如比例尺'AMap.Scale'等
+            "AMapUI": {             // 是否加载 AMapUI,缺省不加载
+                "version": '1.1',   // AMapUI 版本
+                "plugins":['overlay/SimpleMarker'],       // 需要加载的 AMapUI ui插件
+            },
+            "Loca":{                // 是否加载 Loca, 缺省不加载
+                "version": '2.0'  // Loca 版本
+            },
+        }).then((AMap)=>{
+            //初始化地图对象,加载地图
+            var map = new AMap.Map('container', {
+                viewMode: '2D', // 默认使用 2D 模式,如果希望使用带有俯仰角的 3D 模式,请设置 viewMode: '3D',
+                zoom:13, //初始化地图层级
+                center: [$('#startLng').val(), $('#startLat').val()] //初始化地图中心点
+            });
+            //构造路线导航类
+            var driving = new AMap.Driving({
+                map: map,
+            });
+            // 根据起终点经纬度规划驾车导航路线
+            driving.search(new AMap.LngLat($('#startLng').val(), $('#startLat').val()), new AMap.LngLat($('#endLng').val(), $('#endLat').val()), function(status, result) {
+                // result 即是对应的驾车导航信息,相关数据结构文档请参考  https://lbs.amap.com/api/javascript-api/reference/route-search#m_DrivingResult
+                if (status === 'complete') {
+                    Feng.success('绘制订单路线完成')
+                } else {
+                    Feng.error('获取驾车数据失败:' + result)
+                }
+            });
+        }).catch((e)=>{
+            console.error(e);  //加载错误提示
+        });
+    }else {
+        Feng.info('该订单未完成,无地图路线显示!')
+    }
+
+
 </script>
 @}

--
Gitblit v1.7.1