From 9c22b73b2506413d4169889f4becfba486cee9c3 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 28 三月 2025 19:57:31 +0800
Subject: [PATCH] 修改文档bug

---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |   58 ++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 38 insertions(+), 20 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 be291b5..8c6090c 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
@@ -244,8 +244,7 @@
         if(ToolUtil.isEmpty(userInfo.getPhone())){
             return ResultUtil.error(language == 1 ? "请先绑定手机号码" : language == 2 ? "Please bind your mobile phone number first." : "Veuillez d’abord vous inscrire en liant votre numéro de téléphone portable.");
         }
-        String[] split1 = placementLon.split(",");
-        Company company = companyCityService.query1(uid, split1[0], split1[1]);
+        Company company = companyCityService.query1(uid, placementLon, placementLat);
         if(null != userInfo && null != company){
             userInfo.setCompanyId(company.getId());
             userInfoService.updateById(userInfo);
@@ -573,6 +572,16 @@
                         CarService query1 = carServiceMapper.query(1, dr.getCarId());
                         orderPrivateCar.setServerCarModelId(query1.getServerCarModelId());
                         orderPrivateCar.setSnatchOrderTime(new Date());
+                        
+                        String value = redisUtil.getValue("DRIVER" + driver.getId());
+                        if(ToolUtil.isNotEmpty(value)) {
+                            String[] split = value.split(",");
+                            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId);
+                            //超时时间
+                            long timeOut = System.currentTimeMillis() + (distancematrix.getDuration() * 1000);
+                            orderPrivateCar.setEstimateArriveTime(new Date(timeOut));
+                            orderPrivateCar.setEstimateArriveMileage(distancematrix.getDistance());
+                        }
     
                         dr.setState(3);
                         driverService.updateById(dr);
@@ -728,6 +737,10 @@
         long t = object.getInteger("driverTimeout") * 60000L;
         //司机超时未到达起点,免费取消
         if(orderPrivateCar.getOrderType() == 1){
+            if(orderPrivateCar.getState() == 1 || orderPrivateCar.getState() == 11){
+                baseWarpper.setAmount(0D);
+                return ResultUtil.success(baseWarpper);
+            }
             if(orderPrivateCar.getState() <= 3 && orderPrivateCar.getEstimateArriveTime().getTime() + t <= System.currentTimeMillis()){
                 baseWarpper.setAmount(amount);
                 return ResultUtil.success(baseWarpper);
@@ -812,6 +825,8 @@
         if(orderPrivateCar.getState() > 5 && orderPrivateCar.getState() != 11 && orderPrivateCar.getState() != 12){
             return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Failed to cancel order, illegal operation." : "Échec de l’annulation de la commande, opération illégale.");
         }
+    
+        orderCancelService.delete(new EntityWrapper<OrderCancel>().eq("orderId", orderPrivateCar.getId()).eq("orderType", 1));
         
         //服务中也可以取消订单,所以取消订单时需要计算订单费用
         if(null == orderPrivateCar.getDriverId()){//没有接单的情况
@@ -830,7 +845,7 @@
                     orderTaxiService.updateById(orderTaxi);
                 }
             }else{
-                integer = orderCancelService.saveData(id, 1, language == 1 ? "无司机接单" : language == 2 ? "No driver to take orders" : "Pas de chauffeur pour prendre les commandes", language == 1 ? "无司机接单" : language == 2 ? "No driver to take orders" : "Pas de chauffeur pour prendre les commandes", null, null, 2, 1, uid);
+                integer = orderCancelService.saveData(id, 1, language == 1 ? "无司机接单" : language == 2 ? "No driver to take orders" : "Pas de chauffeur pour prendre les commandes", language == 1 ? "无司机接单" : language == 2 ? "No driver to take orders" : "Pas de chauffeur pour prendre les commandes", null, 0D, 2, 1, uid);
                 orderPrivateCar.setState(10);
                 this.updateById(orderPrivateCar);
             }
@@ -838,7 +853,7 @@
             BaseWarpper data = queryCancleAmount(id, language).getData();
             Double amount = data.getAmount();
             if(0 == amount){
-                integer = orderCancelService.saveData(id, 1, reason, remark, null, null, 2, 1, uid);
+                integer = orderCancelService.saveData(id, 1, reason, remark, null, 0D, 2, 1, uid);
                 if(5 == orderPrivateCar.getState()){
                     orderPrivateCar.setState(6);
                     orderPrivateCar.setGetoffLon(lon);
@@ -1286,7 +1301,8 @@
         //计算折扣
         UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderPrivateCar.getCompanyId());
         if(null != query2){
-            Integer orderNum=this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("userId",orderPrivateCar.getUserId()).eq("activityId",query2.getId()).last(" and to_days(getoffTime) = to_days(now())"));
+            Integer orderNum=this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("userId",orderPrivateCar.getUserId())
+                    .eq("activityId",query2.getId()).last(" and to_days(getoffTime) = to_days(now())"));
             if(query2.getDistance()*1000>orderPrivateCar.getMileage() && query2.getOrderNum()>orderNum){
                 Double special = query2.getSpecial();
                 if(null != special){
@@ -3359,21 +3375,23 @@
         Integer driverTimeOutTime = 0;
         Integer driverTimeOut = 0;
         CancleOrder cancleOrder = cancleOrderService.selectOne(new EntityWrapper<CancleOrder>().eq("companyId", companyId));
-        JSONObject jsonObject = JSON.parseObject(cancleOrder.getContent());
-        int driverTimeout1 = jsonObject.getIntValue("driverTimeout");
-        if(orderPrivateCar.getOrderType() == 1 && null != orderPrivateCar.getEstimateArriveTime()){
-            long time = orderPrivateCar.getEstimateArriveTime().getTime() + driverTimeout1 * 60000L;
-            if(System.currentTimeMillis() > time){
-                driverTimeOutTime = Double.valueOf((System.currentTimeMillis() - time) / 60000).intValue();
-                driverTimeOutTime = driverTimeOutTime == 0 ? 1 : driverTimeOutTime;
-                driverTimeOut = 1;
-            }
-        }else{
-            long time = orderPrivateCar.getTravelTime().getTime() + driverTimeout1 * 60000L;
-            if(System.currentTimeMillis() >= time){
-                driverTimeOutTime = Double.valueOf((System.currentTimeMillis() - time) / 60000).intValue();
-                driverTimeOutTime = driverTimeOutTime == 0 ? 1 : driverTimeOutTime;
-                driverTimeOut = 1;
+        if(null != cancleOrder){
+            JSONObject jsonObject = JSON.parseObject(cancleOrder.getContent());
+            int driverTimeout1 = jsonObject.getIntValue("driverTimeout");
+            if(orderPrivateCar.getOrderType() == 1 && null != orderPrivateCar.getEstimateArriveTime()){
+                long time = orderPrivateCar.getEstimateArriveTime().getTime() + driverTimeout1 * 60000L;
+                if(System.currentTimeMillis() > time){
+                    driverTimeOutTime = Double.valueOf((System.currentTimeMillis() - time) / 60000).intValue();
+                    driverTimeOutTime = driverTimeOutTime == 0 ? 1 : driverTimeOutTime;
+                    driverTimeOut = 1;
+                }
+            }else{
+                long time = orderPrivateCar.getTravelTime().getTime() + driverTimeout1 * 60000L;
+                if(System.currentTimeMillis() >= time){
+                    driverTimeOutTime = Double.valueOf((System.currentTimeMillis() - time) / 60000).intValue();
+                    driverTimeOutTime = driverTimeOutTime == 0 ? 1 : driverTimeOutTime;
+                    driverTimeOut = 1;
+                }
             }
         }
         

--
Gitblit v1.7.1